我已经创建了一个Netbeans Gradle项目,我正试图找到将其导出到。jar文件,以便可以从IDE外部打开它。我在我的项目中使用依赖项,我收到了一个java。lang.NoClassDefFoundError。
为了解决这个问题,我尝试添加
jar {
manifest {
attributes "Main-Class": "CollegeCounselor.Main"
}
from{
configurations.compile.collect{ it.isDirectory() ? it : zipTree(it)}
}
}
为了我的身材。格雷德尔档案。然而,这带来了一个java。lang.SecurityException:清单主属性的签名文件摘要无效。
为了解决这个问题,我提出了一个建议
{exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'}
我的档案。这解决了通过命令行运行文件的问题。现在可以通过java-jar
运行它了。然而,我仍然无法通过mac上的finder运行它。它告诉我一个错误,说java jar无法启动,并告诉我检查控制台以了解更多细节。我无法理解如何解决这个问题,或者为什么我可以通过命令行而不是通过finder窗口来运行它。我将转到build/libs/file。jar路径并试图打开此文件。
如能就出口该项目的最佳方式提供任何协助,将不胜感激。
这是我的身材。gradle文件:
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'application'
mainClassName = 'CollegeCounselor.Main'
repositories {
jcenter()
}
dependencies {
testCompile 'junit:junit:4.12'
compile('com.microsoft.graph:microsoft-graph:1.5.+')
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.4.0'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'
}
jar {
manifest {
attributes "Main-Class": "CollegeCounselor.Main"
}
from { (configurations.runtime).collect { it.isDirectory() ? it : zipTree(it) } }
{
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
}
这对我很有用:
gradleproject ect2
的简单Gradle应用程序jar {
manifest {
attributes(
'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
'Main-Class': 'hello.HelloWorld'
)
}
}
hello。HelloWorld
,以及包含main()
的类的包和名称,在我的例子中是gradleproject2。Main
,所以我修改了构建。格雷德尔看起来像这样:apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'application'
mainClassName = 'gradleproject2.Main'
repositories {
jcenter()
}
dependencies {
testImplementation 'junit:junit:4.13'
}
jar {
manifest {
attributes(
'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
'Main-Class': 'gradleproject2.Main'
)
}
}
gradleproject2。jar
位于{project directory}\build\libs
中
更改对构建的影响。gradle将更改清单的内容。jar文件中的MF来自:
Manifest-Version: 1.0
...对此:
Manifest-Version: 1.0
Class-Path:
Main-Class: gradleproject2.Main
最后,从命令行运行jar文件。在我的例子中,命令只是java-jar gradleproject2。jar
:
我确实检查了已经回答过的问题,这些问题的主题几乎与这个问题相同,但没有一个回答过的问题能够解决我的问题。 我已经在线搜索了大约4个小时,尝试了很多不同的方法来解决我的问题。。 我想在Java做一个乒乓游戏,现在我想导出我的项目,这样我就可以把它发给一些朋友,这样他就可以试试了。 我在这个项目中使用LWJGL,所以我确实在参考库和LWJGL中添加了一些JAR。jar添加了windows本机,它包含在
我今天花了几个小时在谷歌上搜索大多数解决方案都过时了。我在项目所遵从的窗口上使用eclipse,但我无法使它成为一个独立的应用程序,如果没有: 有哪些方法可以将JavaFX11项目导出到可执行jar中,而无需在导出后将其链接到JavaFX-SDK-11.0.2? 谢了。
所以,我已经在互联网上阅读了如何将我的项目提取到一个可运行的Jar文件。 我可以很好地提取它们,但当我尝试运行它时,它什么也不做。 当我在命令提示符下用 它所指向的特定行是: 它正在产生一个空指针异常。当我在eclipse中运行我的项目时,它就很好了。 当我将它导出到一个jar时,它得到一个NPE,我相信这是由于它找不到文件造成的。 以下是我的项目工作区: http://imgur.com/034
有没有什么我应该提前补充的谢谢:)
我正在为我的项目创建一个使用Log4j2的JAR文件。我已将Log4j2 jar(用于核心和API)保存在“src”文件夹下的“lib”文件夹中。在Eclipse中,我导出了我的项目来创建JAR文件,并检查了JAR文件中是否包含/存在“lib”文件夹。 当我从eclipse中运行项目时,它运行得非常好,但是当我尝试通过cmd提示符执行jar时,我得到了以下错误: 导致错误的代码行(第20行)是:
我正在尝试导出一个包含som映像的java项目,但导出后映像并不显示。我看过这些类似的问题和答案: Eclipse导出的Runnable JAR不显示图像 在Eclipse(Java)中用JAR导出图像 当我从Eclipse运行程序时,图像会显示出来,但当我导出它时,它们就消失了。我做错了什么?我真的觉得我什么都试过了,但也许我遗漏了一些简单的细节? 谢谢!