1

有没有办法设置用于由 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 不会使用在 Global Execution Options 字段中设置的这些 JVM 系统属性。

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

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

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

4

1 回答 1

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}
于 2013-09-10T15:38:57.030 回答