繁体   English   中英

Gradle:找不到或无法加载主 class

[英]Gradle : Could not find or load main class

这是我的树文件:

src
--JaJson.java
build.gradle

这是我的 JaJson.java:

public class JaJson {

    public static void main(String args[]) {  
    System.out.println("Hello");  
    }  
    public JaJson(){
        System.out.println("what time is it ?");
    }

    public void getTime(){
        System.out.println("Hammer time!");
    }
}

这是我的 gradle.build:

apply plugin: 'java'
apply plugin: 'eclipse'
//apply plugin: 'java-library'
apply plugin: 'application'

mainClassName = "JaJson"
// tag::repositories[]
repositories { 
    mavenCentral() 
}
// end::repositories[]

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}


sourceSets {
    single{
        java {
            srcDir 'src'
            
        }
    }
}


jar {
  manifest {
    attributes(
      'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
      'Main-Class': 'JaJson'
    )
  }
}
task compileSingle(type: JavaCompile) {
    source = sourceSets.single.java
    sourceSets.main.java.srcDirs = ['src']
    classpath = sourceSets.main.compileClasspath
    destinationDirectory = sourceSets.main.output.classesDirs[0]

}
compileJava {
    options.release = 7
}



version = '1.2.1'


// tag::dependencies[]
dependencies {
    implementation "joda-time:joda-time:2.2"
    testImplementation "junit:junit:4.12"
}

当我进行 gradle 构建时:

java -jar build\libs\jajson-1.2.1.jar

它工作正常并打印你好

但是当我尝试仅通过以下方式启动 class 时:

java build\classes\java\main\JaJson.class 

我有一个:

Impossible to found or load main class for  build\classes\java\main\JaJson.class 

在每次构建之前,我都会创建构建文件夹。

rd /s /q build
gradle build && java -jar build\libs\jajson-1.2.1.jar && java build\classes\java\main\JaJson.class 

问候

运行方式

java -cp build/classes/main/java JaJason

Java 命令的帮助中所述,您需要提供主要 class 的名称,而不是主要 class 的路径。如果您的类不在当前目录中(或在当前目录下的 package 目录中),您需要指定类路径:

--class-path 类路径、-classpath 类路径或 -cp 类路径

[...] 如果未使用 class 路径选项且未设置类路径,则用户 class 路径包含当前目录 (.)。

也就是说,您还可以直接从命令行运行一个简单的.java文件:

java src/JaJson.java

这对于快速运行单文件程序非常有用,而无需经历整个 Gradle 构建周期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM