Как запустить основной метод в проекте Java Gradle из командной строки? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект 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

Этот скрипт не является основной частью приложения, но я просто хочу его втам запускать время от времени, и я хотел бы выяснить, как запустить его сам по себе командной строки.Есть ли способ сделать это без импорта библиотек?Я видел, как это делается с одной банкой, но я думал, что смогу сделать это без одной банки.

ОБНОВЛЕНИЕ:

Попытался добавить путь к классу после прочтения это , но теперь я получаю другую ошибку:

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

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете прочитать о том, как это сделать, на Документах Gradle .

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

Затем просто используйте gradlew run для запуска приложения.

КакДополнительное преимущество, этот плагин поможет вам упаковать ваше приложение для распространения.Для этого используйте команду gradle distZip.

...