从一个文件夹开始编译/运行Java
我有以下目录结构:从一个文件夹开始编译/运行Java,java,Java,我有以下目录结构: folder1/ folder2/ compiler.java 对于学校作业,我们必须能够从folder1运行以下命令: 用javac进行编译是可行的。当我尝试用上面的java命令运行它时,我得到一个 Exception in thread "main" java.lang.NoClassDefFoundError: folder2/compiler (wrong name: compiler) 你有两个选择 如果类编译器在默认包中,请执行此操作。
folder1/
folder2/
compiler.java
对于学校作业,我们必须能够从folder1运行以下命令:
用javac进行编译是可行的。当我尝试用上面的java命令运行它时,我得到一个
Exception in thread "main" java.lang.NoClassDefFoundError: folder2/compiler (wrong name: compiler)
你有两个选择
如果类编译器在默认包中,请执行此操作。(无包装声明)
否则,如果类编译器
在包folder2
中,则执行此操作
javac folder2/compiler.java
java -cp . folder2.compiler
通过在compiler.java
package folder2;
试一试
确保类编译器位于folder2包中javac应将.class文件发送到同一文件夹(除非您的配置不同)。您应该能够在compiler.class文件所在的同一目录中运行java编译器。您确定您没有运行java folder2.compiler.java
而不是java folder2.compiler
?Banthar:我正在运行java folder2/compiler.java。当我运行java folder2/compiler时,我仍然会收到一条错误消息(请参阅问题中的编辑错误)。是否没有办法运行java folder2/compiler.java然后运行java folder2/compiler?我必须让这些命令完全适用于放坡脚本…@gonzoc0ding如果在环境中设置类路径
,则可以省略-cp
参数。因此,使用我的第一个示例,在javac
之后,您可以执行export CLASSPATH=“folder2/”
然后执行java编译器。这是假设您使用的是类似于sh或bash的unix。
javac folder2/compiler.java
java -cp . folder2.compiler
package folder2;
java -cp . folder2.compiler