狗剩百科

龙芯相关百科全书

用户工具

站点工具


programming_software_ide:intellij_idea

IntelliJ IDEA

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

龙芯OpenJDK稳定版只有8,13依然是预览版,而 JetBrains 全家桶从 2020.2 开始最低只支持 OpenJDK11。测试后发现 2019.3.5 版可以在龙芯OpenJDK8上很好地运行,而更新的版本即使声称支持 OpenJDK8 ,启动时依然会发生各种运行时错误。

OpenJDK8 可以使用的最新 IntelliJ IDEA 版本为 2019.3.5 ,运行更高的版本需要安装 OpenJDK13 预览版。

安装Java

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

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

Fedora28

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

sudo dnf install java

OpenJDK13 则需要手动配置,二进制需要从龙芯开源社区的Java页面下载。下面的命令示例中,安装目录请自行更改。

  • 安装 OpenJDK13
sudo tar zxf OpenJDK13.tar.gz -C /opt
  • 配置环境变量
export JAVA_HOME=/opt/jdk-13-openjdk/bin/
export PATH=${PATH}:JAVA_HOME
  • 设置alternatives
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
  • 切换java版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
  • 查看版本信息
java -version
javac -version

Loongnix

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

从官网获取安装包

最新的安装包可以在 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

这个部分只适用于 2019 等老版本,最新版本不需要。

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 的版本直接升级到最新版。由于用自编译的 mips64el 替换了原来 x86_64 的 libpty.so ,在升级时会出现该文件校验错误的警告,忽略即可。

另外,不知道为何升级后 mips64el 目录下的 libpty.so 是错误的,而从官网直接下载的软件包并没有相关问题。只需要用正确的 libpty.so 替换即可。

programming_software_ide/intellij_idea.txt · 最后更改: 2021/03/01 00:35 由 weilinfox