1

我尝试通过下载还包含 JRE 的 zip 文件从 Ortus 安装 Commandbox。这位于运行 OSX Sierra 的 Mac 上的“下载”文件夹中。我解压缩并尝试运行盒子。它首先初始化了东西,然后运行良好。

此处的安装提示:https ://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html 建议将 box 二进制文件放在 /usr/bin 中。我试过但做不到。我什至尝试使用 sudo 对其进行 mv,但它说我不被允许。

所以然后我决定使用 Homebrew 安装方法。我安装了自制软件。安装完成后,我运行“brew install commandbox”。它完成了。然后我输入“哪个框”来查看它会找到哪个,我的下载目录中的一个或另一个。它显示它在 /usr/local/bin/box 中。似乎还可以。

然后我跑了盒子。它崩溃和燃烧!

$ box
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at cliloader.LoaderCLIMain.execute(LoaderCLIMain.java:205)
    at cliloader.LoaderCLIMain.main(LoaderCLIMain.java:705)
Caused by: java.lang.NoClassDefFoundError: sun/misc/VM
    at lucee.commons.collection.Hashing.randomHashSeed(Hashing.java:263)
    at lucee.commons.collection.HashMapPro.<init>(HashMapPro.java:195)
    at lucee.commons.collection.HashMapPro.<init>(HashMapPro.java:236)
    at lucee.commons.collection.LinkedHashMapPro.<init>(LinkedHashMapPro.java:70)
    at lucee.runtime.type.StructImpl.<init>(StructImpl.java:82)
    at lucee.runtime.type.StructImpl.<init>(StructImpl.java:68)
    at lucee.runtime.type.scope.ScopeSupport.<init>(ScopeSupport.java:85)
    at lucee.runtime.type.scope.ArgumentImpl.<init>(ArgumentImpl.java:67)
    at lucee.runtime.PageContextImpl.<init>(PageContextImpl.java:263)
    at lucee.runtime.CFMLFactoryImpl.getPageContextImpl(CFMLFactoryImpl.java:154)
    at lucee.runtime.CFMLFactoryImpl.getLuceePageContext(CFMLFactoryImpl.java:140)
    at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:435)
    at lucee.runtime.engine.CFMLEngineImpl.cli(CFMLEngineImpl.java:760)
    at lucee.loader.engine.CFMLEngineWrapper.cli(CFMLEngineWrapper.java:267)
    at luceecli.CLIMain.run(CLIMain.java:223)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: sun.misc.VM
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at lucee.loader.classloader.LuceeClassLoader.loadClass(LuceeClassLoader.java:173)
    at lucee.loader.classloader.LuceeClassLoader.loadClass(LuceeClassLoader.java:138)
    ... 21 more
Cause:
java.lang.NoClassDefFoundError: sun/misc/VM
    at lucee.commons.collection.Hashing.randomHashSeed(Hashing.java:263)
    at lucee.commons.collection.HashMapPro.<init>(HashMapPro.java:195)
    at lucee.commons.collection.HashMapPro.<init>(HashMapPro.java:236)
    at lucee.commons.collection.LinkedHashMapPro.<init>(LinkedHashMapPro.java:70)
    at lucee.runtime.type.StructImpl.<init>(StructImpl.java:82)
    at lucee.runtime.type.StructImpl.<init>(StructImpl.java:68)
    at lucee.runtime.type.scope.ScopeSupport.<init>(ScopeSupport.java:85)
    at lucee.runtime.type.scope.ArgumentImpl.<init>(ArgumentImpl.java:67)
    at lucee.runtime.PageContextImpl.<init>(PageContextImpl.java:263)
    at lucee.runtime.CFMLFactoryImpl.getPageContextImpl(CFMLFactoryImpl.java:154)
    at lucee.runtime.CFMLFactoryImpl.getLuceePageContext(CFMLFactoryImpl.java:140)
    at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:435)
    at lucee.runtime.engine.CFMLEngineImpl.cli(CFMLEngineImpl.java:760)
    at lucee.loader.engine.CFMLEngineWrapper.cli(CFMLEngineWrapper.java:267)
    at luceecli.CLIMain.run(CLIMain.java:223)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at cliloader.LoaderCLIMain.execute(LoaderCLIMain.java:205)
    at cliloader.LoaderCLIMain.main(LoaderCLIMain.java:705)
Caused by: java.lang.ClassNotFoundException: sun.misc.VM
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at lucee.loader.classloader.LuceeClassLoader.loadClass(LuceeClassLoader.java:173)
    at lucee.loader.classloader.LuceeClassLoader.loadClass(LuceeClassLoader.java:138)
    ... 21 more

我不知道现在该怎么做才能解决这个问题。

我怀疑当我从 Downloads 文件夹运行 box 时它可能搞砸了,没有意识到它会初始化东西。我删除了包含 box 二进制文件和 JRE 文件夹的下载版本,并清空了垃圾箱。

关于如何立即启动和运行 Commandbox 有什么建议吗?

4

1 回答 1

2

我刚刚进行了一些本地测试,并确认您使用的是 Java 9,CommandBox 目前不支持。修复很简单,您可以将 Java 9 安装为 PC 的主要 JVM。您需要做的是获取JRE您之前下载的文件夹,或者只需下载 Java 8 的服务器版本并将文件夹重命名为JRE. box然后将该文件夹放在与二进制 文件相同的目录中。

当 CommandBox 第一次启动时,它会检查在同一个文件夹中是否有一个文件夹被调用JRE,如果有,它会使用它。如果它没有找到该文件夹​​,那么它将回退到您的操作系统已安装的通用 Java 版本。

由于 Java 9 越来越多地出现,我将看到将检查放入 CommandBox 以提醒人们更有用的消息。我们已经进行了类似的检查,但它只查找小于 7 的 Java 版本。

于 2017-11-01T14:30:08.137 回答