Java NetBeans—为从NetBeans启动的每个JVM设置系统属性

Java NetBeans—为从NetBeans启动的每个JVM设置系统属性,java,netbeans,log4j,Java,Netbeans,Log4j,是否有一种方法可以设置系统属性,用于在Win7上由NetBeans NB 7.3.1启动的每个JVM 在我所有的maven项目中,我都使用Log4j,它需要一个Log4j.properties文件,通过系统属性-Dlog4j.configuration=file:/c:/Log4j/Log4j.properties指向该文件 我可以为Maven设置全局执行选项:工具>选项>Java>Maven>全局执行选项。但是,当我在NetBeans中运行特定的JUnit测试类时,如果没有Maven,NetB

是否有一种方法可以设置系统属性,用于在Win7上由NetBeans NB 7.3.1启动的每个JVM

在我所有的maven项目中,我都使用Log4j,它需要一个Log4j.properties文件,通过系统属性-Dlog4j.configuration=file:/c:/Log4j/Log4j.properties指向该文件

我可以为Maven设置全局执行选项:工具>选项>Java>Maven>全局执行选项。但是,当我在NetBeans中运行特定的JUnit测试类时,如果没有Maven,NetBeans将不会使用在全局执行选项字段中设置的这些JVM系统属性

同样的问题是,在NetBeans中运行Maven模块中的主类时。要设置JVM系统属性,可以设置项目属性:“主类”和“VM选项”。但这些项目属性仅在从maven模块的上下文菜单使用“Run”命令时由NetBeans使用。不幸的是,此菜单项没有快捷键normaly Shift-F6

我通过设置系统变量JAVA_TOOL_OPTIONS=-Dlog4j.configuration=file:/c:/log4j/log4j.properties解决了这个问题

编辑 对于我遇到的同一个问题,有人问了一个问题:在我的例子中,这个问题是由我在文件>项目属性>构建>编译>保存时编译的选项引起的。在这种情况下,NetBeans似乎不使用Maven。有关CoS的更多信息:

在nbproject文件夹中有一个名为project.properties的文件。在这个文件中,有很多配置是GUI菜单中没有的。我不知道到底应该放什么来实现您想要的,但我在我的一个NetBeans项目配置中发现了这一点:

# Space-separated list of JVM arguments used when running the project
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
# or test-sys-prop.name=value to set system properties for unit tests):
run.jvmargs=
run.test.classpath=\
    ${javac.test.classpath}:\
    ${build.test.classes.dir}

谢谢你的回答。我找不到nbpoject文件夹。我发现,使用NetBeans创建标准Java应用程序时,此文件夹可用。当使用Maven创建Java应用程序时,没有可用的nbproject文件夹,因此没有project.properties文件。或者是在另一个文件夹中?我使用自己编写的ant脚本。并更改我提到的配置文件中NetBeans ant脚本的名称。我创建了一个maven项目,但其中没有NetBeans配置。对于Maven项目,NetBeans似乎只依赖于Maven。也许这会有所帮助:我发现在“项目属性”窗口中,可以设置一些用于执行测试文件的执行参数:文件>项目属性>操作>操作>测试文件。然后,您可以在字段集属性中键入类似以下内容:exec.args=-Dlog4j.configuration=file:/c:/log4j/log4j.Properties。但是,这是如此具体,我希望有一个字段来设置全局系统属性。奇怪的是,NetBeans在一些操作中使用了Maven全局执行选项(在我的问题中提到)。为什么不是全部?