狗剩百科

龙芯相关百科全书

用户工具

站点工具


programming_software_ide:intellij_idea

IntelliJ IDEA

IntelliJ IDEA 是由 JetBrains 公司使用 Java 编程语言开发的 Java 及 JVM 相关语言的集成开发环境。龙芯公司基于 OpenJDK 自主研发的 MIPS 版本——龙芯 OpenJDK 发布后,大量 Java 开发的软件可以在龙芯上运行。

龙芯 OpenJDK 可以查看龙芯开源社区

龙芯仍在支持的 OpenJDK 版本有 8、11、13 和 17 ,其状态分别为 LTS、 LTS、 EA 和 LTS ,其中 13 只支持 mips64el 体系结构,尽管 JetBrains 全家桶从 2020.2 开始,才提出运行时依赖的 OpenJDK 版本 >= 11 的要求,但经测试后发现最高只有 2019.3.5 版本可以在 OpenJDK8 上很好地运行。

安装 OpenJDK

根据龙芯开源社区的发行注记,目前,基于OpenJDK 13的龙芯平台Java环境处于EA阶段,EA代表“提前获取”(Early Access),也就是说,EA 是软件即将发布的版本的预览版本。此版本中可能包含许多新功能和缺陷补丁,并且由于是预览版,也可能包含一些意外的问题。建议不要在生产环境中使用此预览版。

请不要试图直接复制粘贴本页的任何命令,你必须清楚自己在做什么并对自己运行的命令负责!

OpenJDK 8

OpenJDK8 直接从软件源中安装即可。如果想要手动安装,请从 下载页面 下载 tarball 并参考后面 OpenJDK11 的方法安装。

Loongnix1.0 下可以参考龙芯开源社区的JAVA安装说明

Fedora28 下可以直接从软件源中安装 OpenJDK8:

$ sudo dnf install java

Loongnix20 下可以直接从软件源中安装 OpenJDK8:

$ sudo apt-get install default-jdk

Debian 软件源中当前(2022/1/14)提供的 OpenJDK 版本为 11 和 17 ,但是均不能启动 Idea 。所以需要按照下面的方法手动安装龙芯提供的 OpenJDK11 或 13 。

OpenJDK 11

请从 下载页面 下载 OpenJDK11 的 tarball 。

下面的安装说明部分摘自龙芯开源社区的JAVA安装说明

解包

$ sudo tar zxf DOWNLOADED-JDK.tar.gz -C /opt

配置环境变量

$ export JAVA_HOME=/opt/DOWNLOADED-JDK-DIR-NAME
$ export PATH=${JAVA_HOME}/bin/:${PATH}

注意 JAVA_HOME 是 jdk 所在的目录,其目录中应包含 bin 目录。如果需要每次运行都默认使用该 jdk ,则根据你所使用的 shell 将上述两句命令添加在其配置中,如 bash 加在 ~/.bashrc 中、 zsh 加在 ~/.zshrc 中。

另外事实上只需要设置 JAVA_PATH , Idea 就可以在启动脚本中识别到该 jdk 。这是因为 Idea 的启动脚本在扫描可用的 jdk 时, JAVA_PATH 的优先级高于 PATH 。

设置 alternatives

这部分通常并不被需要,只在需要使用 alternatives 来切换版本的情况下供参考。另外这部分命令仅在 Fedara28 上测试过。

$ sudo alternatives --install /usr/bin/java java /opt/java-13-openjdk/bin/java 100 \
		--slave /usr/lib/jvm/jre jre /opt/java-13-openjdk \
		--slave /usr/bin/jjs jjs /opt/java-13-openjdk/bin/jjs \
		--slave /usr/bin/keytool keytool /opt/java-13-openjdk/bin/keytool \
		--slave /usr/bin/pack200 pack200 /opt/java-13-openjdk/bin/pack200 \
		--slave /usr/bin/rmid rmid /opt/java-13-openjdk/bin/rmid \
		--slave /usr/bin/rmiregistry rmiregistry /opt/java-13-openjdk/bin/rmiregistry \
		--slave /usr/bin/unpack200 unpack200 /opt/java-13-openjdk/bin/unpack200
$ sudo alternatives --install /usr/bin/javac javac /opt/java-13-openjdk/bin/javac 100 \
		--slave /usr/bin/jar jar /opt/java-13-openjdk/bin/jar \
		--slave /usr/bin/jarsigner jarsigner /opt/java-13-openjdk/bin/jarsigner \
		--slave /usr/bin/javadoc javadoc /opt/java-13-openjdk/bin/javadoc \
		--slave /usr/bin/javap javap /opt/java-13-openjdk/bin/javap \
		--slave /usr/bin/jcmd jcmd /opt/java-13-openjdk/jcmd \
		--slave /usr/bin/jconsole jconole /opt/java-13-openjdk/bin/jconsole \
		--slave /usr/bin/jdb jdb /opt/java-13-openjdk/bin/jdb \
		--slave /usr/bin/jdeps jdeps /opt/java-13-openjdk/bin/jdeps \
		--slave /usr/bin/jmap jmap /opt/java-13-openjdk/bin/jmap \
		--slave /usr/bin/jinfo jinfo /opt/java-13-openjdk/bin/jinfo \
		--slave /usr/bin/jps jps /opt/java-13-openjdk/bin/jps \
		--slave /usr/bin/jrunscript jrunscript /opt/java-13-openjdk/bin/jrunscript \
		--slave /usr/bin/jstack jstack /opt/java-13-openjdk/bin/jstack \
		--slave /usr/bin/jstat jstat /opt/java-13-openjdk/bin/jstat \
		--slave /usr/bin/jstatd jstatd /opt/java-13-openjdk/bin/jstatd \
		--slave /usr/bin/serialver serialver /opt/java-13-openjdk/bin/serialver \
		--slave /usr/lib/jvm/java java_sdk /opt/java-13-openjdk

之后可以使用 alternatives 切换 OpenJDK 版本:

sudo update-alternatives --config java
sudo update-alternatives --config javac

查看版本信息

如果设置了 PATH 则可以使用下面的命令检验 OpenJDK 版本:

$ java -version
$ javac -version

如果只设置了 JAVA_HOME :

$ ${JAVA_HOME}/bin/java -version
$ ${JAVA_HOME}/bin/javac -version

OpenJDK 13

OpenJDK 13 只支持 mips64el 体系结构。

请进入 下载页面 或直接点击 下载链接 下载 OpenJDK13 的 tarball 。

安装过程参考 OpenJDK 11 。

OpenJDK 17

请进入 下载页面 下载 OpenJDK17 的 tarball 。

安装过程参考 OpenJDK 11 。

注意 OpenJDK 17 的一些新特性不被支持,无法直接启动 idea ,但是可以作为开发使用。

获取 Idea

最新的安装包可以在 IntelliJ IDEA 主页获得,较老的安装包可以在“其他版本”下获得。如果没有 IntelliJ IDEA 正版许可证建议下载 Community Edition 。

从命令行安装

解压缩软件包:

$ tar xf ideaIC.tar.gz -C <安装目录>

运行:

$ ./<安装目录>/bin/idea.sh

老版本依照提示一步一步操作即可,建议禁用 Android Support ;最新版本应该可以直接进入到创建工程的界面。

关于兼容性问题

fsNotifier

fsNotifier 被用来检测文件变化,由于其以二进制形式发布,首次运行可以看到相关的错误信息弹窗。 JetBrains 官方也提供了相关解决办法

首先下载 fsNotifier 的源代码(可以逐个复制代码),运行下面的命令编译:

$ ./make.sh

复制二进制 fsnotifier-mips64 到 IntelliJ IDEA 软件的 bin 目录下(和自带的fsnotifier和fsnotifier64在同级目录),在软件菜单中依次选择 “Help→Edit Custom Properties” ,最后在打开的文本编辑器中保存下面的配置即可:

idea.filewatcher.executable.path = fsnotifier-mips64

pty4j-native

如果你使用 mips64el 体系结构,这个部分在最新版本不被需要,只适用于 2019 以及之前的版本;如果你使用 loongarch64 ,那么你需要解决相关的兼容性问题。如果不确定你的 Idea 是否有相关问题,请使用 Idea 打开一个工程,在下边的工具栏点击 Terminal ,如果能不能正常打开终端(正常应该能打开本地终端)则说明有问题。

pty4j-native 被用来从 IDE 中打开内嵌的终端,首次运行时打开 “Terminal” 窗口可以看到相关的错误信息。这是因为 2019 版只提供了 arm 、 ppc 和 x86 的 pty4j 二进制,我们需要自行获取 mips64el 的二进制。

首先克隆整个项目,指定 depth 加快克隆速度:

$ git clone --depth=1 https://github.com/JetBrains/pty4j.git

在 os/linux/mips64el 目录中可以看到已经预编译好的二进制,复制其到 lib/pty4j-native/linux/x86_64 中覆盖原有的二进制即可。

从旧版本升级

如果升级了 OpenJDK 到 13 ,那么可以将可以从兼容 OpenJDK8 的老版本直接升级到最新版,前面提到新版的 Idea 已经提供了 mips64el 的 libpty.so 。由于之前用自编译的 libpty.so 替换了 x86_64 的二进制,在升级的过程中会出现该文件校验错误的警告,忽略即可,这通常在事实上不会出现问题。

但如果你不幸发生了错误,如升级后不能使用 terminal 了,则你 mips64el 目录下的 libpty.so 可能是不能正常工作的,这可以从官网下载最新的软件包重新安装或只用新软件包对 libpty.so 进行替换即可。

programming_software_ide/intellij_idea.txt · 最后更改: 2022/01/27 08:57 由 weilinfox