无法从src \ test文件夹“运行文件” - >主要类未找到或无法加载

时间:2012-10-16 13:33:35

标签: java testing maven netbeans exec

我只想在我的test-folder中运行一个.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的专业人士,大多数我用Google搜索,但我找不到解决方案。 我也不明白为什么它不起作用。我试图从我的访问测试包 默认包,但是ofc是不可能的......

请帮忙吗? :)谢谢

1 个答案:

答案 0 :(得分:2)

这听起来像是一个神奇的“没有发现主要课程”的例外(如果不是,请对不起!)。

我在NB用户邮件列表上已经看过很多次了,每年我也遇到过这个神奇的例外。我找到了gathered the solutions,这通常帮助我修复了这种异常/错误(列表基于NB 6.8的时间,但可能仍然存在)。

  • 确保您拥有包含main方法的公共类
  • 此类必须有一个定义良好的main方法:“public static void main(String [] args){}”
  • 您已使用正确的类设置项目配置:项目属性&gt;运行&gt;主类(可能只是再次设置它,以便编写项目属性文件 再次)
  • 尝试重建项目:菜单&gt;运行&gt;清洁&amp;建立主项目
  • 还没有成功?尝试重命名该类(Foo - &gt; Foo1)并将其重命名(Foo1 - &gt; Foo)。这应该使此文件的NetBeans缓存无效(假设 - 我不是NetBeans开发人员)。
  • 还没有成功?您可能必须通过删除目录“.netbeans \ 6.8 \ var \ cache”来清除NetBeans缓存(6.8当然可能因您的NetBeans版本而异)。在删除缓存之前关闭NetBeans - 下次启动可能需要一些时间,因为NB很可能必须再次扫描您的代码。
  • 还没运气?您可能需要咨询NetBeans用户论坛或nbusers-Mailinglist(请保持友好,耐心并以其他人能够提供帮助的方式报告错误。)