Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从一个文件夹开始编译/运行Java_Java - Fatal编程技术网

从一个文件夹开始编译/运行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