2017-11-01 11 views
1

JRE가 포함 된 zip 파일을 다운로드하여 Ortus에서 Commandbox를 설치하려고했습니다. OSX Sierra를 실행하는 Mac의 다운로드 폴더에 있습니다. 압축을 풀고 달리기를 시도했습니다. 먼저 물건을 초기화하고 잘 돌아갔습니다.Mac OSX Sierra에 Ortus Commandbox를 설치하면 오류 및 예외가 발생합니다.

여기에 설치 팁 : https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html 은/usr/bin에 바이너리를 배치 할 것을 제안합니다. 나는 시도했지만하지 못했습니다. 나는 mv에 sudo를 사용해 보았지만 심지어는 허용되지 않는다고 말했다.

그렇다면 자작 설치 방법을 사용하기로 결정했습니다. 나는 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 

이 문제를 해결하기 위해 무엇을해야할지 모르겠습니다.

다운로드 폴더에서 상자를 실행했을 때 물건을 초기화한다는 것을 깨닫지 못했을 때 물건이 더러워 졌을 것으로 생각됩니다. 상자 바이너리와 JRE 폴더를 모두 포함하는 다운로드 버전을 삭제하고 휴지통을 비 웠습니다.

Commandbox를 지금 설치하고 실행하는 방법에 대한 제안 사항이 있으십니까?

+0

"brew uninstall commandbox"와 "brew cleanup commandbox"를 시도한 다음 다시 설치해보십시오. 하지만 상자를 실행하면 같은 오류가 발생합니다. 길 찾기에서 JRE를 넣을 위치를 말하지 않도록 추가해야합니다. – teaman

+0

아야! JRE에 대해 걱정하지 않으려 고합니다. 내 최고의 추측은 그 상자가 그것이 필요로하는 항아리를 모두 풀지 못했다는 것입니다. 사용자 홈 디렉토리에서'.CommandBox' 폴더를 제거하고 다시 실행 상자를 열어 다시 풀어보십시오. 또한 컴퓨터에서 Java 버전을 확인할 수 있습니까? Java 9가 설치되어 있는지 궁금합니다. CommandBox는 아직 Java 9에 대해 인증되지 않았습니다! –

답변

1

로컬 테스트를 수행하고 CommandBox에서 현재 지원되지 않는 Java 9를 사용하고 있음을 확인했습니다. 수정이 쉽고 Java 9를 PC의 기본 JVM으로 설치 한 상태로 둘 수 있습니다. 당신이해야 할 일은 이전에 다운로드 한 JRE 폴더를 사용하거나, 서버 버전의 Java 8을 다운로드하고 폴더 이름을 JRE으로 바꾸는 것입니다. 그런 다음 해당 폴더를 box 바이너리와 동일한 디렉토리에 두십시오.

CommandBox가 처음 시작될 때 동일한 폴더에 JRE이라는 폴더가 있는지 확인한 후 사용합니다. 폴더를 찾지 못하면 운영 체제가 설치 한 일반 Java 버전으로 폴백합니다.

Java 9가 더 많이 등장하기 때문에 더 유용한 메시지를 알리기 위해 CommandBox에 넣은 체크에 대해 살펴 보겠습니다. 우리는 이미 비슷한 검사를하고 있지만, 자바 버전은 7보다 적습니다.

+0

나는 이미 Java 9를 감지하고 적절한 지원을받을 때까지 더 유용한 메시지를 출력하기 위해 다음 버전의 CommandBox 3.9.0-rc에 대한 수정을했습니다. https://ortussolutions.atlassian.net/browse/COMMANDBOX-712 –

+0

이 문제를 조사해 주신 Brad에게 감사드립니다! Mac에서 Java 9를 사용하고있을 것입니다. 나는 JRE를 다시 다운로드 할 것이다. 배치의 경우, 상자는 링크 만 포함하는 디렉토리 인/usr/local/bin에 있습니다. 거기에 JRE를 두는 것은 적절하지 않습니다. 내 Mac에서 다른 응용 프로그램을 방해하지 않고 Java 9에 액세스하는 데 필요한 적절한 장소가 필요합니까?JRE를 실제 폴더를 배치 할 위치로 리디렉션하기 위해 터미널에 링크를 만드는 방법을 알고 있습니다. – teaman

+0

나는/usr/local/lib에 jre 폴더를 놓은 다음이를 가리키는/usr/local/bin/jre에 소프트 링크를 만들었습니다. 나는 상자를 다시 시작했고 그것은 지금 일한다! jre에게 더 적절한 장소가 있는지 알려주세요. 도와 줘서 고마워, Brad! – teaman