我有以下场景:一个Java Desktop应用程序,它使用Reflection调用Java Legacy类。传统模块执行一些本机操作(访问智能卡)。
在Eclipse上运行时一切正常:我将Java桌面应用程序作为Java项目,它有一组库,包括Java遗留JAR文件。
现在我已经从Eclipse项目创建了一个可运行的JAR文件:当我尝试访问Java Legacy层时,发出以下错误: java.lang.UnsatisfiedLinkError:本机库sunmscapi.dll已经加载到另一个类加载器中
让我感到困惑的是它为什么在Eclipse上运行正常,它使用与可运行的JAR文件相同的JDK设置?任何帮助
答案 0 :(得分:1)
实际上Eclipse在启动应用程序时没有执行可运行的JAR文件,只是添加了单个类路径条目(请参阅.classpath文件)。尝试仅在jar文件中导出桌面应用程序,然后使用-classpath添加所有其他库(包括遗留应用程序)。然后你拥有与Eclipse相同的环境,它们的输出应该不同。