我尝试从Ortus下载包含JRE的zip文件来安装Commandbox。这是在我运行OSX塞拉利昂的Mac的下载文件夹中找到的。我解开了拉链,试着用跑步箱。它首先初始化了一些东西,然后运行良好。
这里的安装提示:https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html建议将框二进制放在/usr/bin中。我试过了,但做不到。我甚至试过用sudo来控制它,但它说我是不允许的。
所以我决定用家用的安装方法。我安装了自制的。安装完成后,我运行"brew安装命令箱“。一切都完成了。然后,我输入“哪个框”来查看它会找到哪个框,或者在我的下载目录中找到哪个框。它显示它在/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我不知道现在该怎么做才能解决这个问题。
当我从下载文件夹中运行box时,我怀疑它可能把事情搞砸了,而没有意识到它会初始化一些东西。我删除了包含box二进制文件和JRE文件夹的下载版本,并清空了垃圾。
关于如何使Commandbox现在启动和运行,有什么建议吗?
发布于 2017-11-01 14:30:08
我只是做了一些本地测试,并确认您在Java9上,CommandBox现在不支持它。修复很简单,您可以将Java 9作为PC的主要JVM安装。您需要做的是使用之前下载的JRE文件夹,或者只是下载服务器版本的Java8并将该文件夹重命名为JRE。然后将该文件夹放置在与box二进制文件相同的目录中。
当CommandBox第一次启动时,它会检查在同一个文件夹中是否有一个名为JRE的文件夹,如果是的话,它会使用它。如果它找不到文件夹,那么它将返回到操作系统安装的Java的一般版本。
由于Java 9在野外出现的更多,我将看看如何将它放到CommandBox中,以便用更有用的消息提醒人们。我们已经有了类似的检查,但是它只查找少于7的Java版本。
https://stackoverflow.com/questions/47049729
复制相似问题