Можно ли создать файл jar, состоящий из всех файлов jar, которые мне нужны? Я создаю свой проект, и файлы jar не включаются в сгенерированный файл jar, и я хотел бы создать один отдельный файл jar, который содержит все файлы jar в этом проекте.Как разместить все файлы jar в одном файле jar?
ответ
Есть плагины Eclipse, которые могут сделать это FatJar, JarsSplice
FatJar действительно прост в использовании, и он работает .. .thanks – ict1991
Ну, файл jar не может содержать другой файл jar, но вы можете создать большой файл jar со всеми классами, которые вы хотите использовать из нескольких файлов jar.
Невозможно. Вы не можете включать банки в банку, чтобы иметь их на пути к классу (вы можете поместить их в банку, но вы не можете использовать их в качестве зависимостей).
Maven, однако, дает вам альтернативу maven-assembly-plugin. Он распаковывает все банки и хранит их .class файлы в вашей новой, единственной банке. Конечно, есть и другие варианты сделать то же самое, но maven - отличный инструмент построения, который можно использовать в любом случае.
* «Невозможно. Вы не можете включать банки в банку». * Конечно, вы можете. Независимо от того, можно ли его заставить работать во время выполнения, это отдельный вопрос. В этом отношении, я полагаю, *** существуют также пользовательские загрузчики классов, которые могут загружать ресурсы из Jar внутри других Jars. –
да, вот что я имел в виду. Конечно, их можно положить, но вы не можете их использовать. Классный загрузчик - хорошая идея, возможно, у вас есть ссылка? – Bozho
Я думал, вы могли бы спросить об этом. ;) Быстрый поиск на «jar class loader» показывает .. много лоскутов, но в 1-м 5 хитах есть ссылка на «One Jar», как упоминалось evanwong. * «One-JAR предоставляет пользовательский загрузчик классов, который знает, как загружать классы и ресурсы из банок внутри архива, а не из банок в файловой системе». * * –
yguard tool может это сделать. Он также может сжимать ваш код и обфускать его, если хотите.
Вот муравей пример из их документации:
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="buildlib/yguard.jar"/>
<inoutpairs resources="auto">
<fileset dir="${input-lib-dir}">
<include name="myapp*.jar"/>
<exclude name="*_obf.jar"/>
</fileset>
<mapper type="glob" from="*.jar" to="*_obf.jar"/>
</inoutpairs>
Взгляните на onejar:. http://one-jar.sourceforge.net/
Вы можете использовать один баночку Maven плагин в
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- REPOSITORIES -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- ONE JAR PLUGIN -->
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.acme.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<!-- Optional -->
<onejarVersion>0.97</onejarVersion>
<!--
Optional, use only if you need to include native libraries
(dll's) <binlibs> <fileSet>
<directory>${project.build.directory}/dllextract</directory>
<includes> <include>test.dll</include> </includes> </fileSet>
</binlibs>
-->
<!-- Optional, default is false -->
<attachToBuild>true</attachToBuild>
<!-- Optional, default is "onejar" -->
<classifier>onejar</classifier>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
- 1. Можно ли разместить файлы конфигурации в JAR?
- 2. Как установить Classpath включить все файлы JAR в пакетном файле
- 3. Как использовать файлы в файле jar?
- 4. Блокировка файлов Jar, скрывающих исходные файлы в файле .jar
- 5. Где разместить файлы конфигурации в JAR?
- 6. Как выполнить файл jar в файле jar
- 7. Два одинаковых класса в одном файле jar
- 8. Изображения в файле jar
- 9. Как использовать файлы jar
- 10. где разместить файлы jar внутри репозитория
- 11. включая исходные файлы в файле runnable jar
- 12. Как разместить файлы jar перед SDK в Android Studio?
- 13. Хранить все зависимые файлы jar в каталоге
- 14. Поиск файлов в файле jar (включая файлы классов Jython в файле jar)
- 15. Листинг классов в файле jar
- 16. Найти текстовые файлы в Jar
- 17. Загрузить класс в файле Jar
- 18. Как удалить папку в файле Jar?
- 19. Как скопировать текстовые файлы внутри файла .jar, когда выполняется .jar.
- 20. Как развернуть файлы в JAR?
- 21. Как добавить файлы в jar
- 22. Звуковые проблемы в файле jar
- 23. Импорт файлов Jar в другой каталог в вашем файле jar
- 24. Как включить файлы jar зависимости в файл jar
- 25. Как получить всю структуру файла как дерево, когда в этом файле jar есть файлы jar.
- 26. Maven - как разместить файлы jar зависимости зависимости от сборки?
- 27. Как maven получает файлы JAR?
- 28. Файлы OpenIMAJ Jar
- 29. Как исключить java-файлы из jar в maven-jar-plugin?
- 30. Вложенные файлы jar
посмотрите на этом посту: http://stackoverflow.com/questions/183292/classpath-including-jar-within-a-jar – dexametason
* «Возможно ли построить aj ar файл, состоящий из всех файлов jar, которые мне нужны? »* Обычно лучше включать манифест в основной Jar, который идентифицирует зависимые Jars по относительным путям. Почему вы не реализуете эту стратегию? –