我真正需要的东西与Eclipse和Netbeans相当:
我想Extract required libraries into generated JAR
所以我可以分发它,而不需要在任何地方都包含lib文件夹。
这是原始问题。
我正在尝试用Netbeans构建一个jar,它会将所有库文件打包在其中。通过选择Export,我听说Eclipse是可能的。使用Netbeans,如果我“清理并构建”它将在dist文件夹中创建一个可执行jar,但它所依赖的所有库都在一个名为lib的文件夹中。我需要一切都在一个jar文件中。我认为它与build.xml文件有关。这是我的说法。我在这里弄错了什么?
感谢您的帮助。
<?xml version="1.0" encoding="UTF-8"?>
<project name="BONotifier" default="default" basedir=".">
<description>Builds, tests, and runs the project BONotifier.</description>
<import file="nbproject/build-impl.xml"/>
<target name="-post-jar">
<jar jarfile="dist/Combined-dist.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
<zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" />
<manifest>
<attribute name="Main-Class" value="controller.MainController"/>
</manifest>
</jar>
</target>
</project>
更新:上面的代码位于build.xml中。以下是build-impl.xml。我猜这意味着build.xml在build-impl.xml期间运行。
<target name="-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
注意我从这个forum得到了这个。
答案 0 :(得分:16)
我更喜欢this解决方案,因为没有任何内容可供下载,所有内容都基于Ant构建(~20行)。这样就没有额外的依赖性了。如果你有几分钟的时间,你也可以了解Ant。
似乎原始文章的链接已被破坏(感谢Oracle)。这是另一个link。
原始文章也可从Oracle link获得。
答案 1 :(得分:5)
答案 2 :(得分:1)
好的,这是我的解决方案。我也遇到了我的程序在Netbeans上编译和运行的问题,但是当我尝试Java -jar MyJarFile.jar时它失败了现在,我还没有完全理解Maven,我认为这就是为什么让Netbeans 8.0.2包含我的jar有困难将文件放入库中以将它们放入jar文件中。我在考虑如何在Eclipse中使用没有Maven的jar文件。
编译所有依赖项和插件的是Maven。不是Netbeans。 (如果你能让Netbeans这样做,请告诉我们如何(^。^)v)
[Solved - for Linux]打开终端。
然后
cd / MyRootDirectoryForMyProject
下一步
mvn org.apache.maven.plugins:maven-compiler-plugin:compile
下一步
mvn install
这将在目标目录中创建jar文件。
MyJarFile-1.0-罐与 - dependencies.jar
现在
cd target
(您可能需要运行:chmod + x MyJarFile-1.0-jar-with-dependencies.jar) 最后
java -jar MyJarFile-1.0-jar-with-dependencies.jar
请参阅
https://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException
我会将此解决方案发布在其他几个类似问题的页面上。希望我能在一周的挫折中拯救一些人。
答案 3 :(得分:-1)
没有内置方法可以做到这一点。但是,您可以使用外部工具将其归档为OneJar:
http://one-jar.sourceforge.net/
编辑:显然这甚至是Netbeans团队希望您这样做的方式:http://wiki.netbeans.org/PackagingADistributableJavaApp