Problema com Java ao tentar executar pycharm-community-4.5

9

Acabei de instalar o pycharm-community-4.5 no meu Ubuntu 14.04 (64 bits). Após a instalação, executei o comando /opt/pycharm-community-4.5/bin$ ./pycharm.shpara executar pycharm, mas o terminal me mostrou alguns erros como a seguir:

Unrecognized VM option MaxPermSize=350m
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Aqui está o resultado do meu java -version:

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Como faço para corrigir isso?

Abdullah Al Imran
fonte
Java, a raiz de todo mal.
Virusboy 15/05
:( nada a ver.
Abdullah Al Imran
O suporte ao MaxPermSize foi removido no Java 8.0. Mas não consigo encontrar a entrada. A entrada em pycharm.vmoptionsparece não estar funcionando. Eu baixei a versão mais recente do PyCharm e funciona no Ubuntu 15.04. sem mudança.
AB
Você tem um java na instalação do PyCharm? A mensagem de erro não se parece com Oracle Java ou OpenJDK.
AB
Edite sua pergunta e adicione a saída deecho "$PYCHARM_JDK"
AB

Respostas:

8

Abra o arquivo pycharm64.vmoptions

nano /opt/pycharm-community-4.5/bin/pycharm64.vmoptions

e adicione um #no início da linha

# -XX:MaxPermSize=350m

Abra o arquivo pycharm.vmoptions

nano /opt/pycharm-community-4.5/bin/pycharm.vmoptions

e adicione um #no início da linha

# -XX:MaxPermSize=250m

O suporte ao MaxPermSize foi removido no Java 8.0, mas a mensagem de erro

Unrecognized VM option MaxPermSize=350m
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

não se parece com o Oracle Java 8 ou OpenJDK 8.

O iniciador do PyCharm pycharm.shtenta encontrar o Java:

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): PYCHARM_JDK, ../jre, JDK_HOME, JAVA_HOME, "java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$PYCHARM_JDK" -a -x "$PYCHARM_JDK/bin/java" ]; then
  JDK="$PYCHARM_JDK"
elif [ -x "$IDE_HOME/jre/bin/java" ] && "$IDE_HOME/jre/bin/java" -version > /dev/null 2>&1 ; then
  JDK="$IDE_HOME/jre"
elif [ -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
  JDK="$JDK_HOME"
elif [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
  JDK="$JAVA_HOME"
else
  JAVA_BIN_PATH=`which java`
  if [ -n "$JAVA_BIN_PATH" ]; then
    if [ "$OS_TYPE" = "FreeBSD" -o "$OS_TYPE" = "MidnightBSD" ]; then
      JAVA_LOCATION=`JAVAVM_DRYRUN=yes java | "$GREP" '^JAVA_HOME' | "$CUT" -c11-`
      if [ -x "$JAVA_LOCATION/bin/java" ]; then
        JDK="$JAVA_LOCATION"
      fi
    elif [ "$OS_TYPE" = "SunOS" ]; then
      JAVA_LOCATION="/usr/jdk/latest"
      if [ -x "$JAVA_LOCATION/bin/java" ]; then
        JDK="$JAVA_LOCATION"
      fi
    elif [ "$OS_TYPE" = "Darwin" ]; then
      JAVA_LOCATION=`/usr/libexec/java_home`
      if [ -x "$JAVA_LOCATION/bin/java" ]; then
        JDK="$JAVA_LOCATION"
      fi
    fi

    if [ -z "$JDK" -a -x "$READLINK" -a -x "$XARGS" -a -x "$DIRNAME" ]; then
      JAVA_LOCATION=`"$READLINK" -f "$JAVA_BIN_PATH"`
      case "$JAVA_LOCATION" in
        */jre/bin/java)
          JAVA_LOCATION=`echo "$JAVA_LOCATION" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME"`
          if [ ! -d "$JAVA_LOCATION/bin" ]; then
            JAVA_LOCATION="$JAVA_LOCATION/jre"
          fi
          ;;
        *)
          JAVA_LOCATION=`echo "$JAVA_LOCATION" | "$XARGS" "$DIRNAME" | "$XARGS" "$DIRNAME"`
          ;;
      esac
      if [ -x "$JAVA_LOCATION/bin/java" ]; then
        JDK="$JAVA_LOCATION"
      fi
    fi
  fi
fi
  1. $PYCHARM_JDK
  2. $IDE_HOME/jre/bin/java
  3. $JDK_HOME
  4. $JAVA_HOME

Verifique se você está usando a versão Java que gostaria de usar.

AB
fonte
1

Olhe dentro da binpasta da pasta pycharm que você extraiu.

Existem arquivos chamados pycharm64.vmoptionse pycharm.vmoptions. Dentro deles, você pode excluir a linha com a opção culpada de MaxPermSize=350m.

Heinz Fiedler
fonte