
小弟下了个 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 ???谁教你的 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 明显的,运行不要加.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 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 规范… 楼上几个真逗… |