Я сгенерировал файлы .class с помощью следующей команды:
javac -cp \directoryName\external.jar myPackageDirectory\First.java myPackageDirectory\Second.java
Мне нужно было использовать -cp
во время компиляции и имя файла .jar «внешней» библиотеки (external.jar), чтобы иметь возможность использовать эту библиотеку из моего кода.
Используя мои файлы .class, я сгенерировал свой файл .jar следующим образом:
jar cfm app.jar manifest.txt myPackageDirectory\*.class
manifest.txt
содержит только одну строку:
Main-Class: myPackageName.First
Моя проблема в том, что я не уверен, что смогу запустить файл .jar на других компьютерах. Я так думаю, потому что во время компиляции я указал местоположение файла .jar файла. внешняя библиотека. Итак, мои файлы .class (включенные в файл .jar будут пытаться найти файл .jar внешней библиотеки в определенном каталоге, и нет никакой гарантии, что файл .jar внешней библиотеки будет находиться в том же каталоге как на моем компьютере.
Я слышал, что вышеуказанную проблему можно решить с помощью
использование файла MANIFEST, который я
включить в мою банку, и которая будет
список зависимостей
но я не понимаю, как это работает. Мне нужно указать местоположение «external.jar» на этапе компиляции (в противном случае компилятор жалуется).