Установка 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.

Другие вопросы по тегам