首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止jar装入器加载特定的类?

如何防止jar装入器加载特定的类?
EN

Stack Overflow用户
提问于 2012-12-17 12:10:14
回答 1查看 1.3K关注 0票数 0

假设我有以下文件夹的项目结构

  • 一个
  • B
  • C

还有很多外部罐子。

现在,我正在尝试构建两个不同的可执行文件--像这个A+B,A+C这样的jars。

首先,我做了Eclipse导出->可执行->并为->保存脚本。所以它会生成Ant脚本和jar中的加载程序。现在我修改ant脚本以排除文件夹B

代码语言:javascript
运行
复制
    <fileset dir="C:/Users/Nikolay/bin">
        <exclude name="org/B"/>
    </fileset>

并保持jar-in-jar-loader.zip文件未被修改。

在构建jar之后,运行将出现以下错误:

代码语言:javascript
运行
复制
    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个项目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-17 12:35:34

创建两种不同的运行配置(Run -> Run配置.)并根据需要修改类路径选项卡中包含的库。

导出项目时,只需选择适当的配置即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13913904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档