运行 Zeppelin 时无法识别 VM 选项“MaxPermSize=512m”

sbb*_*bbs 48 java ubuntu java-8 java-9 apache-zeppelin

当我尝试通过以下任一方式运行 Zeppelin 时

bin/zeppelin.sh
Run Code Online (Sandbox Code Playgroud)

或者

bin/zeppelin-deamon.sh start
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息。

Unrecognized VM option 'MaxPermSize=512m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)

我的系统(Ubuntu 16.04)上安装了 Java 9。

$ java -version                         
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)
Run Code Online (Sandbox Code Playgroud)

小智 52

如果有人仍然通过此重命名MaxPermSizeMaxMetaspaceSize解决我的问题,请以前使用 jdk11 从 gradle7.2 迁移到 gradle8,现在使用 jdk17

  • 这应该是公认的答案。 (2认同)
  • @Gorbles 旧选项已被取代。这并不意味着新产品可以直接替代它。我什至提到了为什么 - 有人设置 MaxPermSize 来*增加*它(我相信这是设置它的最流行的原因)不需要设置 MaxMetaspaceSize。 (2认同)

sbb*_*bbs 26

Java 9似乎MaxPermSize不再支持 VM 选项。也许他们更改了参数名称或其他内容。由于我没有特别的理由坚持使用 Java 9,所以我没有进一步深入研究这个问题,而是按如下方式安装了 Java 8:

sudo apt install openjdk-8-jdk
Run Code Online (Sandbox Code Playgroud)

并使其成为默认的Java环境

sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题。

  • “MaxPermSize”已在 Java 8 中删除。您应该会在该版本中收到相同的警告。 (15认同)
  • 由于“错误”参数而降级始终是最糟糕的主意。 (4认同)

Mau*_*zey 7

检查你的gradle.properties

我里面有这行

org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

删除它,一切都像魅力一样:)


小智 6

从 OpenJDK17 开始,这些 java 选项-XX:MaxPermSize=256m已被删除,使用它们会导致错误。您需要删除-XX:MaxPermSize=512min java 选项并替换为-XX:MaxMetaspaceSize=512m.

请参阅:删除的 Java 选项文档