![两个用 Java 编写的程序无法在 18.04 上安装或运行](https://linux22.com/image/905660/%E4%B8%A4%E4%B8%AA%E7%94%A8%20Java%20%E7%BC%96%E5%86%99%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E5%9C%A8%2018.04%20%E4%B8%8A%E5%AE%89%E8%A3%85%E6%88%96%E8%BF%90%E8%A1%8C.png)
我在 Ubuntu 上成功使用了两个程序好几年了 -金钱舞和PDF工作室 这两个程序都无法在我的电脑上安装或运行在 Ubuntu 18.04 下。我从开发人员那里得到的回答只是“嗯,它在这里可以运行”,这并没有给我太多帮助。
我对 Java 的底层原理了解不多,但我知道这些程序是用 Java 编写的。我曾尝试重新安装 Java,但没有成功,但我真的不明白到底发生了什么,我怀疑我只是重新安装了 Ubuntu 18.04 自带的默认设置。当我尝试按照说明重新安装时,它很快就陷入了我无法理解的困境,可能无法正确执行。Ubuntu 18.04 是去年 7 月的全新安装(不是升级版)。
纳税时间即将来临,我经营着一家小企业,因此必须在年底之前启动 Moneydance,它是我跟踪业务费用过程中不可或缺的一部分。
目前,Moneydance 是通过 .deb 下载和 Ubuntu 软件应用程序“安装”的,但是选择该程序(我使用的是 Gnome)没有任何反应。当我返回 Ubuntu 软件并搜索 Moneydance 时,它声称该程序未安装。[编辑] 在终端中输入命令 /bin/sh "/opt/Moneydance/Moneydance" 会导致光标卡住,直到 Cntrl-C 才会出现进一步的输出。我尝试重新安装 PDFStudio,但没有成功。他们的技术支持被难住了。
我有一些记录,我显然尝试安装 sun jre,如下所示:
sudo add-apt-repository http://archive.canonical.com/dists/lucid/partner/
Update the source list
sudo apt-get update
Now install sun java packages using the following commands
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts
Enter the following command and when prompted set the sun jre as the default.
sudo update-alternatives --config java
结果是一样的。
[编辑] 目前这是我安装的 Java 版本:
~$ java -version
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)
[编辑] 我尝试了这个,但没有效果:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority
Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101
auto mode
* 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101
manual mode
2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081
选择选项 2 转到 oracle Java 8 但结果没有变化。
[编辑] 安装 PDFStudio 出现以下错误:
sh ./PDFStudio_linux64.sh
Unpacking JRE ...
Starting Installer ...
sun.java2d.InvalidPipeException: Unsupported bit depth: 30
at
sun.java2d.x11.X11SurfaceData.getSurfaceType(X11SurfaceData.java:611)
at
sun.java2d.x11.X11SurfaceData.getSurfaceType(X11SurfaceData.java:516)
at
sun.awt.X11GraphicsConfig.getSurfaceType(X11GraphicsConfig.java:178)
at sun.java2d.xr.XRSurfaceData.createData(XRSurfaceData.java:235)
at
sun.java2d.xr.XRGraphicsConfig.创建SurfaceData(XRGraphicsConfig.java:45)
.... 以及同一列表中的许多其他人。
沿着这个兔子洞往下看,我发现 Nvidia 驱动程序和不支持的位深度 30 存在一些问题。(我说“一些问题”是因为我不明白其他任何事情,因为其余的讨论远远超出了我的工资等级。)显然这可能与Java 中的已知错误,但我不明白他们还在谈论什么。
升级到 Nvidia GT1030 显卡后,我遇到了一些不相关的问题,所以我降级回了之前系统中的旧版 Nvidia NVS 300 和 Nvidia 驱动程序 340。340 是此旧版显卡的最新驱动程序。任何方面都没有运气,仍然有这些 Java 问题。