我的代码就像这样
//package com.web_tomorrow;
public class RunThis1 {
public static void main(String[] args) {
System.out.println("Run ....RunThis1");
}
}
当我运行 javac 命令并使用“package com.web_tomorrow”包名称注释或未注释时,它可以很好地编译。 但是当我用“package com.web_tomorrow”包名称运行 java 命令时,我的意思是没有注释,它显示错误:无法找到或加载主类RunThis1 如果我注释/删除包名称,然后运行它执行的java命令。
有没有人可以解释为什么java无法找到RunThis1.class文件,而javac可以从同一个文件夹web_tomorrow中找到RunThis1.java?
C:\ JavaPractices \ CPTest \ src \ com \ web_tomorrow> java RunThis1 错误:无法找到或加载主类RunThis1
C:\ JavaPractices \ CPTest \ src \ com \ web_tomorrow> javac RunThis1.java
C:\ JavaPractices \ CPTest \ src \ com \ web_tomorrow> java RunThis1 运行.... RunThis1
java命令如何与包名相关?包名如何影响java查找主类?
我的Envr变量类路径值是。
答案 0 :(得分:2)
Java包就像目录一样。因此,如果您的类文件MyClass.java在com.myfirm.pack这样的包中,那么这应该在src目录中,如:
src
com
myfirm
pack
MyClass.java
如果你想编译你的java代码(假设你在src文件夹中),你需要执行以下操作:
C:\ SRC> javac com \ myfirm \ pack \ MyClass.java
如果你想运行它,你需要这样做:
C:\ SRC> java -cp。 com.myfirm.pack.MyClass
答案 1 :(得分:0)
要编译这些源代码,你必须进入你的src目录。请查看here以获取详细说明。