Когда вы вызываете
java JFlex.Main xxx.flex
Вы просите java загрузить класс JFlex.Main
и передать xxx.flex
в качестве параметра. Поскольку вы не сообщаете java, где находится этот класс JFlex.Main
, java ищет его в своем пути к классам, и если вы не добавили файл jar JFlex в путь к классу, это приводит к сообщению об ошибке.
Error: Could not find or load main class JFlex.Main
Кстати, имена классов и пространства имен чувствительны к регистру: в файле jar JFlex класс Main
находится в каталоге jflex
, а не JFlex
, поэтому вам нужно вызвать класс jflex.Main
... если вы не используете версию JFlex до 1.5. где JFlex
допустимо.
Чтобы позволить java найти класс:
- либо измените путь системного класса (с переменной среды
$CLASSPATH
- или %CLASSPATH%
в окнах)
- или просто укажите расположение файла jar командой
java
с параметром -cp
Например:
java -cp path/to/jflex-1.6.0.jar jflex.Main xxx.jflex
Если банка находится в текущем каталоге, вы можете просто использовать
java -cp jflex-1.6.0.jar jflex.Main xxx.jflex
Или, проще говоря, поскольку это исполняемый файл jar, вы можете опустить основной класс.
java -jar jflex-1.6.0.jar xxx.jflex
Точно так же кажется, что в java отсутствует jar-файл CUP при обработке вашего файла yyy.cup
, вы можете исправить это, как для JFlex, с помощью
java -cp java-cup-11a.jar java_cup.Main yyy.cup
or
java -jar java-cup-11a.jar java_cup.Main yyy.cup
person
Seki
schedule
06.08.2016