javac Пакет не найден - PullRequest
0 голосов
/ 26 мая 2020

Я делаю простую Java программу без какой-либо IDE, и я не могу вызвать класс внутри пакета из другого класса. Это моя структура каталогов:

test/
  |_ B.java
  |_ pack/
       |_ A.java
       |_ A.class

Я хочу вызвать A. java из B. java.

Мой A. java - это простой file:

package pack;
public class A{
    public void msg(){
        System.out.println("Hello");
    }
}

Я скомпилировал A. java внутри test/, используя javac -d . pack/A.java, и он скомпилировался без каких-либо проблем.

B. java:

import pack.A;
class B{
    public static void main(String args[]){
        A obj = new A();
        obj.msg();
    }
}

Я нахожусь на Linux в каталоге test/, и когда я компилирую, используя javac -d . B.java, компилятор показывает мне некоторые ошибки, и самая важная из них:

B.java:1: error: package pack does not exist
import pack.A;
           ^

Все остальные ошибки являются следствием этой. Я пытался изменить каталоги, но пока ничего не помогло, я провел небольшое исследование, но ничего не нашел. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 26 мая 2020

Как показано @Jasper, проблема заключалась в переменной CLASSPATH, которая не была переменной по умолчанию. Решение состоит в том, чтобы изменить CLASSPATH или указать путь во время компиляции / выполнения; это может быть выполнено путем компиляции с помощью javac -cp . -d . B.java и выполнения с помощью java -cp . B

...