【发布时间】:2018-05-23 00:46:22
【问题描述】:
我是 Java 和 Gradle 的新手,并且有一个非常新手的问题。我有以下 Java 文件:
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello.....");
}
}
我能够使用 javac 编译上述文件,并使用命令“java TestMain”运行它。
我现在正在尝试使用 gradle 构建框架来做同样的事情。我执行了以下步骤: 运行“gradle init --type java-library 将上述文件复制到 src/main/java/
当我运行“./gradlew build”时,我得到一个 TestMain.class 文件,还有一个“building-java-file.jar”(整个 gradle 目录在 building-java-file 目录中)。
$ ls -l build/classes/main/TestMain.class
-rw-r--r-- 1 user1 foo\eng 610 May 22 17:22 build/classes/main/TestMain.class
$ java build/classes/main/TestMain
Error: Could not find or load main class build.classes.main.TestMain
如何运行 TestMain.class? 另外,gradle创建jar文件-building-java-file.jar的原因是什么?
顺便说一句,我的 build.gradle 文件很空。
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
// The production code uses the SLF4J logging API at compile time
compile 'org.slf4j:slf4j-api:1.7.21'
testCompile 'junit:junit:4.12'
}
谢谢你, 艾哈迈德。'
【问题讨论】:
-
查看此 SO 帖子:stackoverflow.com/questions/21358466/…
-
关于更改 jar 的名称,您可以使用
jar.archiveName = “myjar.jar” -
@piy26 我的问题更重要的是,为什么还要创建 jar 文件。这是隐式完成的还是因为我做了一个“gradle init --type java-library”
-
@NaveenKumar 澄清一下,我必须使用 gradle 来执行包含“main”的 java 文件。我不能使用java独立执行它吗?如果是这样,为什么不呢?逻辑是什么?
-
每个 Gradle java 项目在运行
build任务时都会创建一个 jar。classes任务只生成类文件。 Java 插件上的 Gradle 用户指南页面有一些很好的视觉效果和相关信息。你也可以使用application插件。