我开发了一个简单的java程序来运行APDU命令。它运作正常。
文件结构是
/moc
/omnikey
--Applet.java
--API.java
/omnikey.api
/omnikey.util
... another 3 more packages ...
现在,我想将所有这些额外的包提取到一个新项目中,只留下omnikey
包(包含Applet.java
和API.java
)来创建具有所需功能的.jar
所以我创建了一个新项目,复制了所有文件,修复了包引用并链接了所需的外部jar ...现在它不起作用......
“新”文件结构就像这样
/apdu
/apduservice
/api
... files ...
/util
... files ...
/moc
/omnikey
Applet.java
API.java
出于某种原因,当我从apdu项目中声明某些内容时,执行会挂起。如果我做
System.out.println("flag 1");
try {
apduservice.api.MocService ser = new apduservice.api.MocService(null);
} catch (CardServiceException e) {
e.printStackTrace();
}
System.out.println("flag 2");
我没有错误跟踪,输出为flag 1
。执行不会停止,直到强迫它。
如果我在之前的配置中尝试相同的操作,一切正常。
System.out.println("flag 1");
try {
omnikey.api.MocService ser = new apduservice.api.MocService(null);
} catch (CardServiceException e) {
e.printStackTrace();
}
System.out.println("flag 2");
//output flag 1 and flag 2
我不确定错误的位置。我尝试将第二个项目导出为jar,作为runnable jar,将其作为Eclipse中的项目引用,并且没有任何结果。我已经尝试过寻找解决方案,但由于我没有收到任何错误,因此很难知道要寻找什么。
如果有人可以发光,我将不胜感激。
PD:似乎不是Eclipse的问题,我在其他项目中引用了项目,并且工作正常...... PD2:我没有使用Maven或类似的东西来处理引用。我宁愿不去,至少现在。
答案 0 :(得分:1)
决定回答这个问题,因为这没有合理的理由。
解决方案:
更改工作区,打开两个项目并链接它们。 Eclipse只是其中的一天。