本文主要是介绍如何在Windows10下下载、配置JavaCup、JFlex及运行JavaCup测试用例。其他博客介绍一种配置JavaCup的方法是:将java-cup-11a.jar的路径添加到ClassPath中。但是当我在cmd上执行java java_cup.Main < ycalc.cup时,会出现一些异常,导致无法成功生成以及编译parser.java和sym.java。个人猜测可能是Windows下使用cmd调用jar包时,解析jar包出现异常。
本文使用的资源版本信息为
JavaCup:java-cup-bin-11b-20160615
Jflex:jflex-1.6.1
路径说明:本文将jflex-1.6.1文件夹放置在O盘根目录下,因此其路径为:O:\jflex-1.6.1\lib\jflex-1.6.1.jar。除此之外,由于我在安装JDK时,将JDK和JRE指定了不同路径,故在本文中会出现JRE和JDK的不在同一级目录下的情况,请知悉。在默认情况下,他们应该是在同一级目录下的。
一、下载及配置JavaCup
- 下载JavaCup
- 将解压后得到的两个jar包都复制到JRE和JDK的ext目录下
- S:\Program Files\Java\jdk1.8.0_181\Java\jdk1.8.0_181\jre\lib\ext
- C:\Program Files\Java\jre1.8.0_191\lib\ext
我尝试过只将java-cup-11b.jar的路径添加到环境变量ClassPath中。但是一直报错,可能使用IDE运行只需要将上面这个jar添加到环境中就可以,只是我没有尝试使用IDE启动。
二、下载及配置Jflex
- 下载 jflex-1.6.1
- 打开jflex-1.6.1\bin\jflex.bat,更新JFLEX_HOME为jflex文件夹的路径,即做以下修改:
set JFLEX_HOME=O:\jflex-1.6.1
如果使用的是jflex-1.4.1或更低的话,则还需要设置
set JAVA_HOME=“你电脑中JAVA_HOME”
加双引号是为了避免路径中存在空格而导致路径无效
- 添加环境变量
往Path中添加:O:\jflex-1.6.1\bin
往ClassPath中添加:O:\jflex-1.6.1\lib\jflex-1.6.1.jar
O:\jflex-1.6.1\bin
重新打开一个cmd窗口,如果输入jflex后弹出以下窗口,则jflex配置成功
三、运行测试用例——《一个基于命令行的简单计算器应用》
- cmd进入测试用例所在的目录,即 O:\jflex-1.6.1\examples\cup
- 打开README文件,其中含有四条指令:
To compile:
jflex lcalc.flex
java java_cup.Main < ycalc.cup
javac Main.java
To run:
java Main test.txt
依次在cmd中输入以上四条指令,如果JavaCup配置成功,则会出现以下信息。