我是初学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 –