我的目标是:使用SableCC在运行时生成多个解析器/词汇器,并为解析和词法加载它们的实例。
所以我想我的舞步是:
.java生成SableCC文件。我想我已经做到了,好吧。.java文件编译为.class文件。我用JavaCompiler做了这件事。我觉得这也挺好的。.jar文件中,保留文件结构。我使用这作为模板完成了这一工作。使用.jar检查JarBrowser文件显示包的文件结构被保留。使用它,Jar看起来与常规的.jar文件相同。但是,使用JarBrowser,我的jar不会出现在"CLASSPATH目录“下。这使我相信我的.jar文件没有被正确创建。.jar文件加载到URLClassLoader的实例中。我正在尝试使用Class.forName()加载它,但它似乎不起作用。每当我做第4步时,我就会得到一个java.lang.ClassNotFoundException。有没有人知道这是为什么?
发布于 2012-11-10 19:10:00
原来,我有一个斜杠作为文件/目录名称的前缀。我从文件名中截断了父目录,但是没有考虑父目录中的尾随斜杠,所以/dir1/file1被执行,而不是dir1/file1。我想JAR文件很挑剔。
https://stackoverflow.com/questions/13319256
复制相似问题