我是初學Java,當我運行我的.jar時遇到一些麻煩。 我得到了一個Netty類的ClassNotFoundException。 似乎邏輯上,我的.jar沒有找到netty類。Java:使用netty運行程序時出現ClassNotFoundException異常[Gradle]
這裏是我的跟蹤:
Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup
\t at src.Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: io.netty.channel.EventLoopGroup
\t at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
\t at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
\t at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
\t ... 1 more
的編制工作正常gradle這個。 我的主build.gradle在編譯程序的不同文件夾中調用2 build.gradle。 這是我主要的build.gradle:
subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'io.netty:netty-all:4.1.16.Final'
compile files("./lib/netty-all-4.1.16.Final.jar")
testCompile 'junit:junit:4.12'
}
}
這裏是由主的build.gradle調用的的build.gradle,它編譯我的sources.java:
apply plugin: "java"
sourceSets {
main.java.srcDir "./src/"
}
jar {
manifest.attributes "Main-Class": "src.Main"
destinationDir project.file('../Jar/')
baseName 'Server'
}
我的文件樹是這個樣子:
MyProject
--> build.gradle
--> settings.gradle
--> lib [DIR]
--> netty-all-4.1.16.Final.jar
--> server [DIR]
--> build.gradle
--> src [DIR]
--> Main.java
我不明白,爲什麼當我編譯一切正常,當我運行它沒有找到網狀類。
你能幫我嗎? 謝謝!
你如何運行你的應用程序?你在使用Gradle還是直接調用它?該異常表示Netty類不在您的運行時類路徑中。 –
您好奧茲,編譯我使用'gradle build',並執行我的.jar我使用java -jar myjar.jar – Fake
您可以看看這個答案:https://stackoverflow.com/a/18413058/327680 –