Я пытаюсь скомпилировать и запустить файл .java, используя классы, присутствующие в файле jar, расположенном в отдельном каталоге.
PROJECT
├───build
│ └───IN ЗДЕСЬ
├───checkstyle
├───doc
│ └───yourusername
├───lib
└───src
Это структура каталогов, файл .jar находится в каталоге lib, а мой файл .java находится в «IN HERE».Я совершенно не уверен, как импортировать классы из .jar в мой файл.Я видел как import package.name;
, так и просто package name;
.
У меня есть абсолютный путь для "IN HERE" и "lib" в моей системной переменной classpath, но, похоже, ничего не работает.
Файл Java просто:
package dnd.models;
//import java.lang.Throwable;
public class Dungeon {
public static void main(String [] arg){
//ArrayList
//private double roll;
System.out.println("hello world");
}
}
.jar называется dnd.jar и предположительно содержит пакеты dnd.die и dnd.models.
Я пробовалскомпилировать и запустить как показано ниже из основной папки PROJECT:
javac Dungeon.java
javac: file not found: Dungeon.java
Usage: javac <options> <source files>
use -help for a list of possible options
Это кажется мне странным, потому что classpath должен предложить ему просмотреть папки classpath, не так ли?После этого я попытался использовать «IN HERE» в качестве моего рабочего каталога для компиляции / запуска, но затем я получаю эту ошибку:
javac Dungeon.java --This works
java Dungeon.java
Error: Could not find or load main class Dungeon
Я также пробовал с такими командами, как
javac -cp .;MYDIRS\PROJECT\lib\dnd.jar Dungeon.java
Но они тоже не работают.Я пробовал десятки различных способов форматирования таких утверждений, поэтому я надеюсь, что есть кое-что очевидное, что я пропустил, поскольку это в основном задерживает меня.
Я бы ожидал, что java скомпилирует и распознает пакет ираспечатать привет мир без каких-либо ошибок.Все помогает, я в растерянности.