在Mac OSX Sierra上安装Ortus Commandbox,运行框会导致错误和异常

时间:2017-11-01 06:58:24

标签: java macos exception homebrew commandbox

我尝试通过下载同时包含JRE的zip文件从Ortus安装Commandbox。它落在我运行OSX Sierra的Mac上的Downloads文件夹中。我解压缩它并尝试运行盒子。它首先初始化了东西,然后运行正常。

此处的安装提示:https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html 建议将盒子二进制文件放在/ usr / bin中。我试过但不能。我甚至尝试使用sudo来制作它,但它说我不被允许。

然后我决定使用Homebrew安装方法。我安装了Homebrew。安装完成后,我然后运行" brew install命令箱"。它完成了。然后我键入"哪个框​​"看看它会找到哪一个,我的下载目录或另一个。它显示它在/ 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 binary和JRE文件夹的Downloads版本,并清空了Trash。

有关如何立即启动并运行Commandbox的任何建议?

1 个答案:

答案 0 :(得分:2)

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

当CommandBox首次启动时,它会检查同一文件夹中是否有名为box的文件夹,如果是,则使用它。如果找不到该文件夹​​,则它将回退到您的操作系统已安装的Java的通用版本。

由于Java 9在野外出现的更多,我将看到如何检查它是否放入CommandBox以提醒用户更有用的消息。我们已经有类似的检查,但它只查找少于7的Java版本。