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

有没有办法设置系统属性,这些属性用于NetBeans启动的每个JVM(Win 7上的NB 7.3.1)?

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

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

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

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

编辑
我遇到了一个问题,我遇到了同样的问题: 如何在运行测试时使Netbeans使用特定的JVM参数? 在我的情况下,问题是由我在上面编译的选项编译引起的(文件>项目属性>构建>编译>编译保存)。 在这种情况下,似乎NetBeans不使用Maven。 有关CoS的更多信息: http : //wiki.netbeans.org/FaqCompileOnSave

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}