Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
300 views
in Technique[技术] by (71.8m points)

Eclipse is not starting on Windows 7

Our company is making the move to Windows 7. After receiving the upgrade, Eclipse will no longer start on anyones machine. I first tried with 3.4 and I also tried the latest and greatest. I have the latest JDK installed as well, which is 6 update 18. This is a 32 bit machine. Any ideas? Here is the log file that Eclipse is generating:

!SESSION 2010-01-22 15:06:51.280 -----------------------------------------------
eclipse.buildId=M20090917-0800
java.version=1.6.0_18
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.osgi 4 0 2010-01-22 15:06:58.503
!MESSAGE An error occurred while automatically activating bundle org.eclipse.core.net (31).
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.core.internal.net.Activator.start() of bundle org.eclipse.core.net.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
 at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
 at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280)
 at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:408)
 at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
 at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)
 at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
 at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
 at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
 at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.activateProxyService(IDEWorkbenchAdvisor.java:258)
 at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postStartup(IDEWorkbenchAdvisor.java:238)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2343)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Caused by: java.lang.IllegalArgumentException
 at sun.net.www.ParseUtil.decode(Unknown Source)
 at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
 at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
 at java.net.URL.openConnection(Unknown Source)
 at java.net.URL.openStream(Unknown Source)
 at org.eclipse.equinox.internal.security.storage.StorageUtils.getInputStream(StorageUtils.java:94)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.load(SecurePreferencesRoot.java:110)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.<init>(SecurePreferencesRoot.java:84)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesMapper.open(SecurePreferencesMapper.java:99)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesMapper.getDefault(SecurePreferencesMapper.java:44)
 at org.eclipse.equinox.security.storage.SecurePreferencesFactory.getDefault(SecurePreferencesFactory.java:50)
 at org.eclipse.core.internal.net.ProxyType.getNode(ProxyType.java:515)
 at org.eclipse.core.internal.net.ProxyType.loadProxyAuth(ProxyType.java:525)
 at org.eclipse.core.internal.net.ProxyType.createProxyData(ProxyType.java:148)
 at org.eclipse.core.internal.net.ProxyType.getProxyData(ProxyType.java:137)
 at org.eclipse.core.internal.net.ProxyManager.migrateInstanceScopePreferences(ProxyManager.java:452)
 at org.eclipse.core.internal.net.ProxyManager.checkMigrated(ProxyManager.java:417)
 at org.eclipse.core.internal.net.ProxyManager.initialize(ProxyManager.java:276)
 at org.eclipse.core.internal.net.Activator.start(Activator.java:179)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
 ... 37 more
Root exception:
java.lang.IllegalArgumentException
 at sun.net.www.ParseUtil.decode(Unknown Source)
 at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
 at sun.net.www.protocol.file.Handler.openConnection(Unknown Source)
 at java.net.URL.openConnection(Unknown Source)
 at java.net.URL.openStream(Unknown Source)
 at org.eclipse.equinox.internal.security.storage.StorageUtils.getInputStream(StorageUtils.java:94)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.load(SecurePreferencesRoot.java:110)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.<init>(SecurePreferencesRoot.java:84)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesMapper.open(SecurePreferencesMapper.java:99)
 at org.eclipse.equinox.internal.security.storage.SecurePreferencesMapper.getDefault(SecurePreferencesMapper.java:44)
 at org.eclipse.equinox.security.storage.SecurePreferencesFactory.getDefault(SecurePreferencesFactory.java:50)
 at org.eclipse.core.internal.net.ProxyType.getNode(ProxyType.java:515)
 at org.eclipse.core.internal.net.ProxyType.loadProxyAuth(ProxyType.java:525)
 at org.eclipse.core.internal.net.ProxyType.createProxyData(ProxyType.java:148)
 at org.eclipse.core.internal.net.ProxyType.getProxyData(ProxyType.java:137)
 at org.eclipse.core.internal.net.ProxyManager.migrateInstanceScopePreferences(ProxyManager.java:452)
 at org.eclipse.core.internal.net.ProxyManager.checkMigrated(ProxyManager.java:417)
 at org.eclipse.core.internal.net.ProxyManager.initialize(ProxyManager.java:276)
 at org.eclipse.core.internal.net.Activator.start(Activator.java:179)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
 at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
 at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280)
 at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:408)
 at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
 at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)
 at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
 at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
 at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
 at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.activateProxyService(IDEWorkbenchAdvisor.java:258)
 at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postStartup(IDEWorkbenchAdvisor.java:238)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2343)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

!ENTRY org.eclipse.ui.workbench 4 0 2010-01-22 15:06:58.519
!MESSAGE Widget disposed too early!
!STACK 0
java.lang.RuntimeException: Widget disposed too early!
 at org.eclipse.ui.internal.WorkbenchPartReference$1.widgetDisposed(WorkbenchPartReference.java:172)
 at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:117)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008)
 at org.eclipse.swt.widgets.Widget.release(Widget.java:804)
 at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756)
 at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
 at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756)
 at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
 at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:756)
 at 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The sun.net.www.ParseUtil.decode() bit suggests a special char in the path, as mentioned in this thread.

If I have the equinox jar in a path with a percent sign in it, equinox won't start. For example:

$ pwd
/tmp/test%one

More specifically, if the percent sign is a valid escaping (ie, if the dir was /tmp/test%20) equinox will start, however it will fail to find the config.ini that is located in the configuration directory.


Did you check the FAQ I unzipped Eclipse, but it won't start. Why?

Cannot find a VM.

Eclipse requires a JVM to run and does not include one in the download. You need to grab a VM yourself; the Eclipse downloads page has pointers to where you can get one. You may have a VM, but Eclipse cannot find it. To avoid possible conflicts, always specify the VM you are using with the -vm command-line argument.

(see my eclipse.ini for an example to how reference the JVM)

Bad VM.

All versions of the Eclipse Platform require at least a JDK 1.3 VM. Eclipse 3.0 requires a 1.4 VM. Eclipse 3.3 and later contain many plug-ins that will not work without a 1.5 VM, and some that even require a 1.6 VM; Eclipse will run with a lower VM, but some functionality may be missing. As of Eclipse 3.3, the recommended VM version is 1.5 or later. If you are using a home-grown or experimental JVM and encounter problems, you may not be able to get help from other Eclipse users. Use a reputable VM. If you run into trouble, always try a VM from a major distributor and see whether the problem goes away. Eclipse also may not start if there is a mismatch in the JVM's architecture and the particular Eclipse build you are using. If you are on a 64-bit system but are using a 32-bit JVM, then you should download the 32-bit version of Eclipse. Likewise, if you are using a 64-bit JVM, then you should get the 64-bit version of Eclipse.

(should not be the case here, unless somehow an other older VM is picked up by eclipse)

Unsupported platform.

Make sure that the architecture and the operating system of your machine match one of the supported systems described in the file readme_eclipse.html. Eclipse will not run on Windows 95 or Commodore 64, for example. If your machine does not match one of the configurations described in the readme, it may still run, but you are on your own!

Lack of appropriate native widget toolkit.

If you download, for example, the GTK version of Eclipse, then you need to make sure that you have GTK (GTK+ 2.2.1 or higher, for Eclipse 3.3) on your computer and that it is correctly installed.

Incorrectly unzipped.

Believe it or not, about once a month, a user reports start-up failure: The user has unzipped Eclipse without selecting the use folder names option. Make sure that the result of unzipping is an install tree with an eclipse directory at its root. The Ark unzip utility in KDE is known to mangle Eclipse zips, so use a different unzip program to install there. The built-in unzip utility in Windows has also been known to have problems, particularly when installing into paths with relatively long names.

New Eclipse unzipped on top of older Eclipse.

Do not do this. Either install Eclipse in a brand new directory or use the Eclipse Update Manager to upgrade an older Eclipse. You can still keep your old workspace. Look in the Eclipse readme file for more details.

Buggy build.

It is not always user error. Some integration builds, and even the odd stable build, will have start-up problems under certain configurations that were not well tested. For example, build 3.0M6 would fail to start up if you restarted with an old workspace after unzipping new plug-ins into the plugins directory. If you are a new user, always start with the most recent official Eclipse release to be sure you are using the “least buggy” version possible. For more advanced users willing to accept less stable builds, consult Bugzilla to see if your particular start-up problem has already been reported.

Xerces problem.

Prior to Eclipse 3.0, Eclipse used a version of Xerces for parsing XML files, but certain distributions of 1.4 JVMs included a different version of Xerces with the same package names. This should not be a problem with Eclipse 3.0 or higher. See FAQ 108 for more details.

Disk full or out of memory.

Eclipse, especially 2.1 and earlier, does not always gracefully report disk-full errors or out-of-memory errors. Make sure that you have adequate disk space and that you are giving the Java VM enough heap space. See FAQ 26 for details.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...