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

时间:2013-09-10 15:10:45

标签: java netbeans log4j

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

在我所有的maven项目中,我使用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解决了这个问题。

修改
我遇到了一个问题,我遇到了同样的问题:How to make Netbeans use specific JVM parameters when running tests?在我的情况下,问题是由我在保存时编译的选项引起的(文件>项目属性>构建>编译>编译保存)。在这种情况下,似乎NetBeans不使用Maven。有关CoS的更多信息:http://wiki.netbeans.org/FaqCompileOnSave

1 个答案:

答案 0 :(得分:0)

project.properties文件夹中有一个名为nbproject的文件。在此文件中,您可以执行许多不在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}