CIDER가 특정 버전의 JVM을 사용하도록 강제 할 수 있습니까?Windows에서 CIDER가 실행할 JVM 버전
저는 Java interop에 의존하는 Clojure 프로젝트를 포함하여 최근에 릴리스 된 Java 8을 사용하기 위해 많은 프로젝트를 업데이트했습니다. 그러나 개발하는 동안 몇 가지 문제가 발생했습니다. 그 중 하나는 Emacs의 CIDER를 사용할 때입니다. Java 8 JVM을 사용할 수없는 것 같습니다.
호환성 테스트를 위해 JDK 버전 1.7.0_17, _21, _25, _40, _45, _51 및 1.8.0이 시스템에 설치되어 있습니다. 나는 사이다 REPL를 시작하고 자바 버전을 확인하면
, 나는이를 참조하십시오 CIDER로 업데이트하기 전에, nREPL을 사용할 때 비슷한 결과를보고
; CIDER 0.6.0alpha (package: 20140322.332) (Clojure 1.6.0, nREPL 0.2.3)
eight-queens.core> (System/getProperty "java.version")
"1.7.0_25"
. 라이트 테이블 내에서 REPL을 사용할 때도 비슷한 결과가 나타납니다. 명령 줄에서 시작된 Clojure REPL을 사용하여 예상대로 작동합니다.
내 자바 관련 환경 변수는 다음과 같습니다
PATH가 포함 C:\Program Files\Java\jdk1.8.0\bin\
이
가 JAVA_HOME : C:\Program Files\Java\jdk1.8.0
이
가 LEIN_JAVA_CMD :
이 (Leiningen 이맥스 내 명령 쉘에서 실행 C:\Program Files\Java\jdk1.8.0\bin\java
비슷한 생산 문제가 LEIN_JAVA_CMD 환경 변수를 추가하기 전에. 이상하게도 환경 변수를 추가하면 C에서 사용하는 JVM의 버전이 변경됩니다. IDER. 환경 변수를 추가하기 전에 버전 1.7.0_40을 사용하여보고했습니다.)
Windows 레지스트리와 관련된 것으로 보이는 항목을 찾지 못했습니다.
CIDER를 특정 JVM과 함께 실행되도록 강제 할 수있는 방법이 있습니까?
OP에서 언급했듯이, 환경 변수 LEIN_JAVA_CMD는 이미 Java 8을 가리 키도록 설정되어 있습니다. Windows CLI와 Emacs 쉘에서'lein version'을 실행하면 예상대로 Java 1.8.0 Java HotSpot (TM) 64 비트 서버 VM에 Leiningen 2.3.4가 생성되지만 CIDER (및 nREPL 및 LightTable)는 여전히 이전 JVM에서 실행 중임을보고합니다. 이상하지, 응? – clartaq
쉘 로컬 방식으로 설정했는지 확신 할 수 없으므로 내 의견. 나는 CIDER의 개발자이지만 윈도우를 사용하지 않고 쉘에 대한 지식이 부족합니다. 나는 당신이'cider-server-command'를 가지고 놀 수 있다고 생각하지만, 나는 아무것도 생각할 수 없다. –
고마워요, Bozhidar. 'profiles.clj'의 사용자 프로파일에서 잊어 버린'java-cmd' 설정이었습니다. 그것이 여러 시스템에 있었기 때문에 어떻게 거기에 도착했는지 확신 할 수 없습니다. Light Table InstaRepl이 비슷한 것을하고있는 이유를 알아 보겠습니다. – clartaq