Как скомпилировать и запустить исходный код Java с использованием классов из файла JAR в отдельном каталоге - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь скомпилировать и запустить файл .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 скомпилирует и распознает пакет ираспечатать привет мир без каких-либо ошибок.Все помогает, я в растерянности.

...