我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
当前回答
您可能想看一看Maven (http://maven.apache.org)。您既可以将它用作应用程序的主要构建过程,也可以仅通过Edit Configurations对话框执行某些任务。在Maven中创建一个模块的JAR的过程是相当简单的,如果您希望它在一个可自行执行的JAR中包含所有依赖项,那么这个过程也是非常简单的。
如果您以前从未使用过Maven,那么您应该阅读Better Builds With Maven。
其他回答
当我使用这些解决方案这个错误来:
java -jar xxxxx.jar
在xxx.jar中没有主清单属性
解决方案是:
您必须更改清单目录:
<project folder>\src\main\java
将Java更改为资源
<project folder>\src\main\resources
如果您在项目中使用第三方库,或者在创建MANIFEST时遇到问题。MF文件,在运行使用
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
上述方法。
相反,我建议您创建一个空JAR,并手动将所有其他元素添加到输出根中。关于这种方法的一篇精彩的博客文章可以在这里找到:http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/我尝试了上面提到的步骤,一切都很顺利!
下面是如何使用IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/构建一个罐子
文件->项目结构->项目设置->工件->点击绿色加号-> Jar ->从模块依赖…
如果您需要使jar可运行,请选择一个主类(带有Main()方法的类)。
上面设置了“骨架”,即罐子将保存到的位置。要实际构建并保存它,请执行以下操作:
提取到目标Jar
OK
构建|构建Artifact |构建
尝试从。jar文件中提取
ProjectName | out | artifacts | ProjectName_jar | ProjectName.jar
Ant和Maven被广泛使用。我更喜欢Ant,我觉得它更轻量级,你作为开发人员更有控制权。有些人会认为这是它的缺点:-)
这可能有点晚,但我设法解决它的方式-> 用winrar打开并删除ECLIPSEF。RSA和ECLIPSEF。SF在META-INF文件夹中,并且在MANIFEST.MF中放置“Main-class: main_class_name”(没有“.class”)。确保你在最后一行之后按了两次“Enter”,否则它将不起作用。