【发布时间】:2012-10-16 13:33:34
【问题描述】:
我只想在我的测试文件夹中运行一个 .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 中右键单击并点击“运行文件”:
main\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 专业人士,我大部分时间都在谷歌上搜索过,但我找不到解决方案。 我也不明白为什么它不起作用。我试图从我的 默认包,但是ofc是不可能的......
请帮忙? :) 谢谢
【问题讨论】:
-
默认的 netbeans 行为是从测试目录中的源代码执行 JUnit 测试。不过,这看起来像一个 Maven 项目,所以不确定它的预期。我的猜测是默认情况下它是相似的。这种设置还有一个问题,在同一个包中的类路径中有两个不同的类,同名。此外,它们都在默认包中,这不是一件好事,因为它们永远不会被其他类导入。
-
谢谢,我做了一个不好的例子,在我的项目中,一个是调用 MainTest,另一个是 MainSrc。为了简单起见,我只是在这里重命名了它们,我更改了示例。这是一个 maven 项目,但我搜索了一下,似乎很多用户在运行“运行文件”(maven:exec)时没有问题。
标签: java testing maven netbeans exec