Установка Ortus Commandbox на Mac OSX Sierra, запуск box приводит к ошибкам и исключениям
Я попытался установить Commandbox из Ortus, загрузив ZIP-файл, который также содержит JRE. Это появилось в папке Downloads на моем Mac под управлением OSX Sierra. Я расстегнул молнию и попытался запустить коробку. Сначала он инициализировал материал, затем работал нормально.
Совет по установке здесь: https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html предлагает поместить двоичный файл блока в / usr / bin. Я пытался, но не мог. Я даже пытался использовать sudo для mv, но он сказал, что мне не разрешили.
ТАК тогда я решил использовать Homebrew метод установки. Я установил 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, не понимая, что это инициализирует вещи. Я удалил версию Загрузки, содержащую двоичный файл и папку JRE, и очистил корзину.
Любые предложения о том, как запустить Commandbox и запустить его сейчас?
1 ответ
Я только что провел локальное тестирование и подтвердил, что вы работаете на Java 9, которая сейчас не поддерживается CommandBox. Исправление легко, и вы можете оставить Java 9 установленной в качестве основной JVM для вашего ПК. Что вам нужно сделать, это взять JRE
папку, которую вы загрузили ранее, или просто загрузите серверную версию Java 8 и переименуйте папку в JRE
, Затем поместите эту папку в тот же каталог, что и box
двоичный файл.
Когда CommandBox запускается впервые, он проверяет, есть ли папка с именем JRE
в той же папке, и если это так, он использует его. Если он не найдет папку, он вернется к общей версии Java, установленной вашей операционной системой.
Поскольку Java 9 появляется все больше и больше в дикой природе, я посмотрю о том, как проверить ее в CommandBox, чтобы предупредить людей более полезным сообщением. У нас уже есть подобная проверка, но она ищет только версии Java меньше 7.