Java IntelliJ在创建jar工件后,没有主要的主要的主阿曲布他
我正试图从中构建一个jar人工制品。我将appache commons io和org.json作为库导入。提取arefact时,我发现一个清单文件,其中只包含org.json的信息。你可以找到那个罐子。我的项目中的清单文件根本没有反映出来。感谢您的帮助。当我在控制台中用java-jar运行jar时,我得到了一个错误:XXX.jar中没有主清单Atribute。从您在github上提供的项目中,我做了以下更改,使它用Java IntelliJ在创建jar工件后,没有主要的主要的主阿曲布他,java,intellij-idea,executable-jar,Java,Intellij Idea,Executable Jar,我正试图从中构建一个jar人工制品。我将appache commons io和org.json作为库导入。提取arefact时,我发现一个清单文件,其中只包含org.json的信息。你可以找到那个罐子。我的项目中的清单文件根本没有反映出来。感谢您的帮助。当我在控制台中用java-jar运行jar时,我得到了一个错误:XXX.jar中没有主清单Atribute。从您在github上提供的项目中,我做了以下更改,使它用java-jar运行。但首先也是最重要的是,您在github上链接的项目并不是通过
java-jar
运行。但首先也是最重要的是,您在github上链接的项目并不是通过全新的gradle build
构建的
要运行此命令,您需要将commons io
和org.json
添加到build.gradle
文件中。这使得build.gradle
文件看起来像:
plugins {
id 'java'
}
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-io', name: 'commons-io', version: '2.6'
compile group: 'org.json', name: 'json', version: '20190722'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
jar {
manifest {
attributes(
'Main-Class': 'de.bergwacht.esslingen.Main'
)
}
}
您的项目还有许多未使用的依赖项,这些依赖项应该被删除,它们会产生渐变警告
在AnweseneheitsTableModel
中删除导入:
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.javaws.exceptions.InvalidArgumentException;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.xml.internal.fastinfoset.algorithm.BooleanEncodingAlgorithm;
在DienstprotocollinvalidargumentException
中删除导入:
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.javaws.exceptions.InvalidArgumentException;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.xml.internal.fastinfoset.algorithm.BooleanEncodingAlgorithm;
在main表单中
删除导入:
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.javaws.exceptions.InvalidArgumentException;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.xml.internal.fastinfoset.algorithm.BooleanEncodingAlgorithm;
此时,您可以运行/gradlew jar
,这将在build/libs
下为您创建一个jar
您可以使用java-jarbuild/libs/BWOrgaTool-1.0-SNAPSHOT.jar运行该jar
该命令将运行它,它将遇到NPE:
Exception in thread "main" java.lang.NullPointerException
at de.bergwacht.esslingen.forms.MainForm.<init>(MainForm.java:138)
at de.bergwacht.esslingen.Main.main(Main.java:42)
线程“main”java.lang.NullPointerException中的异常
位于de.bergwacht.esslingen.forms.MainForm.(MainForm.java:138)
位于de.bergwacht.esslingen.Main.Main(Main.java:42)
但这是另一个问题,您可以在此时开始调试程序。您正在执行什么操作来创建错误?你想用intellij“运行”它吗?你想和gradle一起建吗?你想用jar-jar运行它吗?用java-jar运行提供的项目不会编译。至少使用
渐变构建
。我怀疑这是因为您没有为您的依赖项添加build.gradle依赖项。让我尝试添加到build.gradle,看看它最终会出现在哪里。问题是,我正在尝试使用IntelliJ进行构建,但尚未删除gradle设置。Swing和gradle存在一个已知的问题,它会阻止Swing组件正确初始化。这就是你看到NPE的原因。你知道怎么做吗。