我的第一个应用程序的结构很简单:
libs
opencsv-3.8.jar
yamlbeans-1.0.jar
out
artifacts
...
production
...
src
META-INF
MANIFEST.MF
pl.krzysiu
App.java
CsvReplacer.java
在编译和运行程序的过程中一切都很好。在默认的out\工件目录中构建工件jar文件后,我得到
java.lang.NoClassDefFoundError: net/sourceforge/yamlbeans/YamlException
当我试图运行它java-jar CsvReplacer.jar命令
库包含在jar文件中(解包后就在那里)-它们被添加到项目结构中的库部分(单独-每个库一个文件),整个libs dir包含在模块部分的依赖项选项卡中(选中导出复选框),libs dir类似地添加到工件部分的输出布局中。
清单文件包含:
Manifest-Version: 1.0
Class-Path: libs\yamlbeans-1.0.jar libs\opencsv-3.8.jar
Main-Class: pl.krzysiu.App
为什么应用程序的库不可见?如果我手动将此目录复制到CsvReplacer.jar文件的位置-一切正常。
CsvReplacer内部的结构。jar文件看起来像:
libs
opencsv-3.8.jar
yamlbeans-1.0.jar
META-INF
MANIFEST.MF
pl
krzysiu
App.java
CsvReplacer.java
IDE:Intellij IDEA 2016.3
标准Java类加载器找不到嵌入在另一个JAR文件中的JAR文件。
在创建具有依赖项的可执行JAR时,有两种选择。
>
通过将依赖JAR的内容合并到主JAR中,创建一个所谓的uberJAR文件。
参考文献:
给你的JAR一个“类路径”清单属性,告诉它(外部的!)依赖的JAR位于哪里。
你不能同时给出一个cp和jar选项。但是另一种选择是去掉jar选项,使用cp参数来指定类路径。
或者,您可以实现一个自定义类加载器,可以从jar中的jar加载,或者使用类似于一个jar或Spring Boot的东西。
是否有教程解释如何正确创建Java Gradle项目并构建。jar文件? 当我创建Java项目并添加Gradle:File时- 或 我的项目在这一点上是如此的混乱,也许我应该创建另一个项目,然后将Main.class和Gradle的依赖关系从旧项目复制/粘贴到新项目上。 如果这是我的最佳选择,那么这次我如何正确创建项目?
我是Java和堆栈溢出的新手,我在IntelliJ中创建了一个Java项目,并通过构建工件和构建。jar文件创建了一个。jar文件,以便在不使用IntelliJ的情况下运行该项目。该程序使用一个机器人来打开运行窗口,通过按Windows和R键,移动鼠标到我的计算机的分辨率(1366 x 768)的盒子内部,单击,键入cmd并按回车,移动鼠标到cmd窗口内部,单击,键入whoami并按回车。这在In
我有三个*。属性文件。当我在studio中切换这些文件时,一切都按预期进行。但是当我构建一个jar文件时,我认为它找不到属性文件,它在端口8080上可见。尽管在设置中我指定了8090(dev)或5000(prod)。如何解决这个问题。有人能告诉我如何正确地组装jar文件吗? application.properties application-dev.properties application-
问题内容: 我记得前一段时间使用eclipse或netbeans时,我能够轻松地将源文件包含在jar文件中。我已移至intellij 10社区版,发现自己需要做同样的事情。有什么提示吗? 问题答案: 我想到了… 单击“输出布局”选项卡中的“ +”按钮->包含目录内容->选择您的src目录。做到了
HTSJDK是一个用于访问常见文件格式(如SAM和VCF)的库。我想构建HTSJDK JAR。在文档页面中说我必须为此使用Ant。所以我安装了Ant并运行以下命令: ant htsjdk-jar [javac]用法:javac [javac]use-help获取可能选项列表 生成失败 build.xml文件有问题。这里是文件的开头: 拜托,有人能告诉我该怎么做才能解决这个问题吗?
我创建了一个ant构建文件,将我的java src编译成一个.jar文件。它使用外部jar文件。