使用CLASSPATH,Java并从zsh进行编译

时间:2019-03-30 15:53:20

标签: java visual-studio-code classpath zsh

我正在尝试从以下目录中的工作区编译并运行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

有人能告诉我如何在这种情况下正确设置类路径吗?

1 个答案:

答案 0 :(得分:0)

非常感谢Elliot-“您应该正在运行java test_import.Importer;从中运行它的目录无关紧要。您指定的是文件;不是类。”

运行文件的正确方法是java test_import.Importer。