Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jar JavaCC入门_Jar_Javacc - Fatal编程技术网

Jar JavaCC入门

Jar JavaCC入门,jar,javacc,Jar,Javacc,我是JavaCC新手,不知道如何让它运行。我正在使用MacOSX,我安装了javacc-6.0.zip并解压缩了它。在终端上键入javacc时,我无法从我的路径访问javacc脚本,我收到以下消息: -bash: javacc: command not found 如何使javacc脚本可以从我的路径访问 我的解压缩文件夹javacc-6.0位于以下目录中:/Users/Rishabh/Desktop/javacc 因此,我在终端上执行以下操作: PATH=$PATH\:/Us

我是JavaCC新手,不知道如何让它运行。我正在使用MacOSX,我安装了javacc-6.0.zip并解压缩了它。在终端上键入
javacc
时,我无法从我的路径访问javacc脚本,我收到以下消息:

    -bash: javacc: command not found
如何使javacc脚本可以从我的路径访问

我的解压缩文件夹
javacc-6.0
位于以下目录中:
/Users/Rishabh/Desktop/javacc

因此,我在终端上执行以下操作:

    PATH=$PATH\:/Users/Rishabh/Desktop/javacc/javacc-6.0/

接下来键入
javacc
会给我同样的消息。

您需要首先解压缩包,并添加
javacc
在您的
PATH
环境变量

比如:
设置路径=%path%

我今天下载的JavaCC 6.0版本(2013.07.22)没有完整的bin目录。它丢失了所有的脚本文件!希望这将很快得到纠正

对于OS X和其他unix/linux变体,缺少的脚本文件称为javacc,应该是可执行的,并且应该包含以下内容:

#!/bin/sh
JAR="`dirname $0`/lib/javacc.jar"

case "`uname`" in
     CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;;
esac

java -classpath "$JAR" javacc "$@"
将bin目录添加到您的路径中(省略反斜杠——正如Ahmed Masud所指出的那样),所有内容都应该是ticketty boo。如果您的操作系统来自Redmond,或者您想运行jjtree或jjdoc,只需下载javacc-5.0并将脚本文件(而不是lib目录!!!!)从5.0 bin目录复制到6.0 bin目录



更新(2020):由于第6版现在更难找到,我在
javacc-6.0.zip的
bin/
目录下放了一份副本,检查您是否有
javacc
jjjtree
。从中获取
javacc6.0
时,此bin目录为空

javacc
&
jjtree
是脚本

实际上,我使用的是Java 5.0,我修改了我的
.profile
文件以添加(我将javacc放在我的应用程序文件夹中):


它工作得很好。

更多
javacc

#!/bin/sh JAR="`dirname $0`/lib/javacc.jar"

case "`uname`" in
     CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;; esac

java -classpath "$JAR" javacc "$@"
更多
jjtree

#!/bin/sh JAR="`dirname $0`/lib/javacc.jar"

case "`uname`" in
     CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;; esac

java -classpath "$JAR" jjtree "$@"
javacc-6.0/bin
bin
文件夹中创建这些脚本

制作一个chmod:

chmod 755 javacc
chmod 755 jjtree

在Mac OS X和Linux上,我只使用一个脚本和两个符号链接:

echo 'java -cp /path/to/javacc.jar $(basename $0) "$@"' > javacc
chmod 755 javacc
ln -s javacc jjtree
ln -s javacc jjdoc
前两行创建脚本并使其可执行。
第二行重用jjtree和jjdoc的
javacc
脚本,因为它们都来自同一个JAR。

在Windows中,我也没有javacc,必须使用

java -cp bin\lib\javacc.jar javacc
相反。这是非常令人沮丧的,因为所有的文档都建议使用
javacc
,而我们却忽略了这一点。然而,我看到
javacc
是在旧的javacc5.0中定义的。我在那里看到
javacc.bat

java -classpath "%~dp0lib\javacc.jar;%~dp0lib\javacc.jar;%~f0\..\lib\javacc.jar" javacc %1 %2 %3 %4 %5 %6 %7 %8 %9

@AhmedMasud最初发布问题时,他没有指定他正在使用的操作系统,在我的回答之后,他编辑了问题。-bash:javacc:command not found在原始版本中。反正这也没什么大不了的。
java -classpath "%~dp0lib\javacc.jar;%~dp0lib\javacc.jar;%~f0\..\lib\javacc.jar" javacc %1 %2 %3 %4 %5 %6 %7 %8 %9