Экспорт внешних классов в JAR - Eclipse - PullRequest
1 голос
/ 18 февраля 2010

У меня есть несколько файлов классов, которые требуются для моего проекта. Я добавил их в исходную папку в соответствующей структуре папок. Мое ограничение заключается в том, что я должен предоставить один JAR-файл со всеми зависимыми классами. Это не может быть исполняемый файл JAR.

Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я выбрал экспорт в eclipse для экспорта файла jar, я не получаю файлы классов (.class), которые я добавил в исходную папку, получая экспорт. Они даже не перечислены в проводнике пакетов. Как я могу достичь этого? какие-либо настройки экспорта должны быть изменены?

Чтобы быть ценой, мой проект такой:

project
     src
       com
         test
            file1.java
            file2.java
          external
            class1.class
            class2.class

Теперь я хочу, чтобы сгенерированные классы для моих исходных файлов и файлов классов, которые я сам добавил, экспортировались в jar.

Ответы [ 5 ]

2 голосов
/ 18 февраля 2010

Может быть, вам нужно экспортировать исполняемый JAR-файл ?

Редактировать: Если у вас много зависимостей, тогда Jar Shrinker / obfuscator ваш лучший друг.См. Proguard или yGuard .Для Proguard есть плагин Eclipse .Или вы можете использовать Ant для интеграции любого из них вручную.

0 голосов
/ 18 февраля 2010

Папка src обычно не используется для хранения файлов .class. Eclipse просматривает уже созданные файлы .class и создает файл jar. Поэтому вы можете добавить ваши внешние файлы .class в папку «lib или что-то еще» в вашем проекте. Затем соберите свой проект и экспортируйте файл jar. вы увидите, что файл jar теперь содержит папку с именем lib или что-то еще и ваши внешние файлы .class в ней.

0 голосов
/ 18 февраля 2010

Всякий раз, когда я внедряю приложение, которое необходимо доставить клиенту, я включаю какой-то сценарий сборки для построения дистрибутива из командной строки. Например, файл Ant "build.xml", файл Maven "pom.xml" или даже Makefile. Чтобы справиться с вашей конкретной ситуацией, сценарий должен включать в себя шаг, который собирает все соответствующие классы во временное дерево каталогов и создает из него JAR-файл distro.

Мне не нравится зависеть от капризов некоторых IDE при выполнении производственных сборок.

0 голосов
/ 18 февраля 2010

Я бы использовал Maven и Плагин сборки Maven - это действительно облегчает создание jar с зависимостями или даже исполняемый jar.

Недостатком является то, что требуется время, чтобы научиться максимально использовать Maven - но вы обнаружите, что жизнь станет намного проще, если вы измените свой проект, чтобы использовать его. Поскольку вы используете Eclipse, я могу порекомендовать этот плагин: M2 Eclipse Plugin

0 голосов
/ 18 февраля 2010

Во-первых, я не уверен, что ваши классы могли бы работать, если бы они не находились в соответствующем каталоге, представляющем их пакеты.

Т.е.

project
     src
       com
         test
            file1.java
            file2.java
          external
            org
              extproject
                subpackage
                  class1.class
                  class2.class

Затем я бы скорее попытался добавить связанная папка ссылается на корневой каталог этих классов и выбирает эту папку при экспорте проекта в Jar.

project
     src
       com
         test
            file1.java
            file2.java
     org (linked to c:/another/path/to/ext/project/classes)
       extproject
         subpackage
            class1.class
            class2.class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...