zoukankan      html  css  js  c++  java
  • Eclipse出错不断,注册表不能乱改

    Eclipse打不开,始终报错,还能不能开心的敲代码了???

    首先说下造成我这个愚蠢错误的起源:电脑是win10系统,本来是可以正常使用的。某一天,我正在使用python,打开命令提示符,看见开头是中文(现在成了下面这个样了),出于强迫症。我就上网去找处理方法。在知乎某篇回答,我找到注册表,修改了计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListS-1-5-21-34987087-1338907778-1883452047-1001的中文名。接着重启电脑,结果发现桌面上以前的偏好设置完全不见了,进入命令提示符下,确实变成了英文,但并不是我设置的那个,而是system32.大失所望,于是我又进入注册表把ProfileListPath的中文改回来了(下面还多了个文件)。结果就酿成了现在的错误。

    修改的注册表位置:

    修改后运行命令界面变成这样了:

    好了,当我打开Eclipse时,错误接踵而至。

    出现上图错误:An error has occurred.See the log file E:Eclipse Workspace.metadata.log。根据提示我找到Eclipse工作空间的.log文件。

    用记事本打开.log文件如下:

    !SESSION 2018-11-02 08:30:30.122 -----------------------------------------------

    eclipse.buildId=4.4.2.M20150204-1700

    java.version=10.0.1

    java.vendor=Oracle Corporation

    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN

    Framework arguments:  -product org.eclipse.epp.package.jee.product

    Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

    !ENTRY org.eclipse.osgi 4 0 2018-11-02 08:30:43.929

    !MESSAGE Application error

    !STACK 1

    java.lang.NoClassDefFoundError: org/w3c/dom/stylesheets/StyleSheet

             at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager.getCSSSWTEngine(ThemeEngineManager.java:41)

             at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager.getEngineForDisplay(ThemeEngineManager.java:30)

             at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createThemeEngine(PartRenderingEngine.java:1428)

             at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.initializeStyling(PartRenderingEngine.java:1281)

             at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1036)

             at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

             at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)

             at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)

             at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)

             at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

             at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)

             at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)

             at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)

             at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

             at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)

             at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)

             at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)

             at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)

             at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

             at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

             at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

             at java.base/java.lang.reflect.Method.invoke(Unknown Source)

             at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)

             at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)

             at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

             at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

    Caused by: java.lang.ClassNotFoundException: org.w3c.dom.stylesheets.StyleSheet cannot be found by org.eclipse.e4.ui.css.core_0.10.100.v20140424-2042

             at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)

             at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)

             at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)

             at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)

             at java.base/java.lang.ClassLoader.loadClass(Unknown Source)

             ... 26 more

    接下来,我在Eclipse官网论坛里看到一个留言:

    Trimmed javax.xml MANIFEST.MF

    With some further discussion on jdk9-dev: the problems when using the app class loader seem to come from the situation that part of the org.w3c class files come from the javax.xml bundle.

    So, I did a small experiment: remove all .class files from the javax.xml bundle, but leave the exports information. My assumption here was that that should then "export" the JDK classes.

    That didn't quite work: eclipse failed to start because org.w3c.dom.css was unavailable. Adding those classes to the bundle however worked to the effect that Eclipse starts up and seems to be usable.

    So, workaround instructions:

    $ cd /some/tmp/directory

    $ jar xf $ECLIPSE_HOME/plugins/javax.xml_1.3.4.v201005080400.jar

    $ rm $ECLIPSE_HOME/plugins/javax.xml_1.3.4.v201005080400.jar

    $ jar cvmf whereever/you/downloaded/to/MANIFEST.MF-trimmed $ECLIPSE_HOME/plugins/javax.xml_1.3.4.v201005080400.jar about* license/ org/apache/ plugin.properties org/w3c/dom/css

    $ # modify $ECLIPSE_HOME/eclipse.ini and add -Dorg.osgi.framework.bundle.parent=app

    而此时的我一脸懵逼。

    接下来呀,我换了个1.8.0的Java(较低版本),以前是10.0.1。Eclispe是成功打开了。可惜当弹出提示Java有更新时,我执行会出现如下应用程序错误。

     

    点详细信息如下:

     代码复制出来是这个样子:

    java.lang.IllegalArgumentException: Invalid characters in hostname

             at java.net.HostPortrange.toLowerCase(Unknown Source)

             at java.net.HostPortrange.<init>(Unknown Source)

             at java.net.URLPermission$Authority.<init>(Unknown Source)

             at java.net.URLPermission.parseURI(Unknown Source)

             at java.net.URLPermission.init(Unknown Source)

             at java.net.URLPermission.<init>(Unknown Source)

             at sun.net.www.protocol.http.HttpURLConnection.URLtoSocketPermission(Unknown Source)

             at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)

             at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source)

             at java.net.URLConnection.getContentType(Unknown Source)

             at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.isSupportedINSFile(Unknown Source)

             at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.retrieveContentOfPACFile(Unknown Source)

             at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.contructLegacyPACScript_16(Unknown Source)

             at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.init(Unknown Source)

             at com.sun.deploy.net.proxy.SunAutoProxyHandler.init(Unknown Source)

             at com.sun.deploy.net.proxy.DynamicProxyManager.reset(Unknown Source)

             at com.sun.deploy.net.proxy.DeployProxySelector.reset(Unknown Source)

             at com.sun.javaws.Main.initializeExecutionEnvironment(Unknown Source)

             at com.sun.javaws.Main.continueInSecureThread(Unknown Source)

             at com.sun.javaws.Main.access$000(Unknown Source)

             at com.sun.javaws.Main$1.run(Unknown Source)

             at java.lang.Thread.run(Unknown Source)

    而且当我导入以前的Java工程文件后,运行程序时出现如下错误:

    控制台Console错误提示如下:

    Exception in thread "main" java.lang.UnsupportedClassVersionError: com/array/Demo1 has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

    不过惊喜的是,我新建一个Java工程文件,运行了一个Demo,发现可以运行了。我把两个工程文件对比了一下,发现两个工程JRE System Library不同:

    https://www.cnblogs.com/loober/p/9902089.html

  • 相关阅读:
    数据结构——栈与队列操作(用栈模拟队列)
    数据结构——链队列的基本算法
    数据结构——循环队列(动态分配空间)基本运算
    数据结构——顺序栈(动态分配空间)的基本操作
    D3画完整柱状图(带坐标轴、标签)
    D3学习之坐标系绘制
    d3实现折线图
    D3学习之画布制作
    网址——几个有用的
    使用.csv文件
  • 原文地址:https://www.cnblogs.com/loober/p/9902089.html
Copyright © 2011-2022 走看看