Вот так я установил JRuby на Windows -> Почему это не сработало? - PullRequest
3 голосов
/ 24 апреля 2009
* Download JRuby 1.20. (zip file)
* Extract the zip into C:\JRuby120
* Edit sytem "environment variables":
* Add JRUBY_HOME -> point it to C:\JRuby120
* Modify the PATH environment variable to point to C:\JRuby120\bin; 

После всего этого я открываю cmd.exe и набираю jruby

-> «Системе не удается найти указанный путь»

Что я сделал не так?

Я удалил echo_off из C: \ JRuby120 \ bin \ jruby.bat, C: \ JRuby120 \ bin_jrubyvars.bat и C: \ JRuby120 \ bin_jrubyvmopts.bat и вызвал jruby из cmd.exe. Это был вывод:

C:\>rem --------------------------------------------------------------------------- 

C:\>rem jruby.bat - Start Script for the JRuby Interpreter 

C:\>rem

C:\>rem for info on environment variables, see internal batch script _jrubyvars.bat 

C:\>setlocal

C:\>rem Sometimes, when jruby.bat is being invoked from another BAT file, 

C:\>rem C:\JRuby120\bin\ is incorrect and points to the current dir, not to JRuby's bin dir, 

C:\>rem so we look on the PATH in such cases. 

C:\>IF EXIST "C:\JRuby120\bin\_jrubyvars.bat" (set FULL_PATH=C:\JRuby120\bin\ )  ELSE (set FULL_PATH=C:\JRuby120\bin\ ) 

C:\>call "C:\JRuby120\bin\_jrubyvars.bat"  

C:\>rem Environment Variable Prequisites: 

C:\>rem

C:\>rem   JRUBY_OPTS    (Optional) Default JRuby command line args. 

C:\>rem

C:\>rem   JAVA_HOME     Must point at your Java Development Kit installation. 

C:\>rem

C:\>rem ----- Save Environment Variables That May Change -------------------------- 

C:\>set _CLASSPATH=.; 

C:\>set _CP= 

C:\>set _JRUBY_CP= 

C:\>set JRUBY_BAT_ERROR=0 

C:\>rem ----- Verify and Set Required Environment Variables ----------------------- 

C:\>if not "C:\Program Files\Java\jdk1.6.0_11\bin" == "" goto gotJava 

C:\>set JRUBY_HOME=C:\JRuby120\bin\.. 

C:\>rem ----- Prepare Appropriate Java Execution Commands ------------------------- 

C:\>if not "" == "" goto gotCommand 

C:\>set _JAVA_COMMAND= 

C:\>set JAVA_COMMAND=java 

C:\>if not "Windows_NT" == "Windows_NT" goto noTitle 

C:\>rem set _STARTJAVA=start "JRuby" "C:\Program Files\Java\jdk1.6.0_11\bin\bin\java" 

C:\>set _STARTJAVA=C:\Program Files\Java\jdk1.6.0_11\bin\bin\java 

C:\>goto gotTitle 

C:\>rem ----- Set up the VM options 

C:\>call "C:\JRuby120\bin\_jrubyvmopts"  

C:\>set _MEM=-Xmx500m 

C:\>if not defined JAVA_MEM goto memOptDone 

C:\>set _STK=-Xss1024k 

C:\>if not defined JAVA_STACK goto stackOptDone 

C:\>set _VM_OPTS= 

C:\>set _RUBY_OPTS= 

C:\>set _DFLT_VM_OPTS= 

C:\>set _JAVA_VM=-client 

C:\>set SAFE_JAVA_HOME=C:\Program Files\Java\jdk1.6.0_11\bin 

C:\>set SAFE_JAVA_HOME=C:\Program Files\Java\jdk1.6.0_11\bin 

C:\>rem

C:\>rem Can you believe I'm rewriting batch arg processing in batch files because batch 

C:\>rem file arg processing sucks so bad? Can you believe this is even possible? 

C:\>rem http://support.microsoft.com/kb/71247 

C:\>rem Escape any quotes. Use _S for ', _D for ", and _U to escape _ itself. 

C:\>rem We have to escape _ itself, otherwise file names with _S and _D 

C:\>rem will be converted to to wrong ones, when we un-escape. See JRUBY-2821. 

C:\>set _ARGS= 

C:\>if not defined _ARGS goto vmoptsDone 

C:\>set _VM_OPTS= -client -Xmx500m -Xss1024k  

C:\>set _DFLT_VM_OPTS= 

C:\>set _MEM= 

C:\>set _STK= 

C:\>set _ARGS= 

C:\>set _VAL= 

C:\>set _CMP= 

C:\>set _CMP1= 

C:\>set _JAVA_VM= 

C:\>set _RUNJAVA="C:\Program Files\Java\jdk1.6.0_11\bin\bin\java" 

C:\>rem ----- Set Up The Boot Classpath ---------------------------------------- 

C:\>for %i in ("C:\JRuby120\bin\..\lib\jruby*.jar") do @call :setjrubycp %i 

C:\>if not "" == "" goto addjrubycp 

C:\>set JRUBY_CP=C:\JRuby120\bin\..\lib\jruby.jar 

C:\>goto :EOF 

C:\>for %i in ("C:\JRuby120\bin\..\lib\bsf*.jar") do @call :setjrubycp %i 

C:\>if not "C:\JRuby120\bin\..\lib\jruby.jar" == "" goto addjrubycp 

C:\>set JRUBY_CP=C:\JRuby120\bin\..\lib\jruby.jar;C:\JRuby120\bin\..\lib\bsf.jar 

C:\>goto :EOF 

C:\>rem ----- Set Up The System Classpath ---------------------------------------- 

C:\>for %i in ("C:\JRuby120\bin\..\lib\*.jar") do @call :setcp %i 

C:\>if not "" == "" goto add 

C:\>set CP=C:\JRuby120\bin\..\lib\bsf.jar 

C:\>goto :EOF 

C:\>if not "C:\JRuby120\bin\..\lib\bsf.jar" == "" goto add 

C:\>set CP=C:\JRuby120\bin\..\lib\bsf.jar;C:\JRuby120\bin\..\lib\jruby.jar 

C:\>goto :EOF 

C:\>if not "C:\JRuby120\bin\..\lib\bsf.jar;C:\JRuby120\bin\..\lib\jruby.jar" == "" goto add 

C:\>set CP=C:\JRuby120\bin\..\lib\bsf.jar;C:\JRuby120\bin\..\lib\jruby.jar;C:\JRuby120\bin\..\lib\profile.jar 

C:\>goto :EOF 

C:\>goto :EOF 

C:\>if 0 == 0 "C:\Program Files\Java\jdk1.6.0_11\bin\bin\java"  -client -Xmx500m -Xss1024k  -Xbootclasspath/a:"C:\JRuby120\bin\..\lib\jruby.jar;C:\JRuby120\bin\..\lib\bsf.jar" -classpath "C:\JRuby120\bin\..\lib\bsf.jar;C:\JRuby120\bin\..\lib\jruby.jar;C:\JRuby120\bin\..\lib\profile.jar;.;" -Djruby.home="C:\JRuby120\bin\.." -Djruby.lib="C:\JRuby120\bin\..\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main   

C:\>set E=3 

C:\>call "C:\JRuby120\bin\_jrubycleanup" 

Ответы [ 4 ]

11 голосов
/ 24 апреля 2009

Ну, это то, что ты должен делать. Перейдите в командную строку и введите echo %PATH% и убедитесь, что ваш каталог jruby bin там.


EDIT:

Игнорируйте вышесказанное, это не ошибка, которую вы получите, если jruby не окажется на пути. Ошибка «Система не может найти указанный путь» вызвана тем, что путь не существует, скорее всего, это путь к вашему Java JDK. Запустите echo %JAVA_HOME%. Убедитесь, что путь правильный. Если у вас нет Java JDK, вы можете скачать его здесь .


РЕДАКТИРОВАТЬ 2:

Увидев вывод jruby.bat, похоже, что проблема либо в том, чтобы найти _jrubyvars.bat, либо в том, что внутри него вызывается. Единственное, что он вызывает, это _jrubyvmopts.bat, который больше ничего не вызывает. Убедитесь, что C:\JRuby120\bin\_jrubyvars.bat и C:\JRuby120\bin\_jrubyvmopts.bat существуют, хотя я не вижу причины, по которой они не должны. Если они оба существуют, то следующим шагом было бы удалить строки @echo off из каждой из них и посмотреть, сможем ли мы точно определить, где происходит плохой вызов.


РЕДАКТИРОВАТЬ 3:

Увидев весь этот вывод, похоже, что JAVA_HOME установлен в "C:\Program Files\Java\jdk1.6.0_11\bin\" JAVA_HOME должен быть родительским каталогом: C:\Program Files\Java\jdk1.6.0_11\ ". Попробуйте и на этот раз скрестите пальцы.

1 голос
/ 29 мая 2009

Изменение значения JAVA_HOME с C: \ Program Files \ Java \ jdk1.6.0_11 \ bin на C: \ Program Files \ Java \ jdk1.6.0_11 \ работало для меня. Моя среда: Win XP, добавил c: \ jruby \ bin в переменную PATH и создал JRUBY_HOME, указывающий на c: \ jruby.

Спасибо

0 голосов
/ 16 декабря 2016

У меня была та же проблема, и я все безуспешно пробовал все, что здесь упоминается.

Мое решение: перезагрузите компьютер. Работал на меня!

0 голосов
/ 03 июля 2009

Моя переменная окружения JAVA_HOME отсутствует. исправление, которое работало для меня в Windows 7

...