无法在全新的 CCW 独立安装中创建 Clojure 项目或命名空间

Unable to create Clojure project or namespace in fresh CCW standalone install

当我第一次打开全新安装的 Counterclockwise 独立版并尝试创建 Clojure 项目时,我收到一个包含以下消息的错误对话框:

The selected wizard could not be started.

Reason:
Plug-in ccw.core was unable to load class ccw.leiningen.NewLeiningenProjectWizard

Details:
An error occurred while automatically activating bundle ccw.core (4)

似乎没有关于此错误的更多信息。我已经将逆时针安装目录 (C:\counterclockwise-0.35.1.STABLE001) 放在 class 路径中,但这并没有影响任何东西。

如果我尝试打开命名空间浏览器,我会得到类似的东西:

org.eclipse.core.runtime.CoreException: Plug-in ccw.core was unable to load class ccw.repl.NamespaceBrowser.
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
    ...etc...

我怀疑这是某种类型的 class 路径问题,但由于我是 Java 的新手,我不知道如何解决这个问题。

我在网上搜索过,但没有找到与此问题类似的内容。

这发生在多台机器上:

感谢任何建议。

编辑

我先安装 Eclipse Neon 然后再安装 Counterclockwise 作为插件会更好吗?

编辑

总长;博士 如果你仔细阅读下面的错误日志摘录,你会在底部附近找到

Caused by: java.lang.IllegalArgumentException: No implementation of method: :matcher-fn of protocol: #'net.cgrand.parsley.lrplus/MatcherFactory found for class: paredit.parser$reify__1553

那么这是 Clojure 版本 运行 的某种问题吗?我确实注意到在下面的逆时针依赖项中我看到

[org.clojure/clojure-contrib "1.2.0"]

这看起来像是来自非常过时的 Clojure 版本。我在我的机器上安装了它,因为它是另一个编辑器 (jEdit) 的插件的一部分。这可能是问题的根源吗?我有 jEdit 和它的 Clojure 插件,它在其他机器上包含这个过时版本的 Clojure 我也试过这个,但是包含旧版本 Clojure 的目录不在 class 路径或路径中. ????

FWIW 当我导出 Eclipse 错误日志视图时,我得到大约 12K+ 行输出。前几百是

!SESSION 2016-12-30 20:49:15.136 -----------------------------------------------
eclipse.buildId=0.35.1.STABLE001
java.version=1.8.0_111
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86_64

!ENTRY ccw.core 1 0 2016-12-30 20:49:31.022
!MESSAGE CCWPlugin.start(): ENTER

!ENTRY ccw.core 1 0 2016-12-30 20:49:36.144
!MESSAGE Counterclockwise dependencies:
        [bultitude "0.2.1"]
        [ccw/ccw.server "0.2.1"]
        [ccw/clojure-ccw "1.7.0"]
        [cheshire "5.0.2"]
        [classlojure "0.6.6"]
        [clj-http "0.9.2"]
        [clj-stacktrace "0.2.7"]
        [clj-tuple "0.1.2"]
        [clojure-complete "0.2.3"]
        [com.cemerick/drawbridge "0.0.6"]
        [com.cemerick/pomegranate "0.3.0"]
        [com.fasterxml.jackson.core/jackson-core "2.1.3"]
        [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.1.2"]
        [com.hypirion/io "0.3.1"]
        [commons-codec "1.9"]
        [commons-fileupload "1.2.1"]
        [commons-io "2.4"]
        [commons-lang "2.6"]
        [commons-logging "1.1.3"]
        [dynapath "0.2.0"]
        [jline "2.12"]
        [leiningen "2.5.1"]
        [leiningen-core "2.5.1"]
        [net.cgrand/parsley "0.9.2"]
        [net.cgrand/regex "1.1.0"]
        [net.cgrand/sjacket "0.1.1"]
        [net.mikera/cljunit "0.2.0"]
        [org.apache.httpcomponents/httpclient "4.3.3"]
        [org.apache.httpcomponents/httpcore "4.3.2"]
        [org.apache.httpcomponents/httpmime "4.3.3"]
        [org.apache.maven/maven-aether-provider "3.0.4"]
        [org.apache.maven/maven-model "3.0.4"]
        [org.apache.maven/maven-model-builder "3.0.4"]
        [org.apache.maven/maven-repository-metadata "3.0.4"]
        [org.apache.maven.indexer/indexer-artifact "4.1.3"]
        [org.apache.maven.indexer/indexer-core "4.1.3"]
        [org.apache.maven.wagon/wagon-http "2.7"]
        [org.apache.maven.wagon/wagon-http-shared "2.7"]
        [org.apache.maven.wagon/wagon-provider-api "2.2"]
        [org.clojure/clojure-contrib "1.2.0"]
        [org.clojure/core.incubator "0.1.0"]
        [org.clojure/data.xml "0.0.3"]
        [org.clojure/java.classpath "0.2.2"]
        [org.clojure/java.data "0.1.1"]
        [org.clojure/tools.cli "0.3.1"]
        [org.clojure/tools.logging "0.2.3"]
        [org.clojure/tools.macro "0.1.1"]
        [org.clojure/tools.nrepl "0.2.10"]
        [org.clojure/tools.reader "0.8.4"]
        [org.codehaus.plexus/plexus-classworlds "2.4"]
        [org.codehaus.plexus/plexus-component-annotations "1.5.5"]
        [org.codehaus.plexus/plexus-interpolation "1.14"]
        [org.codehaus.plexus/plexus-utils "2.0.6"]
        [org.jsoup/jsoup "1.7.2"]
        [org.sonatype.aether/aether-api "1.13.1"]
        [org.sonatype.aether/aether-connector-file "1.13.1"]
        [org.sonatype.aether/aether-connector-wagon "1.13.1"]
        [org.sonatype.aether/aether-impl "1.13.1"]
        [org.sonatype.aether/aether-spi "1.13.1"]
        [org.sonatype.aether/aether-util "1.13.1"]
        [org.sonatype.sisu/sisu-inject-bean "2.2.3"]
        [org.sonatype.sisu/sisu-inject-plexus "2.2.3"]
        [org.tcrawley/dynapath "0.2.3"]
        [pedantic "0.2.0"]
        [potemkin "0.3.4"]
        [prismatic/schema "0.4.4"]
        [quoin "0.1.2"]
        [reply "0.3.5"]
        [riddley "0.1.6"]
        [ring/ring-core "1.0.2"]
        [robert/hooke "1.3.0"]
        [scout "0.1.0"]
        [slingshot "0.10.3"]
        [stencil "0.3.5"]
        [trptcolin/versioneer "0.1.1"]

!ENTRY org.eclipse.osgi 4 0 2016-12-30 20:49:40.712
!MESSAGE An error occurred while automatically activating bundle ccw.core (4).
!STACK 0
org.osgi.framework.BundleException: Exception in ccw.CCWPlugin.start() of bundle ccw.core.
    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:941)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318)
    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)
    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:327)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:402)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344)
    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:573)
    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.e4.ui.internal.workbench.ReflectionContributionFactory.processLanguages(ReflectionContributionFactory.java:137)
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.<init>(ReflectionContributionFactory.java:45)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:502)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:522)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:203)
    at org.eclipse.ui.internal.Workbench.run(Workbench.java:628)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
    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 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:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
Caused by: java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at clojure.lang.RT.classForName(RT.java:2155)
    at clojure.lang.RT.classForName(RT.java:2164)
    at clojure.lang.RT.loadClassForName(RT.java:2183)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.lang.RT.load(RT.java:412)
    at clojure.core$load$fn__5448.invoke(core.clj:5866)
    at clojure.core$load.doInvoke(core.clj:5865)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5671)
    at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
    at clojure.core$load_lib.doInvoke(core.clj:5710)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$load_libs.doInvoke(core.clj:5749)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$require.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at ccw.editors.clojure.editor_support$loading__5340__auto____2430.invoke(editor_support.clj:12)
    at ccw.editors.clojure.editor_support__init.load(Unknown Source)
    at ccw.editors.clojure.editor_support__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at clojure.lang.RT.classForName(RT.java:2155)
    at clojure.lang.RT.classForName(RT.java:2164)
    at clojure.lang.RT.loadClassForName(RT.java:2183)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.lang.RT.load(RT.java:412)
    at clojure.core$load$fn__5448.invoke(core.clj:5866)
    at clojure.core$load.doInvoke(core.clj:5865)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5671)
    at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
    at clojure.core$load_lib.doInvoke(core.clj:5710)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$load_libs.doInvoke(core.clj:5749)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$require.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.invoke(RestFn.java:1096)
    at ccw.editors.clojure.hover_support$loading__5340__auto____7902.invoke(hover_support.clj:12)
    at ccw.editors.clojure.hover_support__init.load(Unknown Source)
    at ccw.editors.clojure.hover_support__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at clojure.lang.RT.classForName(RT.java:2155)
    at clojure.lang.RT.classForName(RT.java:2164)
    at clojure.lang.RT.loadClassForName(RT.java:2183)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.lang.RT.load(RT.java:412)
    at clojure.core$load$fn__5448.invoke(core.clj:5866)
    at clojure.core$load.doInvoke(core.clj:5865)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5671)
    at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
    at clojure.core$load_lib.doInvoke(core.clj:5710)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$load_libs.doInvoke(core.clj:5749)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:632)
    at clojure.core$require.doInvoke(core.clj:5832)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.lang.Var.invoke(Var.java:379)
    at ccw.util.osgi.ClojureOSGi.run(ClojureOSGi.java:137)
    at ccw.util.osgi.ClojureOSGi.withBundle(ClojureOSGi.java:107)
    at ccw.util.osgi.ClojureOSGi.withBundle(ClojureOSGi.java:52)
    at ccw.util.osgi.ClojureOSGi.require(ClojureOSGi.java:133)
    at ccw.util.ClojureInvoker.newInvoker(ClojureInvoker.java:46)
    at ccw.util.ClojureInvoker.newInvoker(ClojureInvoker.java:42)
    at ccw.CCWPlugin.initInjections(CCWPlugin.java:727)
    at ccw.CCWPlugin.start(CCWPlugin.java:276)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.run(BundleContextImpl.java:771)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
    ... 42 more
Caused by: java.lang.IllegalArgumentException: No implementation of method: :matcher-fn of protocol: #'net.cgrand.parsley.lrplus/MatcherFactory found for class: paredit.parser$reify__1553
    at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:554)
    at net.cgrand.parsley.lrplus$eval775$fn__776$G__766__783.invoke(lrplus.clj:32)
    at net.cgrand.parsley.lrplus$matcher$fn__846.invoke(lrplus.clj:123)

好的,问题解决了。

解决方案相当简单 - 归结为一个老笑话:

Patient: Doctor, it hurts when I do this!

Doctor: THEN DON'T DO THAT!!!!!!

在这种情况下,“不要那样做!”是“不要使用 CounterClockwise 的预构建独立版本”,至少在 Windows 上是这样。安装 Eclipse Neon(我使用了来自 http://www.eclipse.org/downloads/eclipse-packages/ 的“Eclipse IDE For Java Developers”包的 64 位版本),进入市场(Help/Eclipse Marketplace.. .),在查找框中输入“counterclockwise”,回车,安装CounterClockwise插件,重启Eclipse,即可运行。我仍然无法让调试器工作 - 它不会在断点处中断 - 但至少我已经让它工作了一些。