gpt4 book ai didi

java - 尝试 jun java -cp my-jar.jar org.test.MyClass 但找不到类

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:28 26 4
gpt4 key购买 nike

我有一个项目,我将其编译为 fat jar(包括依赖项)。我也有这样的类(class)...

package com.me;
class MyClass{
public static void main(String[] args){
System.out.println("Working");
}
}

如果我打开我的 jar,我会看到类文件,但是,当我运行时...

java -cp my-jar.jar com.me.MyClass

我收到以下错误...

Error: Could not find or load main class com.me.MyClass Caused by: java.lang.ClassNotFoundException: com.me.MyClass

为什么它没有进入类路径?运行这个的正确方法是什么?

我使用的是 Windows,因此这可能有所不同。

更新

我有以下代码,使其成为我的 build.gradle 中的一个 fat jar 子...

task fatJarTest(type: Jar) {
baseName = project.name + '-test-all'
from sourceSets.test.output
from {
configurations.testCompile.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}

当我注释掉

from {
configurations.testCompile.collect { it.isDirectory() ? it : zipTree(it) }
}

然后重新创建 jar ,然后一切正常,但它不是一个 fat jar 子。

最佳答案

我的问题与冲突的依赖项有关,我必须将以下内容添加到我的 Build.gradle 中...

dependencies {
...
testCompile('org.springframework.boot:spring-boot-starter-test'){
exclude group: "org.ow2.asm", module: "asm"
}
}
task fatJarTest(type: Jar) {
baseName = project.name + '-test-all'
from {
configurations.testCompile.collect { it.isDirectory() ? it : zipTree(it) }
}{
exclude "META-INF/*"
exclude "META-INF/*.*"
exclude "META-INF/**/*.*"
exclude "LICENSE.txt"
}
from sourceSets.test.output
with jar
}

基本上,这是一个问题 ( https://github.com/spring-projects/spring-boot/issues/7934 ),另一个问题是 META-INF 相互挤压。

关于java - 尝试 jun java -cp my-jar.jar org.test.MyClass 但找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636135/

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