将文件移动到外部jar后,执行挂起,没有错误

时间:2013-12-27 14:07:59

标签: java jar

我开发了一个简单的java程序来运行APDU命令。它运作正常。
文件结构是

/moc
   /omnikey
     --Applet.java
     --API.java
   /omnikey.api
   /omnikey.util
   ... another 3 more packages ...

现在,我想将所有这些额外的包提取到一个新项目中,只留下omnikey包(包含Applet.javaAPI.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或类似的东西来处理引用。我宁愿不去,至少现在。

1 个答案:

答案 0 :(得分:1)

决定回答这个问题,因为这没有合理的理由。

解决方案:
更改工作区,打开两个项目并链接它们。 Eclipse只是其中的一天。