2015-04-17 17 views
7

Gần đây tôi đã cài đặt Haskell và EclipseFP trên máy tính của mình, sử dụng hướng dẫn here. Tôi đã đi xa như cài đặt plugin.EclipseFP không hoạt động ở tất cả

Thật không may, plugin dường như có sự cố nội bộ và xuất ra lỗi sau khi tôi khởi động Eclipse (như đã thấy trong "Nhật ký lỗi").

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 

Tôi có nên làm gì để khắc phục sự cố này không? Hoặc là nó chỉ là một vấn đề tương thích.

+2

[This] (https://github.com/JPMoresmau/eclipsefp/issues/269) cho biết bạn phải cài đặt Cabal –

+1

@ greg-449 Nếu bạn chuyển câu trả lời thành câu trả lời, tôi sẽ cho bạn chấp nhận. Câu trả lời của bạn đã làm cho tôi vượt qua vấn đề "không làm việc ở tất cả" nhưng nó sẽ là tốt đẹp nếu bạn cũng bao gồm một thực tế là chạy như quản trị viên (trên Windows) có vẻ để có được nó hoàn toàn chức năng. –

+0

Nghe có vẻ như sẽ tốt hơn nếu bạn viết câu trả lời tự. Tôi thực sự không biết nhiều về điều này! –

Trả lời

1

Mở vỏ và viết cabal --help và xem nó có hiển thị cho bạn một số lệnh hay không. Khác tải xuống số Haskell Platform. Nếu bạn đang ở trong Windows, đảm bảo bạn mở luôn eclipse của bạn as administrator:

  1. Nhấp chuột phải vào liên kết với Eclipse
  2. Chuyển đến Compatibility tab và đánh dấu một cái gì đó giống như Run luôn as administrator
  3. Mở Eclipse và goto New/Other/Haskel/ và chọn loại dự án bạn muốn.
+2

Khi 'EclipseFP' được cài đặt trước khi cài đặt chạy' Eclipse' làm quản trị viên, plugin bị tắt và các tùy chọn tạo dự án 'Haskell' mới biến mất. Cài đặt lại 'EclipseFP' nếu bạn chạy vào đó ... – Dadani

+0

Trong trường hợp bạn đang sử dụng MacPorts: EclipseFP không thể tìm thấy' cabal' vì nó được cài đặt trong '/ opt/local/bin'. Giải pháp của tôi là chạy Eclipse từ trình bao chứ không phải trình chạy UI, ví dụ: ''/ Applications/Eclipse Mars.app/Nội dung/MacOS/eclipse''. Hãy nhớ rằng khi bạn khởi động một ứng dụng từ Finder, '.bashrc' của bạn sẽ không được thực thi. –

+0

Chắc chắn, bạn có thể tách nó ra khỏi bảng điều khiển, và về cơ bản sẽ là cùng một trải nghiệm. – EliuX

Các vấn đề liên quan