如何覆盖 Eclipse 中的默认 JVM 参数?
How to override the default JVM arguments in Eclipse?
在 Eclipse 中,我已将 -ea
(启用断言)设置为我的 JRE 的 default VM argument。这使得使用断言变得更加有用,我不想错过它。
然而,有一些罕见的情况我不想 -ea
。有没有办法覆盖(删除)默认的 VM 参数,比方说,特定的 运行 配置?
具体来说,我想 运行 JMH 使用 Maven exec:java
运行 配置,但是适用于任何类型 运行 配置的解决方案也不错
您可以在 Eclipse 中创建新的 JRE,无需 -ea
参数(但安装路径相同)。
然后对于启动配置,您可以指定要使用的 JRE。
Maven 配置文件怎么样?
下面的示例对不同的配置文件使用不同的 JDK:
<build>
<plugins>
<!-- we want JDK 1.6 source and binary compatiblility -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- ... -->
<!-- we want sources to be processed by a specific 1.6 javac -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_1_6_HOME}/bin/javac</executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
</build>
如果您的开发人员只是在他们的 settings.xml
中添加(并自定义)以下行,您的 pom 将独立于平台:
<settings>
[...]
<profiles>
[...]
<profile>
<id>compiler</id>
<properties>
<JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
<JAVA_1_6_HOME>C:\Program Files\Java\j2sdk1.6.0_18</JAVA_1_6_HOME>
</properties>
</profile>
</profiles>
[...]
<activeProfiles>
<activeProfile>compiler</activeProfile>
</activeProfiles>
</settings>
下面引用 Maven 传递给编译器插件 JVM args...但我从未尝试过:
在 Eclipse 中,我已将 -ea
(启用断言)设置为我的 JRE 的 default VM argument。这使得使用断言变得更加有用,我不想错过它。
然而,有一些罕见的情况我不想 -ea
。有没有办法覆盖(删除)默认的 VM 参数,比方说,特定的 运行 配置?
具体来说,我想 运行 JMH 使用 Maven exec:java
运行 配置,但是适用于任何类型 运行 配置的解决方案也不错
您可以在 Eclipse 中创建新的 JRE,无需 -ea
参数(但安装路径相同)。
然后对于启动配置,您可以指定要使用的 JRE。
Maven 配置文件怎么样?
下面的示例对不同的配置文件使用不同的 JDK:
<build>
<plugins>
<!-- we want JDK 1.6 source and binary compatiblility -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- ... -->
<!-- we want sources to be processed by a specific 1.6 javac -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_1_6_HOME}/bin/javac</executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
</build>
如果您的开发人员只是在他们的 settings.xml
中添加(并自定义)以下行,您的 pom 将独立于平台:
<settings>
[...]
<profiles>
[...]
<profile>
<id>compiler</id>
<properties>
<JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
<JAVA_1_6_HOME>C:\Program Files\Java\j2sdk1.6.0_18</JAVA_1_6_HOME>
</properties>
</profile>
</profiles>
[...]
<activeProfiles>
<activeProfile>compiler</activeProfile>
</activeProfiles>
</settings>
下面引用 Maven 传递给编译器插件 JVM args...但我从未尝试过: