我已成功在我的计算机上安装了 Oracle Java 64 位版本(已使用 进行检查java -version
)。后来我下载了 Eclipse Kepler 64 位,但当我启动它时,它不起作用,并弹出错误信息An error has occurred. See the log file /home/nandkumar/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1384713086093.log
因此我检查了日志文件,看到以下日志文件内容:
!SESSION Mon Nov 18 00:01:26 IST 2013 ------------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2013-11-18 00:01:26.132
!MESSAGE Exception launching the Eclipse Platform:
!STACK
java.lang.InternalError: internal error: SHA-1 not available.
at sun.security.provider.SecureRandom.init(SecureRandom.java:99)
at sun.security.provider.SecureRandom.<init>(SecureRandom.java:78)
at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:191)
at java.security.SecureRandom.<init>(SecureRandom.java:155)
at com.sun.crypto.provider.SunJCE.<clinit>(SunJCE.java:94)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
at sun.security.jca.ProviderList$3.get(ProviderList.java:147)
at sun.security.jca.ProviderList$3.get(ProviderList.java:142)
at java.util.AbstractList$Itr.next(AbstractList.java:358)
at java.security.SecureRandom.getPrngAlgorithm(SecureRandom.java:542)
at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:187)
at java.security.SecureRandom.<init>(SecureRandom.java:155)
at java.io.File$TempDirectory.<clinit>(File.java:1878)
at java.io.File.createTempFile(File.java:1987)
at org.eclipse.equinox.launcher.Main.canWrite(Main.java:1305)
at org.eclipse.equinox.launcher.Main.checkConfigurationLocation(Main.java:698)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
请帮忙。
答案1
答案2
您收到的错误只是因为您的 JDK(Java Devlopment Kit)缺少 JCE(Java Cryptography Env.)功能。我认为由于美国出口管制限制,一些国家只能获得这样的“残缺”JDK。您无法使用这样的 JDK 运行 Eclipse。您可以检查一件事...在您的 JDK 安装中,查找一个文件:
/java/jdk1.7.0_40/jre/lib/security
确保它有如下一行:
security.provider.1=sun.security.provider.Sun
这会将“Sun”设置为您的加密提供商。这通常是 Sun JDK 的默认设置,但您的 JDK 中可能已将其关闭。
然后检查输出
java
javac
javaws
如果显示错误,则需要通过以下方式再次安装 Java:此方法问题肯定出在 JDK 上,因此请根据您的 Ubuntu 系统架构从官方网站下载最新的 Oracle Java 来正确安装它,然后按照步骤重新安装 eclipse,并确保已完全删除以前安装的 eclipse。
我假设你已经在主目录中的下载文件夹中下载了 eclipse kepler,
cd Downloads
如果是 64 位,则 .gz 名称与 32 位不同
tar xvf eclipse-standard-kepler-R-linux-gtk-x86_64.tar.gz
sudo mv eclipse /opt
提供您的密码,并通过
sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse
现在只需制作 eclipse.desktop
sudo gedit /usr/share/applications/eclipse.desktop
并粘贴以下几行作为 eclipse 图标
[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE
Name[en]=eclipse.desktop
Eclipse Kepler 现在可以使用了。
答案3
发现了这个:
我在 AMD64 机器(Ubuntu 12.04)上遇到了同样的问题。并通过一种解决方法解决了它:
复制:/usr/lib/jni/libswt-*3740.so 中包含“3740”的文件到 ~/.swt/lib/linux/x86_64/
但是,请确保已安装以下软件包:libswt-gtk-3-java 和 libswt-gtk-3-jni。
sudo apt-get 安装 libswt-gtk-3-jni libswt-gtk-3-java
和
sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86_64/
如果你有一个 32 位系统: sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86/
答案4
** [ 解决方案 - 1. 错误的架构 - 2. ubuntu 上的 java] **