中
我有以下目录结构:
folder1/
folder2/
compiler.java
对于学校作业,我们有能够从folder1运行以下命令:
javac folder2/compiler.java
java folder2/compiler
使用javac进行编译是可行的。当我尝试用上面的java命令运行它时,我会得到一个
Exception in thread "main" java.lang.NoClassDefFoundError: folder2/compiler (wrong name: compiler)
您有两个选项。
如果您的类compiler
在默认包中,请执行此操作。(无包裹声明)
javac folder2/compiler.java
java -cp folder2/ compiler
否则,如果类compiler
在包folder2
中,则执行此操作。
javac folder2/compiler.java
java -cp . folder2.compiler
通过在compiler.java
的顶部放置包声明,可以将complier
放入folder2
包中
package folder2;
尝试
java -cp . folder2.compiler
确保类编译器在folder2包