Java gradle:无法执行run,因为属性“0”;mainClass“;未定义或为空
从CLI生成并运行以下命令:Java gradle:无法执行run,因为属性“0”;mainClass“;未定义或为空,java,netbeans,gradle,jar,manifest,Java,Netbeans,Gradle,Jar,Manifest,从CLI生成并运行以下命令: thufir@mordor:~/NetBeansProjects/hello_client$ thufir@mordor:~/NetBeansProjects/hello_client$ gradle clean build;java -jar build/libs/hello_client.jar :clean :compileJava :processResources UP-TO-DATE :classes :jar :assemble :compileT
thufir@mordor:~/NetBeansProjects/hello_client$
thufir@mordor:~/NetBeansProjects/hello_client$ gradle clean build;java -jar build/libs/hello_client.jar
:clean
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
Total time: 1.032 secs
hello world
thufir@mordor:~/NetBeansProjects/hello_client$
但Netbeans抱怨:
Executing: gradle run
Arguments: [-c, /home/thufir/NetBeansProjects/hello_client/settings.gradle]
:run
Cannot execute run because the property "mainClass" is not defined or empty.
BUILD SUCCESSFUL
Total time: 0.17 secs
为Netbeans插件设置主类的正确方法是什么?在您的
build.gradle
文件中,您可以首先应用application
插件
apply plugin: 'application'
然后指定要运行的主类:
mainClassName = 'net.bounceme.mordor.Main'
我真的不知道Netbeans的具体内容,但是应用程序
插件将为运行
任务提供必要的配置,以便从命令行运行,希望也能从Netbeans运行
请参阅Gralde用户指南中的此部分:
如果(!hasProperty('mainClass'){ext.mainClass='net.bounceme.mordor.Main'}
似乎可以修复Netbeans,但在CLI中对我不起作用。是的,我试过了,不知道为什么,但那个插件导致了一个gradle构建问题。我刚刚试过,它在你提到的项目中起作用。从命令行运行gradle run
,我来玩它。这似乎提出了一个无关紧要的问题,所以我在你回答之前问了你。哈哈。我可以删除那个问题,可能太多了。呵呵,以前从来没有做过拉动请求,所以只是复制/粘贴了你的解决方案。不过,谢谢:)Netbeans现在从IDE运行JavaSE,这是一个额外的好处,但是,我不太确定这是否是使用插件的“正式”和正确方式。现在可以使用。如果要指定自定义应用程序参数,可以将“cmd line args=my custom args”添加到属性-自定义变量中,就像这里描述的那样: