Как использовать много файлов JAR? - PullRequest
0 голосов
/ 14 октября 2018

Можно ли использовать класс из другой банки вместо основной?

Мой рабочий каталог:

.
|-- Main.java
|-- Makefile
|-- Manifest
`-- original
    `-- Test.java

Main.java:

public class Main {
    public static void main (String[] args) {
       Test.test();
    }
}

Test.java:

public class Test {
    public static void test() {
        System.out.println("This is a test");
    }
}

Manifest:

Main-Class: Main

Итак, я делаю:

javac -source 1.6 -target 1.6 -classpath original/:./ Main.java
javac -source 1.6 -target 1.6 -classpath original/:./ original/Test.java

И это генерирует Main.class and original/Test.class Я могу запуститьэто с java -classpath original/:./ Main.Это то, что я хочу.

Но теперь мне нужно jar файлов.Как это сделать правильно?

Я пытался:

jar cfm Main.jar Manifest Main.class
jar cfm original/Test.Jar Manifest original/Test.class

Но здесь я не знаю, как правильно запустить мой Main.

Если я это сделаю:java -jar -classpath original/:./ Main.

Я получил Error: unable to access jarfile Main.

И если я сделаю: java -jar original/Test.jar Main.jar.

Я получил Error: could not find or load main class Main.

Яя застрял здесь.

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

Это должна быть точка, с которой вы должны начать использовать Maven или Gradle для создания своего приложения.

Таким образом, вы можете включить внешние библиотеки в ваш встроенный файл .jar, и вы ненужно почти так же беспокоиться о выборе правильной зависимости .jar

0 голосов
/ 14 октября 2018

Я бегу дальше:

  • Компилировать классы javac -source 1.6 -target 1.6 -classpath original/:./ original/Test.java javac -source 1.6 -target 1.6 Main.java
  • Создать банку jar cfe app.jar Main Main.class original/Test.class
  • Запустить банку java -jar app.jar Вывод: This is a test
0 голосов
/ 14 октября 2018

Хорошо, только что заметил, ваш файл Test.java находится в исходной папке, поэтому вам нужно объявить оригинал пакета;сверху ваш файл Test.java должен выглядеть следующим образом:

package original;

public class Test {

    public static void main(String args[]) {
        System.out.println("Hello Test");
    }
}

Затем вам нужно скомпилировать как Main.java, так и original \ Test.java, выполнив следующую команду:

javac Main.java original\Test.java

Затемвыполните эту команду, чтобы создать файл jar,

jar cf main.jar Main.class original\Test.class

Это создаст файл main.jar, а затем вы сможете выполнить следующие команды для запуска основной или тестовой программ,

java -cp main.jar Main

или

java -cp main.jar original.Test

Дайте мне знать, если у вас возникнут какие-либо проблемы.

...