64-битный Java-путь в Cygwin - PullRequest
       24

64-битный Java-путь в Cygwin

2 голосов
/ 30 августа 2011

Хорошо, так что это на самом деле довольно длинная история, но я постараюсь сделать ее довольно короткой. Поэтому я пытаюсь заставить работать WebOS SDK под Windows, используя Cygwin. Ну, это не сработало. Он продолжал жаловаться, что я использовал 32-битную версию Java вместо 64-битной. объяснение этой проблемы довольно легко понять. моя переменная PATH была установлена ​​неправильно и указывала на мою 32-битную установку Java. Простое решение, которое ВЫ ДУМАЕТЕ. очевидно нет. по некоторым причинам, несмотря на все мои усилия, я не могу получить 64-битную версию Java, записанную в переменную PATH. Эта проблема: Cygwin не любит пробелы в переменной Path, хотя переменная path изобилует пробелами, она не примет это, когда я добавлю свой собственный пробел. После долгих поисков я обнаружил множество вариантов этой проблемы и несколько решений. но ни один из них, кажется, не работает. я всегда получаю одну и ту же ошибку:

bash: /usr/local/bin:/usr/bin:/cygdrive/c/Program: No such file or directory

Ошибка довольно очевидна, в основном она ничего не читает после первого пробела, и у меня нет такого каталога, как C: / Program, поэтому он выдает ошибку, мой вопрос, как мне ее получить, кроме пробела Поскольку изменение имени каталога не является вариантом, от него зависит слишком многое. вот что я пробовал до сих пор:

$PATH=$PATH:C:\PROGRA~1\Java\jre6
$PATH=$PATH:"'pwd'" (while in java directory)
$PATH=$PATH:/cygdrive/c/Program Files/Java/jre6/bin (hay, i had to try)
$PATH=$PATH:/cygdrive/c/"Program Files"/Java/jre6/bin
$PATH=$PATH:/cygdrive/c/Program\ Files/Java/jre6/bin (escape character was rumored to work
$PATH=$PATH:'/cygdrive/c/Program Files/Java/jre6/bin'
$PATH=$PATH:"`/cygdrive/c/Program Files/Java/jre6/bin`"

и я думаю, что это было так, если кто-нибудь знает, как на самом деле сделать это правильно (или неправильно, но работает для меня все равно), это было бы очень признательно

Спасибо

- Chris

Ответы [ 2 ]

4 голосов
/ 14 сентября 2011

У вас также есть возможность использовать инструмент cygpath , чтобы помочь. Cygpath может использоваться для преобразования пути Window в путь Unix, но он не обрабатывает пробелы напрямую, поэтому вам нужно выполнить двухэтапный процесс, сначала устранить пробелы путем преобразования в DOS (короткое) имя пути, затем преобразуйте его в стиль Unix:

PATH=$(cygpath -u $(cygpath -m -s "C:\Program Files\Java\jre6\bin")):${PATH}
PATH=$(cygpath -u $(cygpath -m -s "C:\Program Files (x86)\HP webOS\PDK\bin")):${PATH}
PATH=$(cygpath -u $(cygpath -m -s "C:\Program Files (x86)\HP webOS\SDK\bin")):${PATH}
PATH=$(cygpath -u $(cygpath -m -s "C:\Program Files (x86)\HP webOS\SDK\bin\novacom")):${PATH}

Конечный результат будет выглядеть примерно так (короткие имена могут немного отличаться):

/cygdrive/c/PROGRA~3/HPWEBO~1/SDK/bin/novacom:/cygdrive/c/PROGRA~3/HPWEBO~1/SDK/bin:/cygdrive/c/PROGRA~3/HPWEBO~1/PDK/bin:/cygdrive/c/PROGRA~1/Java/jre6/bin:....other path elements....

Одна вещь, которую нужно сохранитьпомните, что при использовании этого cygpath генерирует ошибку, если указанный путь фактически не существует, поскольку он не может создать короткий путь для несуществующего пути.

Что приятно в этомПодход заключается в том, что если вы устанавливаете переменные среды Windows (как, например, JAVA_HOME), то вы можете использовать эту переменную среды в операции преобразования внутри .bash_profile, поскольку все переменные среды Windows видны при загрузке профиля.Таким образом, если у вас в среде Windows

JAVA_HOME=C:\Program Files\Java\jre

, то команда cygpath может быть

$(cygpath -u $(cygpath -m -s "${JAVA_HOME}\bin"))

, что означает, что вам когда-либо потребуется обновлять через настройки Windows только при изменении установки Java.

2 голосов
/ 14 сентября 2011

В .bash_profile:

PATH=/cygdrive/c/Program\ Files/Java/jre6/bin/:${PATH}
PATH=${PATH}:/cygdrive/c/Program\ Files\ \(x86\)/HP\ webOS/PDK/bin
PATH=${PATH}:/cygdrive/c/Program\ Files\ \(x86\)/HP\ webOS/SDK/bin
PATH=${PATH}:/cygdrive/c/Program\ Files\ \(x86\)/HP\ webOS/SDK/bin/novacom

Добавляет пути к вашему .bash_profile, и инструменты java и webOS SDK должны быть доступны.

...