【问题标题】:Netbeans java maven project builds sucesfully, but won't runNetbeans java maven项目成功构建,但不会运行
【发布时间】:2018-08-22 17:30:53
【问题描述】:

当我清理和构建时,项目显示“构建成功”并且我可以看到在目标文件夹中创建的 .jar 文件,但是当我尝试运行或调试主类 netbeans 时显示“错误:找不到或加载主类...”?我可以从命令行运行 .jar 文件。

编辑:这是一个 javaFx 项目。

【问题讨论】:

  • 请发Minimal, Complete, and Verifiable example,至少,您需要包含一个 pom.xml 和您的 java 源文件。
  • [1] Re “当我尝试运行或调试主类时...”,请准确指定您正在做什么以调试或运行主类. [2] 如果您在Projects面板中选择项目的节点,然后按F6运行它会发生什么? [3] 使用main() 方法发布类的代码。

标签: java maven javafx netbeans


【解决方案1】:

我已经部分解决了这个问题。看来 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>

【讨论】:

  • 很高兴您已经(部分)解决了您的问题,但是您的 NetBeans 环境有些问题,您需要跳过障碍才能运行您的项目。您使用的是什么版本的 NetBeans 和 Java?此外,您是否将生成的 nbactions.xml 与您的项目正在使用的原始“坏” nbactions.xml 进行比较?
  • 我在答案中添加了原始 nbactions.xml 文件的副本。我正在使用 NB 8.2 和 jdk 1.8.0_131。我确实注意到,即使是我的 NB 中的全新 maven/javaFX 应用程序也有同样的问题——无法从主类运行。
  • 查看这个 NetBeans Bug 212698 - nbactions.xml gets corrupted,状态为 RESOLVED WONTFIX 可能相关。但这并不能解释您使用全新 Maven/JavaFX 应用程序的问题。
【解决方案2】:

可能是由于某些原因,你可以试试这些:

  1. 主类未声明为“PUBLIC”。
  2. Java 环境路径应为set correctly
  3. 尝试更改项目位置。

【讨论】:

  • [1] 在 NetBeans 中运行时,环境信息无关紧要。使用 IDE 的配置。 [2] 无论如何,OP 声明从命令行运行时一切正常。
猜你喜欢
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
相关资源
最近更新 更多