我正在尝试从以下目录中的工作区编译并运行Java文件:
/ Users / raph / Java / Workspace / COMP30820>
目录内有src和bin目录,而src文件夹包含我的软件包。如果我使用集成的终端在VSCode中运行.java文件,它将找到我导入的包,但是如果我使用zsh(或bash)从Terminal运行它,则找不到这些包。我知道这与CLASSPATH有关,但是我尝试了多种不同的方法将其导出到zshrc文件中,但我仍然没有运气。我的JAVA_HOME变量已正确导出。
这是我要做的事的一个例子:
package test_import;
import test_package.Test;
public class Importer {
public static void main(String[] args) {
Test i = new Test();
i.hello();
}
}
正在使用该软件包:
package test_package;
public class Test {
public static void hello(){
System.out.println("Hello there");
}
}
test_import和test_package都直接位于src文件夹中。
如果我随后从test_import目录运行Importer.java,则希望看到显示“ Hello there”。
如果我在VS Code中运行此命令,它可以工作,但是在其他任何终端上却不能,并且出现以下错误:
Importer.java:3: error: package test_package does not exist
import test_package.Test;
^
Importer.java:11: error: cannot find symbol
Test i = new Test();
^
symbol: class Test
location: class Importer
Importer.java:11: error: cannot find symbol
Test i = new Test();
^
symbol: class Test
location: class Importer
3 errors
error: compilation failed
有人能告诉我如何在这种情况下正确设置类路径吗?
答案 0 :(得分:0)
非常感谢Elliot-“您应该正在运行java test_import.Importer;从中运行它的目录无关紧要。您指定的是文件;不是类。”
运行文件的正确方法是java test_import.Importer。