[英]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.