2016-05-30 43 views
0

在Eclipse中,我爲我的JRE設置了-ea(啓用斷言)爲default VM argument。這使得使用斷言更加有用,我不想錯過它。如何覆蓋Eclipse中的默認JVM參數?

但是,有一些罕見的情況,我不想要-ea。有沒有辦法來覆蓋(刪除)默認VM參數,比如說,一個特定的運行配置?

具體而言,我想使用Maven exec:java運行配置運行JMH,但可用於任何類型運行配置的解決方案也不錯。

回答

2

您可以在Eclipse中創建新的JRE,而不需要-ea參數(但安裝路徑相同)。

然後,對於啓動配置,您可以指定要使用的JRE。

0

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 ...但是我從來沒有試過它:

https://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-with-memory-enhancements.html

+0

最好的方法是使用[toolchain](https://maven.apache.org/guides/mini/guide-using-toolchains.html),而不是屬性/配置文件組合。 – khmarbaise

+0

嗯,我沒有看到任何關於JVM參數的答案。謹慎闡述? – rolve

+0

是的,正如我寫的,這個例子使用不同的JDK,通過您可以指定爲maven編譯器插件不同的值看到這個線程:http://stackoverflow.com/questions/27035389/how-to-set-xxpermsize -64m-in-maven-compiler-plugin但是,正如你可以看到它依賴於MVNand編譯器版本,所以無法工作..如果你搜索周圍你會發現也爲你做這個的插件,或者你可以運行一個程序與執行安裝導出MAVEN_OPTS值的執行插件,我只是想給你一些想法如何使它.. – ivoruJavaBoy