2015-04-17 39 views
7

我最近在我的電腦上安裝了Haskell和EclipseFP,使用說明here。我儘可能安裝插件。EclipseFP根本沒有工作

不幸的是,插件似乎有一個內部問題,並且在啓動Eclipse時輸出以下錯誤(如「錯誤日誌」中所示)。

eclipse.buildId=4.4.0.I20140606-1215 
java.version=1.8.0_20 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
Framework arguments: -product org.eclipse.epp.package.standard.product -product org.eclipse.epp.package.standard.product 
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.standard.product -data <PATH TO WORKSPACE> -product org.eclipse.epp.package.standard.product 

org.eclipse.equinox.registry 
Error 
Thu Apr 16 19:37:20 PDT 2015 
Plug-in net.sf.eclipsefp.haskell.ui was unable to load class net.sf.eclipsefp.haskell.ui.decorators.ProblemsLabelDecorator. 

java.lang.ClassNotFoundException: An error occurred while automatically activating bundle net.sf.eclipsefp.haskell.ui (339). 
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116) 
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:311) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:386) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568) 
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) 
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) 
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) 
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) 
    at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:294) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52) 
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:289) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition$1.run(LightweightDecoratorDefinition.java:125) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.runtime.Platform.run(Platform.java:867) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.internalGetDecorator(LightweightDecoratorDefinition.java:120) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:255) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:83) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:367) 
    at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:349) 
    at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:372) 
    at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:332) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: org.osgi.framework.BundleException: Exception in net.sf.eclipsefp.haskell.ui.HaskellUIPlugin.start() of bundle net.sf.eclipsefp.haskell.ui. 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:792) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319) 
    at org.eclipse.osgi.container.Module.doStart(Module.java:571) 
    at org.eclipse.osgi.container.Module.start(Module.java:439) 
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) 
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) 
    ... 28 more 
Caused by: java.lang.NullPointerException 
    at net.sf.eclipsefp.haskell.ui.internal.backend.BackendManager.getToolSandbox(BackendManager.java:1108) 
    at net.sf.eclipsefp.haskell.ui.internal.backend.BackendManager.getToolSandboxBin(BackendManager.java:1124) 
    at net.sf.eclipsefp.haskell.ui.internal.backend.BackendManager.getExecutablePath(BackendManager.java:128) 
    at net.sf.eclipsefp.haskell.ui.internal.backend.BackendManager.start(BackendManager.java:175) 
    at net.sf.eclipsefp.haskell.ui.HaskellUIPlugin.start(HaskellUIPlugin.java:106) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764) 
    ... 35 more 

有什麼我應該做的,以解決這個問題?或者它只是一個兼容性問題。

+2

[這](https://github.com/JPMoresmau/eclipsefp/issues/269)說,如果你把它轉換成一個答案,你必須安裝驚天動地 –

+1

@格雷格-449,我會給你接受。你的回答確實讓我超越了「根本不工作」的問題,但如果你還包括以管理員身份運行(在Windows上)似乎使其完全發揮作用的事實,那將會很好。 –

+0

聽起來像是如果你寫了自己的答案會更好。實際上我對這個知之甚少! –

回答

1

打開一個shell並寫入cabal --help,看它是否顯示一些命令。否則下載Haskell Platform。如果你是在Windows確保您打開總是你的Eclipse作爲管理員:

  1. 右鍵單擊鏈接到Eclipse
  2. 轉到兼容性標籤和標記類似運行始終以管理員
  3. 打開Eclipse並轉到New/Other/Haskel/並選擇你想要的項目。
+2

當EclipseFP作爲管理員安裝在運行Eclipse之前,插件被禁用,創建一個新的Haskell項目的選項消失。如果遇到這種情況,請重新安裝'EclipseFP' ... – Dadani

+0

如果您使用MacPorts:EclipseFP無法找到'cabal',因爲它安裝在'/ opt/local/bin'中。我的解決方案是從shell運行Eclipse而不是UI啓動程序,例如'/ Applications/Eclipse Mars.app/Contents/MacOS/eclipse''。請記住,當您從Finder啓動應用程序時,您的'.bashrc'等不會被執行。 –

+0

當然,你可以將它從控制檯中分離出來,並且基本上會有相同的體驗。 – EliuX