Использование CLASSPATH, Java и компиляция из zsh - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь скомпилировать и запустить файлы Java из рабочей области в следующем каталоге:

/ Пользователи / raph / Java / Рабочая область / COMP30820>

Внутри каталога находятся каталоги src и bin, а в папке src содержатся мои пакеты. Если я запускаю файлы .java в VSCode, используя встроенный терминал, он находит мои импортированные пакеты, но если я запускаю его из терминала, используя zsh (или bash), пакеты не найдены. Я знаю, что это как-то связано с 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.

Если я затем запусту Importer.java из каталога test_import, я ожидаю увидеть напечатанное «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

Кто-нибудь может сказать мне, как правильно установить classpath в этом случае?

1 Ответ

0 голосов
/ 30 марта 2019

Большое спасибо Эллиоту - «Вы должны запустить java test_import.Importer; каталог, из которого вы его запускаете, не имеет значения. Вы указываете файл, а не класс».

Правильный способ запуска файла был java test_import.Importer.

...