【问题标题】:Installing Ortus Commandbox on Mac OSX Sierra, running box results in errors and exceptions在 Mac OSX Sierra 上安装 Ortus Commandbox,运行 box 会导致错误和异常
【发布时间】:2017-11-01 06:58:24
【问题描述】:

我尝试通过下载也包含 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 有什么建议吗?

【问题讨论】:

  • 我确实尝试过“brew uninstall commandbox”,然后是“brew cleanup commandbox”,然后再次尝试重新安装。但是当我运行 box 时,我得到了同样的错误。我应该补充一点,说明并没有说明将 JRE 放在哪里。
  • 哎哟!听起来您的机器已经有 Java,所以我不会担心 JRE。我最好的猜测是那个盒子没有完全打开它需要的所有罐子。删除用户主目录中的.CommandBox 文件夹并重新运行框以再次尝试解包。另外,您能确认您机器上的 Java 版本吗?我想知道您是否安装了Java 9。 CommandBox 尚未通过 Java 9 认证!

标签: java macos exception homebrew commandbox


【解决方案1】:

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

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

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

【讨论】:

  • 我已经为下一个版本的 CommandBox 3.9.0-rc 进行了修复,以检测 Java 9 并输出更有用的消息,直到我们得到适当的支持。 ortussolutions.atlassian.net/browse/COMMANDBOX-712
  • 感谢 Brad 对此问题的调查!我的 Mac 上可能确实有 Java 9。我将再次下载 JRE。至于放置,盒子在 /usr/local/bin 这是一个只包含链接的目录。将 JRE 放在那里似乎并不合适。有没有更合适的地方放置它,不会干扰我的 Mac 上的其他应用程序在需要时访问 Java 9?我知道如何在终端中创建链接,以便将 JRE 重定向到我放置物理文件夹的任何位置。
  • 我继续将 jre 文件夹放在 /usr/local/lib 中,然后在 /usr/local/bin/jre 中创建指向它的软链接。我再次启动了盒子,它现在可以工作了!让我知道是否有更适合 jre 的地方。谢谢你的帮助,布拉德!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2017-03-05
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 2018-05-02
相关资源
最近更新 更多