ここにヌードルを追加します。私は、Gradleを使って依存関係をよりよく理解するために、そしてJavaでさまざまなファイルをインポートするために使用しようとしている非常に単純なプロジェクトを持っています。次の3つのファイルでGradle&Java:ファイルを依存関係として追加する
$ ls
build.gradle dependencies src
$ ls dependencies/
Hello.java Hello.jar
$ ls src/
Temp.java
build.gradle:
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'dependencies', include:'**/*.jar')
}
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
task compile(type: JavaCompile) {
source = file('src')
}
Hello.java
public class Hello{
int l = 1;
public Hello(){
System.out.println(l);
}
public static void main(String[] args){
Hello h = new Hello();
}
}
Temp.java:私は、次のファイル構造を持っている
public class Temp {
public static void main(String[] args0){
Hello h = new Hello();
}
}
コマンドラインでgradle jar
を実行している場合、Gradleのが正常にビルドようです...私のjarファイルを実行するためのGradleのドキュメントに基づいて
$ java -classpath build/libs/testproject.jar Temp
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
at Temp.main(Temp.java:5)
Caused by: java.lang.ClassNotFoundException: Hello
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
をしようとしたときしかし、私が何を参照するように見えることはできません私は間違っている。私の依存関係の仕様はbuild.gradleで何が行われているのですか?また、なぜTemp.javaにHello.javaが表示されるのですか?これをどうやって解決するのですか?
ご協力いただきありがとうございます。