2016-11-20 3 views
0

Я только что установил jflex и чашку, и я хочу проверить, все ли в порядке. Вот что я пишу в оболочке и получаю результат. enter image description hereНе удается запустить jflex.bat в windows 8.1

Вот содержание jflex.bat файла: enter image description here Есть ли что-то я сделал не так? Как запустить первый раз jflex? Когда я пишу java -version, он отображает правильную версию java в моем компьютере. Проблема с jflex.

Спасибо!

+0

Пожалуйста, включите графику, используя иконку «картинка» (например, пейзаж), чтобы будущие читатели могли видеть, какие данные были. Лучше всего вырезать и вставлять фрагменты кода, затем выбрать и нажать '{}', чтобы пометить как код. Таким образом, ваш код доступен для редактирования и не должен быть перепечатан с последующим сохранением опечаток. – Magoo

+0

... или вы могли бы скопировать текст с консоли в свой вопрос. Потому что нет возможности для будущего пользователя найти ваш вопрос, выполнив поиск сообщения об ошибке, показанного на картинке. – Seki

ответ

1

Где вы выполняете %java_home%\bin, вы должны

1) Приложите %java_home%\bin\java в "двойные кавычки"
2) Точно так же, заключающих %clpath% в "двойные кавычки"

Таким образом, cmd является что содержимое между кавычками является одной строкой.

1

Вы должны окружить значение переменной JAVA_HOME двойные кавычки, потому что он содержит пробелы JAVA_HOME переменная, которая содержит путь к корневой директории вашей среды Java содержит пробелы: C:\Program Files (x86)\Java. Он используется на 3-й последней строке:

%JAVA_HOME%\bin\java -classpath... 

Так просто, подставляя значение %JAVA_HOME% вы получите:

C:\Program Files (x86)\bin\java -classpath... 

Вы сказали бы: «это просто путь к Java исполняемый файл». Но это не так, как видит интерпретатор команд, он подумает, что вы даете три разные вещи: C:\ProgramFiles(x86) (он просто принимает пробел как разделитель для аргументов, как обычно!). Затем он примет первый C:\Program как путь к исполняемой программе и остальную часть строки в качестве аргументов. Поскольку C:\Program не путь к действительному исполняемому вы получите ошибку

«C: \ Program» не распознается как внешний или внутренний command`

Так, чтобы позволить ему знать, что он всегда имеет чтобы увидеть C:\Program Files (x86) в целом (часть одной и той же вещи: один путь к каталогу), вы просто окружаете его двойными кавычками. В пакетном режиме всегда разумно окружать переменные двойными кавычками, когда они представляют путь! Теперь у вас есть 3 варианта:

  1. Самый простой один (только решить эту конкретную проблему): заменить

    set JAVA_HOME=C:\Program Files (x86)\Java 
    

    с

    set JAVA_HOME="C:\Program Files (x86)\Java" 
    

    Таким образом, вы убедитесь, что везде JAVA_HOME является вы не получите больше проблем из-за пространств arround «Файлы»

  2. Go везде вы использовали %JAVA_HOME% и замените его на "%JAVA_HOME%" (просто закруглите двойные кавычки). Вы можете сделать то же самое для всех применений %JFLEX_HOME%, так как это также представляет собой путь

  3. Последний вариант (самый общий, который вы должны рассматривать как правило в пакетном режиме) окружает все представления путей (литеральные пути или пути установлены в переменных) с двойными кавычками.

+0

Но Java - это хорошо. Когда я пишу java -version, он отображает правильную версию java в моем компьютере. Проблема с jflex. –

+0

Нет проблем с вашей java (или по крайней мере ... это не то, что вызывает ошибку) –

+0

Я отредактировал свой ответ и предоставил еще несколько объяснений, надеюсь, что это поможет вам понять проблему и решить ее :) –

Смежные вопросы