编程语言
首页 > 编程语言> > java – Scala编译服务器 – VM警告

java – Scala编译服务器 – VM警告

作者:互联网

参见英文答案 > PermGen elimination in JDK 8                                    6个
我在一个项目中使用java scala(与sbt).

语言信息:

nazar@lelyak-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@lelyak-desktop:~⟫ scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL

当我运行任何main()时,我收到了奇怪的警告提示:

我无法弄清楚这种行为.

更新:

我检查了sbt选项它有相同的行为:

nazar@lelyak-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).

有什么建议?

解决方法:

PermGen管理在Java 8中发生了变化.IIRC,它直接在OS内存中管理.因此,在此之前使用的限制和自定义将不再可用.特别是,MaxPermSize不再具有任何意义.我想intellij在运行sbt应用程序时默认有这个选项.

您可以在此处找到有关Java 8更改的更多信息:http://openjdk.java.net/projects/jdk8/milestones

标签:java,scala,vm-implementation
来源: https://codeday.me/bug/20190708/1405183.html