gpt4 book ai didi

java - IntelliJ 创建 jar 工件后没有主 list 属性

转载 作者:行者123 更新时间:2023-12-01 23:51:05 25 4
gpt4 key购买 nike

我正在尝试从 this repository 构建一个 jar 制品。我导入了 apache commons io 和 org.json 作为库。提取工件时,我发现一个 Manifest 文件,其中仅包含 org.json 的信息。你可以找到 jar here 。我的项目中的 list 文件根本没有反射(reflect)。任何帮助表示赞赏。当我在控制台中使用 java -jar 运行 jar 时,我得到了

Error: No Main Manifest Attribute in XXX.jar.

最佳答案

根据您在 github 上提供的项目,我进行了以下更改以使其与 java -jar 一起运行。但首先也是最重要的是,您在 github 上链接的项目不会在新拉取时使用 gradle build 进行构建。

要运行此命令,您需要将 commons ioorg.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'
)
}
}

您的项目还有许多未使用的依赖项,应将其删除,这些依赖项会创建 gradle 警告。

AnweseneheitsTableModel 中删除导入:

import com.sun.org.apache.xpath.internal.operations.Bool;

DienstprotokollInvalidArgumentException 中删除导入:

import com.sun.javaws.exceptions.InvalidArgumentException;

MainForm中删除导入:

import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.xml.internal.fastinfoset.algorithm.BooleanEncodingAlgorithm;

此时您可以运行./gradlew jar,这将为您在build/libs下创建一个jar

您可以使用java -jar build/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)

但那是另一个问题,您可以在此时开始调试程序。

关于java - IntelliJ 创建 jar 工件后没有主 list 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58220022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com