2014-03-25 54 views
97

當用Maven構建一個Java 8項目...的HotSpot的Java(TM)64位服務器VM警告:忽略選項MaxPermSize參數

mvn clean package 

...我得到這個消息:

Java HotSpot(TM)64位服務器VM警告:忽略選項MaxPermSize = 128m;支持在8.0中刪除

如何刪除此消息?

+2

見HTT p://bugs.java.com/bugdatabase/view_bug.do?bug_id = 6964458完整說明 – Dag

+1

您可能已經有一個IDEA實例在運行。 [1]:http://stackoverflow.com/a/20553943/3741698 –

+0

刪除'〜\ .gradle'目錄(@home)並重新啓動'AS'。請參閱:http://stackoverflow.com/a/27516679/483588 –

回答

123

Compatibility Guide for JDK 8表示在Java 8中,命令行標誌MaxPermSize已被刪除。原因是永久代從熱點堆中被移除並被轉移到本地內存。 因此,爲了除去該消息 編輯MAVEN_OPTS環境用戶變量:

爪哇7

MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m 

爪哇8

MAVEN_OPTS -Xmx512m 
+11

而原因是整個PermGen空間已被刪除在甲骨文的JRE 8,AFAIK。 – Puce

+1

如果有人不知道如何做到這一點 - 'sudo gedit〜/ .profile',請在那裏添加該行的答案並保存該文件。 – gotqn

+0

我在〜/ .bashrc文件中設置了這個選項 – paka

15

的JDK 8的HotSpot JVM是現在使用本地內存來表示類元數據,並稱爲Metaspace。

永久代已被刪除。如果PermSize和MaxPermSize存在於命令行中,則會忽略它們併發出警告。

4

在JBoss的EAP 6.4,右鍵點擊下VM參數中的服務器,然後打開啓動配置,你會發現

{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m} 

它更新

{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m} 

這將解決你的問題。

2

-XX:MaxPermSize = size 設置最大永久生成空間大小(以字節爲單位)。此選項在JDK 8中已被棄用,並被-XX:MaxMetaspaceSize選項取代。

-XX:PermSize = size 設置分配給觸發垃圾回收的永久生成的空間(以字節爲單位)(如果已超過)。此選項在JDK 8中已被棄用,並被-XX:MetaspaceSize選項取代。

+5

我認爲這是被低估的,因爲它意味着你應該將'MaxPermGen'的先前使用與'MaxMetaSpaceSize'切換,這是誤導性的,因爲它們的角色實際上已經顛倒過來。在Java 8類元數據空間駐留在受限於32/64 MB的PermGen之前,'MaxPerGen'用於*增加它*之前。然而,從Java 8開始,PermGen不再是類,而且類的元數據空間是無限的,所以'MaxMetaspace'的大小實際上是用來減少它。欲瞭解更多信息,請參閱:http://stackoverflow.com/a/31463972/67824 –

0

與Java 8 在Linux上運行命令行MVN(3.3.3版)時,通過打開的Maven腳本/ $ MAVEN-HOME /斌/ MVN我得到了類似的消息,找到下面這行

MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 

默認$ MAVEN_PROJECTBASEDIR是您的主目錄。 所以你可以看兩個地方,首先是文件$ MAVEN_PROJECTBASEDIR/.mvn/jvm.config(如果存在的話)。其次查看可能設置環境變量MAVEN_OPTS的文件。候選文件是.bashrc,.bash_profile,.profile和它們包含的文件,例如/ etc/profile,/ etc/bash。在.bashrc

我所在

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" 

中的.bashrc在我的系統,將其更改爲

export MAVEN_OPTS="-Xmx512m" 

問題解決

-1

請解決這個問題,我們剛剛已經設置安裝JDK路徑

standalone.conf

文件,該文件在JBoss的\ Wildfly服務器的文件夾。爲了解決這個問題,我們做了以下步驟:

  1. 打開standlone.conf文件,該文件在JBoss_or_wildfly \ bin文件夾
  2. 在這個文件中找到#JAVA_HOME文本。
  3. 取出字符,並設置你的JDK的安裝路徑 JAVA_HOME = 「C:\ Program Files文件\的Java \ jdk1.8.0_65」 希望這將解決您的問題 感謝
+0

最初的問題是在一個Maven項目。它與JBoss無關。 – Boris

-1

對於Eclipse用戶...

單擊運行 - >運行配置 - >是 - >設置備用JRE 1.6或1.7

相關問題