我正在使用 java + scala (使用 sbt )在一个项目。
语言信息:
nazar@desktop:~⟫ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
nazar@desktop:~⟫ scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL
当我运行任何main()
时,我收到一个奇怪的警告提示:
我无法弄清楚这种行为。
更新
我检查了sbt
选项,它具有相同的行为:
nazar@desktop:~⟫ sbt -version
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
感谢Java 1.8的快速解释新功能!
但如何解决MaxPermSise
警告的发生?
这里是idea.vmoptions
的内容:
-server
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dawt.useSystemAAFontSettings=lcd
Eclipse有eclipse.ini
:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20130807-1835
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
/usr/lib/jvm/java-8-oracle/bin/java
-/home/nazar/optional/java/jdk1.8.0/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx1024m
-Dorg.eclipse.swt.browser.IEVersion=10001
UPDATE2
我从两个配置文件中删除了包含MaxPermSize
。
但是这个错误警告会继续出现(当main()
正在运行时,并在终端上运行sbt -version
)。
有什么建议吗?
答案 0 :(得分:1)
PermGen管理在Java 8中发生了变化.IIRC,它直接在OS内存中管理。因此,在此之前使用的限制和自定义将不再可用。特别是,MaxPermSize不再具有任何意义。我想intellij在运行sbt应用程序时默认有这个选项。
您可以在此处找到有关Java 8更改的更多信息:http://openjdk.java.net/projects/jdk8/milestones