我最近安装了 Ubuntu 11.04,并从软件中心下载了“Sweet Home 3D”程序。它已安装,当我搜索它时,它会显示为应用程序之一,但我根本无法启动它。有人知道我该怎么做吗?或者这是否是一个已知问题?
我的 ATI 显卡使用的是Dell Studio 15 1558 laptop
和fglrx driver
。但我感觉这个问题与硬件或驱动程序无关。
编辑:这是我在终端中输入“sweethome3d”时得到的结果:
zeiger@ubuntu:~$ sweethome3d
[warning] /usr/bin/sweethome3d: Unable to locate /usr/lib/jvm/java-6-sun/jre/lib/javaws.jar in /usr/share/java
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jnlp/UnavailableServiceException
Caused by: java.lang.ClassNotFoundException: javax.jnlp.UnavailableServiceException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: com.eteks.sweethome3d.SweetHome3D. Program will exit.
zeiger@ubuntu:~$
我使用 Ubuntu 软件中心安装了 SweetHome3d。
答案1
从软件中心安装 sun-java6-bin。
我安装了 Sweet Home。当我删除 sun-java 时,SH 无法启动。当我重新安装它时,SH 可以启动。
答案2
问题似乎是位于 /usr/share/sweethome3d/sweethome3d.sh 的启动脚本在“/usr/lib/jvm/java-6-sun”的硬编码路径上寻找安装在的 jre。
要解决这个问题:
在 Ubuntu 上,打开终端并运行:
sudo gedit /usr/share/sweethome3d/sweethome3d.sh
更改此行:
find_jars /usr/lib/jvm/java-6-sun/jre/lib/javaws.jar
到
find_jars $(readlink -f /usr/bin/java | sed "s:bin/java::")/lib/javaws.jar- 保存脚本。
- 尝试运行该应用程序!
答案3
解决:
- 下载jre-6u27-linux-i586.bin并安装。
- 以 root 身份复制
~/Downloads/jre1.6.0_27/lib/javaws.jar
到/usr/lib/jvm/default-java/jre/lib
。 - 以 root 身份创建一个链接
ln -s default-java java-6-sun
。 - 跑步
sweethome3d
。
至少对我来说它是有效的。
答案4
我认为这是由于SweetHome3D,它直接查找 Sun java 文件。
我把javaws.jar
另一个包中的文件 放入/usr/lib/jvm/java-6-sun/jre/lib/javaws.jar
其中,问题似乎解决了,SweetHome3D已开始。