Java 如何将所有jar文件放在一个jar文件中?
有可能构建一个由我需要的所有jar文件组成的jar文件吗?我正在构建我的项目,而jar文件没有包含在生成的jar文件中,我想生成一个单独的jar文件,其中包含该项目中的所有jar文件有Eclipse插件可以做到这一点,不可能。您不能将jar包含在jar中以便将它们放在类路径上(您可以将它们放在jar中,但不能将它们用作依赖项) 但是,为您提供了另一种选择。它解压所有jar并将它们的.class文件存储在新的单个jar中。当然,还有其他选项可以做同样的事情,但是maven是一个很好的构建工具,无论如何都可以使用。可以做到这一点。如果您愿意,它还可以缩小代码并使其模糊 以下是他们文档中的ant示例:Java 如何将所有jar文件放在一个jar文件中?,java,build,jar,Java,Build,Jar,有可能构建一个由我需要的所有jar文件组成的jar文件吗?我正在构建我的项目,而jar文件没有包含在生成的jar文件中,我想生成一个单独的jar文件,其中包含该项目中的所有jar文件有Eclipse插件可以做到这一点,不可能。您不能将jar包含在jar中以便将它们放在类路径上(您可以将它们放在jar中,但不能将它们用作依赖项) 但是,为您提供了另一种选择。它解压所有jar并将它们的.class文件存储在新的单个jar中。当然,还有其他选项可以做同样的事情,但是maven是一个很好的构建工具,无论
<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:
您可以使用一个jar 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>
onejar-maven-plugin.googlecode.com
http://onejar-maven-plugin.googlecode.com/svn/mavenrepo
org.apache.maven.plugins
maven jar插件
org.acme.MainClass
org.dstowall
onejar maven插件
1.4.4
0.97
真的
奥内贾尔
一罐
看看这篇文章:“有可能构建一个由我需要的所有jar文件组成的jar文件吗?”通常最好在主jar中包含一个清单,它通过相对路径标识依赖的jar。你为什么不实施这个策略呢?“不可能。你不能在罐子里放罐子。”当然可以。它是否能在运行时工作是另一回事。在这方面,我相信还有一些自定义类装入器可以从Jar内部装入其他Jar中的资源。当然,你可以把它们放进去,但你不能用它们。类加载器是个好主意,你有链接吗?我想你可能会问这个问题在“jar类加载器”上快速搜索显示..有很多渣滓,但在前5次点击中是..'一个罐子’,正如evanwong提到的。“一个JAR提供了自定义类加载器,它知道如何从存档中的JAR而不是从文件系统中的JAR加载类和资源。”:)一个JAR不再维护。我正在维护一个部分现代化的叉子