SmartGit“Unsupported system classloader”启动错误解决

12/02/2016

好久一段时间不用SmartGit,上一次使用应该还是在Ubuntu 14.04上(之后IntelliJ IDEA和命令行几乎包揽了日常Git工作),这次Kaijia重新在Ubuntu 16.04系统上安装SmartGit时却遇到了无法启动的窘境。按照往常安装顺序将安装包解压运行之后,Unity启动栏上出现了SmartGit的图标,但之后立即消失了,并且没有弹出载入界面。

Kaijia在命令行中运行了bin/smartgit.sh文件,获得了以下提示:

Unsupported system classloader jdk.internal.loader.ClassLoaders$AppClassLoader@16c0663d

不支持的系统类载入器 jdk.internal.loader.ClassLoaders$AppClassLoader@16c0663d

搜索了一下Syntevo的支持论坛,Kaijia找到了一个类似的错误,员工解答是当时SmartGit只支持Java 8(也就是OpenJDK 1.8),不支持Java 9(OpenJDK 1.9),所以会出现无法载入Java Classloader报错的情况。所以简单的解决方法就是安装Java 8(OpenJDK 1.8):

然而这样仍然不能解决问题,在Ubuntu 16.04中,Java 9(OpenJDK 1.9)已经是default-jdk默认的Java版本,除非卸载Java 9单安装Java 8后,SmartGit仍会优先使用无效的Java 9类载入器。因此还需修改SmartGit的配置设定使用的Java版本,编辑SmartGit文件夹下的bin/smartgit.vmoptions文件,增加一行:

保存后再次运行SmartGit即可正常载入了。