0
想象我有文件夹如何防止jar-in-jar-loader加载特定的类?
- 一个
- 乙
- Ç
和许多外部罐的下列项目结构。
现在我正在尝试构建两个不同的可执行文件,如A + B,A + C。首先,我做了Eclipse - > Export - > Executable Jar并为Ant保存脚本。所以它会生成Ant脚本和jar-in-jar-loader。现在我修改ant脚本来排除文件夹B
<fileset dir="C:/Users/Nikolay/bin">
<exclude name="org/B"/>
</fileset>
,并保持jar-in-jar-loader.zip
文件修改。
建设罐子运行后给出了这样的错误:
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个项目。
它不是关于图书馆,它是关于类或文件夹 –
哦,对此感到抱歉。如果选择“将所需的库提取到生成的JAR中”会发生什么?至少对我来说,Eclipse不包括jar-in-jar加载器,因此不包含自定义类加载器。还请检查生成的.jar文件中的META-INF目录是否存在任何依赖关系。 – SirRichie
看来,在Eclipse运行配置我不能配置从构建路径排除特定的类。在META-INF中,不存在对类的依赖关系,只对库存有依赖关系。 –