小弟下了个 java,打算学点皮毛,在 eclipse 编译执行顺利,但突然发现 在 windows cmd 命令下 java 执行一个随便一个超级简单的 class,都不行 classpath 不论是手动环境变量设置,还是 cmd 加参数设置 classpath,都不行,试了绝对路径和相对路径都不行,我要抓了。 java 内容,就简单一句: public class Main { public static void main(String[] args) { System.out.println(1); } }
然后 cmd 命令在其路径下(该路径下已经 javac 编译出 Main.class 文件了) E:\Users\linmao\eclipse-workspace\hello\src>java -classpath ".;" Main.class 错误: 找不到或无法加载主类 Main.class 原因: java.lang.ClassNotFoundException: Main.class
绝对路径和相对路径都试过了
有没有大神,告诉怎么 debug,我不知道这个怎么 debug,求助,困扰了很久了,脑子都秀逗了
1
avk458 2019-10-01 20:38:11 +08:00
编译过了?
|
2
linmaoxe2v OP @avk458 在 eclipse 编译通过并执行成功了,然后我是在 cmd 里切到这个路径下,cmd 命令 java 运行这个 class 文件,发现不行。关键我还带了 classpath,也不行。我也觉得想不通
|
3
QiuSe 2019-10-01 20:54:35 +08:00
你可能带 package 了,编译的时候要 -d . XXX.java;
|
4
linmaoxe2v OP @QiuSe 我试了下,还是不行
java -classpath ".;" Main.class -d Main.java 错误: 找不到或无法加载主类 Main.class 原因: java.lang.ClassNotFoundException: Main.class 你们这种一般都怎么定位 debug 呀?我一点头绪都没 |
5
linmaoxe2v OP @QiuSe java -classpath "." Main.class -d . Main.java, 也试了,也不行哈
|
6
imzcg 2019-10-01 22:16:20 +08:00 via Android 2
???谁教你的
🤔 javac *.java java * |
7
kokutou 2019-10-01 22:25:55 +08:00
我记得都是要先 javac,然后 java 的啊。。。
|
8
maokabc 2019-10-01 22:36:15 +08:00 via Android 2
明显的,运行不要加.class 后缀
|
9
linmaoxe2v OP @imzcg 我描述清楚,我拿的是 eclipse 编译成功也执行 class 成功的 class 文件。也就是 eclipse 上编译成功后并执行的 Main.class 文件,手动去执行的时候,发现不行
|
10
linmaoxe2v OP @kokutou 我没描述清楚,我拿的是 eclipse 编译成功也执行 class 成功的 class 文件。也就是 eclipse 上编译成功后并执行的 Main.class 文件,手动 cmd 去执行的时候,发现不行
|
11
linmaoxe2v OP @maokabc 你说的对,是我没理解透 java,去掉后缀 class 后,就成功了,让你见笑了哈
|
12
aLazarus 2019-10-01 23:15:15 +08:00 via Android 1
java 命令是根据.这个符号来表示目录结构的
所以如果你用 java main.class,他会去寻找一个叫做 java 的 package 中叫做 class 的文件 |
13
linmaoxe2v OP @aLazarus 嗯嗯,领教了哈,之前没理解哈,以为就是像 Python *.py 这种,让大家见笑了哈
|
14
Aruforce 2019-10-02 14:35:46 +08:00 via Android
jar 包 META-INF 文件夹下有个 M 开头的文件 里面需要指定 main class 你可以看下 jar 规范… 楼上几个真逗…
|