python - 只能手动调用pycharm.sh启动Pycharm
问题描述
我不知道为什么,但是每次我在转到 Tools->Create Desktop Entry 后尝试启动 PyCharm 时,我都会得到以下信息
现在,正如我在一些类似的问题中看到的那样,我已将 JAVA_HOME 和 PYCHARM_JDK 添加到我的 .zshrc 文件中(我使用 oh-my-zsh)
# This is for Pycharm
export JAVA_HOME="/home/internetmosquito/.sdkman/candidates/java/current"
export JDK_HOME="/home/internetmosquito/.sdkman/candidates/java/current"
export PYCHARM_JDK="/home/internetmosquito/.sdkman/candidates/java/current"
顺便说一句,如果你想知道 .sdkman 是什么,我用它来处理不同的 Java 版本,如果你检查它指向什么,它是一个有效的 Java 安装
internetmosquito@internetmosquito-PE72-7RD ~ ls -ltra /home/internetmosquito/.sdkman/candidates/java
total 16
lrwxrwxrwx 1 internetmosquito internetmosquito 11 feb 10 20:24 current -> 11.0.2-open
drwxr-xr-x 9 internetmosquito internetmosquito 4096 feb 10 20:24 8u152-zulu
drwxr-xr-x 4 internetmosquito internetmosquito 4096 feb 10 20:24 .
drwxr-xr-x 8 internetmosquito internetmosquito 4096 feb 10 20:24 11.0.2-open
drwxr-xr-x 5 internetmosquito internetmosquito 4096 feb 10 20:24 ..
internetmosquito@internetmosquito-PE72-7RD ~ ls -ltra /home/internetmosquito/.sdkman/candidates/java/11.0.2-open
total 36
drwxr-xr-x 4 internetmosquito internetmosquito 4096 feb 10 20:24 ..
drwxr-xr-x 3 internetmosquito internetmosquito 4096 feb 10 20:24 include
drwxr-xr-x 2 internetmosquito internetmosquito 4096 feb 10 20:24 bin
drwxr-xr-x 6 internetmosquito internetmosquito 4096 feb 10 20:24 lib
-rw-r--r-- 1 internetmosquito internetmosquito 1214 feb 10 20:24 release
drwxr-xr-x 2 internetmosquito internetmosquito 4096 feb 10 20:24 jmods
drwxr-xr-x 72 internetmosquito internetmosquito 4096 feb 10 20:24 legal
drwxr-xr-x 8 internetmosquito internetmosquito 4096 feb 10 20:24 .
drwxr-xr-x 4 internetmosquito internetmosquito 4096 feb 10 20:24 conf
因此,如果我尝试回显 Pycharm 正在寻找的任何这些变量,我会得到合法的输出......
internetmosquito@internetmosquito-PE72-7RD ~ echo $JAVA_HOME
/home/internetmosquito/.sdkman/candidates/java/current
internetmosquito@internetmosquito-PE72-7RD ~ echo $JDK_HOME
/home/internetmosquito/.sdkman/candidates/java/current
internetmosquito@internetmosquito-PE72-7RD ~ echo $PYCHARM_JDK
/home/internetmosquito/.sdkman/candidates/java/current
显然,java 工作正常
✘ internetmosquito@internetmosquito-PE72-7RD ~/Downloads/pycharm-2019.1/bin java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
有趣的是,如果我在终端中手动运行 pycharm.sh,一切正常......
internetmosquito@internetmosquito-PE72-7RD ~/Downloads/pycharm-2019.1/bin ./pycharm.sh
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil to field sun.awt.X11.XToolkit.awtAppClassName
WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2021-02-14 21:47:41,590 [ 1332] WARN - llij.ide.plugins.PluginManager - Plugin "Markdown support" is incompatible (until build 173.SNAPSHOT < PY-193.7288.30)
2021-02-14 21:47:41,986 [ 1728] WARN - llij.ide.plugins.PluginManager - Plugin "Markdown support" is incompatible (until build 173.SNAPSHOT < PY-193.7288.30)
2021-02-14 21:47:42,469 [ 2211] WARN - com.intellij.ide.ui.LafManager - List.rowHeight = 0 in Darcula; it may lead to performance degradation
2021-02-14 21:47:42,473 [ 2215] WARN - com.intellij.ide.ui.LafManager - Table.rowHeight = 0 in Darcula; it may lead to performance degradation
2021-02-14 21:47:42,473 [ 2215] WARN - com.intellij.ide.ui.LafManager - Tree.rowHeight = 0 in Darcula; it may lead to performance degradation
2021-02-14 21:47:42,535 [ 2277] WARN - s.impl.EditorColorsManagerImpl - Cannot find scheme: VibrantInk from plugins: com.intellij.database
所以......我的看法是,每当我从桌面条目运行它时,由于某种原因它根本没有得到我的环境变量?任何指针?不确定这是否与 sdkman 有关,但我过去曾与它共存而没有问题。
解决方案
在尝试了几个选项后,我添加了
export JAVA_HOME="/home/internetmosquito/.sdkman/candidates/java/current"
export JDK_HOME="/home/internetmosquito/.sdkman/candidates/java/current"
export PYCHARM_JDK="/home/internetmosquito/.sdkman/candidates/java/current"
到 /etc/environment ,它最终奏效了。我会稍微改进一下,因为基本上意味着如果我卸载 sdkman 我将无法重新开始,但现在就足够了