私は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ビルド'を使用してコンパイルし、私の.jarを実行するjava -jar myjar.jarを使用 – Fake
あなたはこの答えを見るかもしれません:https://stackoverflow.com/a/18413058/327680 –