Я знаю, что это распространенный вопрос, но я прочитал все остальные ответы и не смог найти решение. Я пытаюсь понять путь Java classpath, но я столкнулся с Error: Could not find or load main class Hello
, когда пытаюсь указать внешнюю библиотеку.Java: Ошибка: не удалось найти или загрузить основной класс. Привет, когда пытаюсь импортировать внешнюю библиотеку.
Я начал с этой простой программы, которая находится непосредственно в моем домашнем каталоге:
import java.util.*;
public class Hello {
public static void main(String[] args) {
Date date = new Date();
System.out.println("Hello world");
}
}
Это компилирует и работает просто отлично ...
[user ~]> ls -l
Hello.java
[user ~]> javac Hello.java
[user ~]> ls -l
Hello.java
Hello.class
[user ~]> java Hello
Hello world
... который говорит мне, что переменная среды classpath установлена правильно (потому что она находит пакет java.util).
Но когда я пытаюсь импортировать случайный пакет 3 участника и указать его расположение в -classpath
я получаю ошибку:
[user ~]> cat Hello.java
import java.util.*;
import org.apache.commons.lang3.time.*;
public class Hello {
public static void main(String[] args) {
StopWatch sw = new StopWatch();
Date date = new Date();
System.out.println("Hello world");
}
}
[user ~]> ls .m2/repository/org/apache/commons/commons-lang3/3.3.1
commons-lang3-3.3.1.jar
[user ~]> javac -classpath ~/.m2/repository/org/apache/commons/commons-lang3/3.3.1/commons-lang3-3.3.1.jar Hello.java
[user ~]> java -classpath ~/.m2/repository/org/apache/commons/commons-lang3/3.3.1/commons-lang3-3.3.1.jar Hello
Error: Could not find or load main class Hello
Может кто-нибудь дать мне представление о том, что я делаю неправильно здесь?
Если не объяснение, определяющее путь к классу, компилятор будет искать в текущей папке. Когда вы определили classpath для внешнего JAR, вы преуспели в том, чтобы сообщать компилятору, где он находится, но затем он игнорировал текущий каталог. –