3

我只想在我的测试文件夹中运行一个 .java 文件以进行调试和测试。如果我在我的主文件夹中运行它,一切都很好,如果我在我的测试文件夹中运行它,我得到一个错误:

我的项目结构:

src
|_____ main
      |_____ java -> MainSrc.java
|_____ test
      |_____ java -> MainTest.java

MainSrc / MainTest.java 包含:

public class MainSrc / MainTest
{
    public static void main(String[] args)
    {
        System.out.println("test");
    }
}

现在,如果我在 netbeans 中右键单击并点击“运行文件”:

主\java\MainSrc.java

run:
test
BUILD SUCCESSFUL (total time: 0 seconds)

测试\java\MainTest.java

cd C:\Java\MainTest; "JAVA_HOME=C:\\Program Files (x86)\\Java\\jdk1.7.0_02" 
"\"C:\\Program Files\\NetBeans 7.2\\java\\maven\\bin\\mvn.bat\"" 
"-Dexec.args=-classpath %classpath Test" 
"-Dexec.executable=C:\\Program Files (x86)\\Java\\jdk1.7.0_02\\bin\\java.exe" 
-Dexec.classpathScope=test --offline --errors process-classes org.codehaus.mojo:exec-maven-plugin:1.2:exec
Error stacktraces are turned on.
Scanning for projects...

------------------------------------------------------------------------
Building Test 1.0
------------------------------------------------------------------------

[resources:resources]
[debug] execute contextualize
Using 'windows-1252' encoding to copy filtered resources.
Copying 0 resource

[compiler:compile]
Nothing to compile - all classes are up to date

[exec:exec]
Error: could not find or load main class MainTest
------------------------------------------------------------------------
BUILD FAILURE

我的操作是(也尝试过 classPathScope=test):

    <action>
        <actionName>run</actionName>
        <goals>
            <goal>process-classes</goal>
            <goal>org.codehaus.mojo:exec-maven-plugin:1.2:exec</goal>
        </goals>
        <properties>
            <exec.args>-classpath %classpath MainTest</exec.args>
            <exec.executable>java</exec.executable>
            <exec.classpathScope>${classPathScope}</exec.classpathScope>
            <exec.workingdir>D:\Dropbox\Java\Test Automation Selenium</exec.workingdir>
        </properties>
    </action>

我不是 Java 专业人士,我大部分时间都在谷歌上搜索,但我找不到解决方案。我也不明白为什么它不起作用。我试图从我的默认包中访问测试包,但那是不可能的...

请帮忙?:) 谢谢

4

1 回答 1

3

这听起来像是神奇的“找不到主类”异常(如果没有,对不起!)。

我已经在 NB 用户邮件列表上看到过很多次了,而且每年一次我也遇到了这个神奇的例外。我收集了我找到的解决方案,这些解决方案通常可以帮助我修复这些异常/错误(列表基于 NB 6.8 的时间,但可能仍然存在)。

  • 确保您有一个包含 main 方法的公共类
  • 这个类必须有一个明确定义的 main 方法:“public static void main(String[] args) { }”
  • 您已经使用正确的类设置了项目配置:Project Properties > Run > Main Class(可能只是再次设置它,以便再次写入项目属性文件)
  • 尝试重建项目: Menu > Run > Clean & Build Main Project
  • 还是没有成功?尝试重命名类 (Foo -> Foo1) 并将其重命名为 (Foo1 -> Foo)。这应该使该文件的 NetBeans 缓存无效(假设 - 我不是 NetBeans 开发人员)。
  • 还是没有成功??您可能必须通过删除目录“.netbeans\6.8\var\cache”来清除 NetBeans 缓存(当然,6.8 可能会根据您的 NetBeans 版本而有所不同)。在删除缓存之前关闭 NetBeans - 下一次启动可能需要一些时间,因为 NB 很可能需要再次扫描您的代码。
  • 还是没有运气?您可能想咨询 NetBeans 用户论坛或 nbusers-Mailinglist(请保持友好、耐心并以其他人能够提供帮助的方式报告错误)。
于 2012-10-17T20:09:48.903 回答