繁体   English   中英

将类加载到以编程方式创建的.jar文件中

[英]Loading a class in a .jar file created programmatically

我的目标是:使用SableCC在运行时生成多个解析器/词法分析器,并加载它们的实例进行解析和词法分析。

所以我想我的步骤将是:

  1. 使用SableCC生成.java文件。 我想我已经做到了,很好。

  2. .java文件编译为.class文件。 我使用JavaCompiler做到了这一点。 我认为这也很好。

  3. 将生成的文件放在.jar文件中,保留文件结构。 我使用模板作为模板。 使用JarBrowser检查.jar文件显示软件包的文件结构已保留。 使用它,Jar目录看起来与常规的.jar文件相同。 但是,使用JarBrowser,我的jar不会显示在“ CLASSPATH目录”下。 这使我相信我的.jar文件未正确创建。

  4. .jar文件加载到URLClassLoader的实例中。 我正在尝试使用Class.forName()加载它,但似乎无法正常工作。

每当执行步骤4时,我都会收到java.lang.ClassNotFoundException 有人对这是为什么有任何想法吗?

原来,我在文件/目录名称的前面加了一个斜杠。 我从文件名中截断了父目录,但是没有考虑到父目录的尾部斜杠,所以/dir1/file1代替了dir1/file1 我猜JAR文件很挑剔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM