我有两个项目的gradle设置。布局:
build.gradle
libtestapp/
>src/
>main/
>java/
>testapp/
>Test.java
settings.gradle
testapp-gui/
>src/
>main/
>java/
>testapp/
>TestGui.java
Project testapp-gui使用libtestapp的功能。 项目testapp-gui在运行gradle时编译:testapp-gui:build。 但是当运行jar时,Java抱怨缺少类Test。
的build.gradle:
subprojects {
apply plugin: 'java'
}
project(':testapp-gui') {
dependencies {
compile project(':libtestapp')
}
jar {
manifest {
attributes 'Main-Class': 'testapp.TestGui'
}
}
}
settings.gradle:
包括'libtestapp','testapp-gui'
Test.java:
package testapp;
public class Test {
public static void call() {
System.out.println("Hi, Im in libtestapp.");
}
}
TestGui.java:
package testapp;
import testapp.Test;
public class TestGui {
public static void main(String[] args) {
Test.call();
}
}
Java错误:
Exception in thread "main" java.lang.NoClassDefFoundError: testapp/Test
at testapp.TestGui.main(TestGui.java:8)
Caused by: java.lang.ClassNotFoundException: testapp.Test
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
答案 0 :(得分:1)
除非您在IntelliJ或其他IDE中执行应用程序,否则在使用命令行时,您需要使用' - classpth'或'显式包含依赖项 - cp '开关:
java -cp .;libs\*.jar your.package.MainClass