当前位置: 首页 > 知识库问答 >
问题:

Scala 编译服务器 - VM 警告 [重复]

华凌
2023-03-14

我在一个项目中使用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

感谢这么快的解释1.8Java新功能!

但是如何解决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有< code>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

更新2

我从两个配置文件中删除了包含MaxPermSize的所有行。

但是这个错误警告一直出现(当<code>main()</code>正在运行,并且在终端上运行<code>sbt-version</code<时)。

有什么建议吗?

共有1个答案

怀德馨
2023-03-14

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

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

 类似资料:
  • 问题内容: 我有一个tomcat作为我的网络服务器,它会根据给定的错误自动停止- 我需要弄清楚实际发生了什么?那警告是什么意思? 问题答案: 没有足够的内存让Java Runtime Environment继续运行。 本机内存分配(malloc)无法分配xxxxx字节来提交保留的内存。 可能的原因: 1.系统没有物理RAM或交换空间 2.在32位模式下,达到了进程大小限制 可能的解决方案:1 .减

  • 我在运行cassandra时出现以下错误。 $ sudo服务cassandra start $卡桑德拉 JavaHotSpot(TM)服务器VM警告:由于权限被拒绝,无法打开文件 /var/log/cassandra/gc.log。

  • 条款48: 重视编译器警告 很多程序员日常总是不理睬编译器警告。毕竟,如果问题很严重,就会是个错误,不是吗?这种想法在其它语言中相对来说没什么害处,但在C++中,可以肯定的一点是,编译器的设计者肯定比你更清楚到底发生了什么。例如,大家可能都犯过这个错误: class B { public: virtual void f() const; }; class D: public B { public:

  • 忽略编译器警告 格式 #pragma clang push #pragma clang diagnostic ignored "错误类型" // 存在警告的代码 #pragma clang pop > 1.在需要忽略的警告处右键 -- Reveal in Log 2.会给出警告的详细信息,其中包括警告的类型 3.高亮选中的便是这个警告的类型 4.在警告代码处增加如下代码 Command

  • 问题内容: 使用Maven构建Java 8项目时: 我收到此消息: Java HotSpot(TM)64位服务器VM警告:忽略选项MaxPermSize = 128m;在8.0中删除了支持 如何删除此消息? 问题答案: JDK 8兼容性指南指出,在Java 8中,命令行标志已被删除。原因是永久代已从热点堆中删除,并已移至本机内存。因此,为了删除此消息,请编辑MAVEN_OPTS环境用户变量: Ja

  • 此ProductDAO类返回用户的产品列表,但Netbeans中的编译器显示“Missing return statement”。有进展吗?