gpt4 book ai didi

java - 如何从命令行在 Java Gradle 项目中运行 main 方法?

转载 作者:行者123 更新时间:2023-11-29 04:15:55 28 4
gpt4 key购买 nike

我有一个 Gradle 项目(例如,MyProject),它有一个主要方法,我只想用它来运行一个小型 Java 应用程序。比如说,脚本在一个类和包中,如下所示:

MyScript.Java

package com.car.ant;

import com.3rdparty.library.LibraryException;

public class MyScript {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}

我用 $ ./gradlew clean build 构建项目,没问题。我试图通过命令行运行它,但是当我这样做时,我在尝试运行时遇到异常:

$ pwd
~/workspace/MyProject/build/classes/java/main
$ java com.car.ant.MyScript
Exception in thread "main" java.lang.NoClassDefFoundError: com/3rdparty/library/exception/LibraryException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
... 7 more

这个脚本不是应用程序的主要部分,但我只是想让它每隔一段时间运行一次,我想弄清楚如何通过命令行运行它。有没有办法在不导入更多库的情况下做到这一点?我已经看到用一个 jar 就可以做到这一点,但我认为我可以在没有一个 jar 的情况下做到这一点。

更新:

阅读后尝试添加类路径 this ,但现在我得到了一个不同的错误:

$ java -cp com/3rdparty/library/exception/LibraryException com.car.ant.MyScript
Error: Could not find or load main class com.car.ant.MyScript

最佳答案

您可以在 the Gradle Docs 阅读有关如何执行此操作的信息.

apply plugin: 'application'
mainClassName = "com.mycompany.myapplication.MyScript"
applicationDefaultJvmArgs = [
"-Djava.util.logging.config.file=src/main/resources/logging.properties"
]

然后只需使用 gradlew run 即可运行您的应用程序。

作为一个额外的好处,这个插件可以帮助您打包您的应用程序以进行分发。为此使用 gradle distZip 命令。

关于java - 如何从命令行在 Java Gradle 项目中运行 main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52392430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com