假设我有以下文件夹的项目结构
还有很多外部罐子。
现在,我正在尝试构建两个不同的可执行文件--像这个A+B,A+C这样的jars。
首先,我做了Eclipse导出->可执行->并为->保存脚本。所以它会生成Ant脚本和jar中的加载程序。现在我修改ant脚本以排除文件夹B
<fileset dir="C:/Users/Nikolay/bin">
<exclude name="org/B"/>
</fileset>并保持jar-in-jar-loader.zip文件未被修改。
在构建jar之后,运行将出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/B
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:56)
Caused by: java.lang.ClassNotFoundException: org.B
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 3 more,但我确信B类没有在A.中使用
JarRscrLoader似乎试图在应用程序启动时加载所有列出的类。我怎样才能阻止它?
请不要建议我将Eclipse的代码分成2-3个项目。
发布于 2012-12-17 12:35:34
创建两种不同的运行配置(Run -> Run配置.)并根据需要修改类路径选项卡中包含的库。
导出项目时,只需选择适当的配置即可。
https://stackoverflow.com/questions/13913904
复制相似问题