当我清理和构建时,项目会显示“构建成功”,并且可以看到在目标文件夹中创建的.jar文件,但是当我尝试运行或调试主类netbeans时,显示“错误:找不到或加载主类...”?我可以从命令行运行.jar文件。
编辑:这是一个javaFx项目。
答案 0 :(得分:0)
可能由于某些原因,您可以尝试以下方法: 1.Main类未声明为“ PUBLIC”。 2.Java环境路径应正确设置。(链接https://introcs.cs.princeton.edu/java/15inout/windows-cmd.html) 3.尝试更改项目的位置。
答案 1 :(得分:0)
我已经部分解决了这个问题。看来netbeans与javaFX项目存在一些问题。我发现了几个指示问题的站点。
我可以通过创建一个新的Maven / JavaFX应用程序使其工作,然后从该项目中获取nbactions.xml文件,并在项目中替换了nbactions.xml。之后,我可以通过选择主项目节点并使用工具栏上的运行/调试按钮来运行该应用程序。右键单击Main类,然后选择运行或调试仍然不起作用。 感谢@skomisa提醒我,有多种方法可以运行项目!
这是我复制的有效的nbactions.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<goals>
<goal>clean</goal>
<goal>package</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<runfx.args>-jar "${project.build.directory}/${project.build.finalName}.jar"</runfx.args>
</properties>
</action>
<action>
<actionName>debug</actionName>
<goals>
<goal>clean</goal>
<goal>package</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<runfx.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -Dglass.disableGrab=true -jar "${project.build.directory}/${project.build.finalName}.jar"</runfx.args>
<jpda.listen>true</jpda.listen>
</properties>
</action>
</actions>
这是以前的nbactions.xml文件不起作用的示例。请注意,运行和调试操作的属性有很大不同。
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath com.edulog.athenaprobe.MainApp</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath com.edulog.athenaprobe.MainApp</exec.args>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
</properties>
</action>
</actions>