我正在尝试建造烟灰。
我已经使用 svn co https://svn.sable.mcgill.ca/abc/trunk/JastAddExtensions/
下载了jastaddextensions的源代码,使用
-
git remote add soot https://github.com/Sable/soot.git
-
git pull soot develop
。
然后我尝试使用ANT构建烟灰,并收到以下错误消息:
D:devro-01sootbuild.xml:102: The following error occurred while executing this line:
D:devro-01JastAddExtensionsSootJastAddJbuild.xml:18: taskdef class JFlex.anttask.JFlexTask cannot be found
using the classloader AntClassLoader[]
如何解决此错误?在哪里可以下载与当前版本的烟灰兼容的JastAddExtensionsSootJastAddJ
代码?
您将在烟灰邮件列表中更快地获得帮助。您不需要构建烟灰的jastadd部分。它是在"生成"目录中预先构建的。
查看:
http://jflex.de/jflex_anttask.html
简单的答案:您可能还没有将JFLEX JAR复制到Ant的Library文件夹/目录。
如果那没有使您弄清楚……更复杂的解决方案:找到烟灰蚂蚁文件,可能在项目root目录中作为build.xml。
然后找到一个名为" JFLEX"的任务定义,可能看起来像这样:
<taskdef classname="jflex.anttask.JFlexTask" name="jflex" />
将其更改为这样的东西:
<taskdef
name="jflex"
classname="jflex.anttask.JFlexTask"
classpath="${compiler_tools_path}${jflex_jar_name}"
/>
在开头附近,随着其他属性,使用目录/文件夹的位置创建新的属性,然后将最新的JFLEX JAR复制到:
<property
name="compiler_tools_path"
value="/Library/CompilerTools/"
/>
这是创建目录/文件夹以将其存储在Mac上的合适场所。Windows和Unix,在任何外部安装的罐子都存储。
<property
name="jflex_jar_name"
value="jflex-1.5.1.jar"
/>
最近的JFLEX JAR构建的一个例子。结帐:
http://jflex.de/
我希望这很有帮助。
- 杰夫
我在烟灰存储库中查看了build.xml。问题在于目标jastadd。JustAdd编译器使用Beaver作为解析器生成器,这也需要JFLEX作为用于处理的扫描仪生成器。FLEX文件。
只需遵循上述简单解决方案即可。确保将复制到Ant Lib目录的JFLEX-1.5.1.JAR文件重命名为" JFLEX.JAR",这全是我给您的第一个链接的文档中。
我这么晚回答了这个问题,因为我只是遇到了与Eclipse项目中的JFLEX一起使用的类似问题。
- 杰夫