我使用 javamail librairy (由Oracle开发),我遇到了一些问题。
当我使用来源调用项目或在本地或服务器上运行.jar ( java -jar mail.jar )时(在AIX Version 7.1,java版本“1.6.0”上运行),我收到邮件就可以了。
但是当我用程序(两者都在服务器上)调用.jar时,邮件发送停止。所以我尝试调试javamail库(带源代码)来理解它停止的原因。
使用Eclipse远程调试java我使用: java -Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = y -jar /users/java/mail.jar http://javarevisited.blogspot.fr/2011/02/how-to-setup-remote-debugging-in.html
...
我的第一个问题是 .jar停止: me = InetAddress.getLocalHost(); InternetAdress 类中的,没有错误消息。
...
我的第二个问题是,当我尝试进入 InetAdress 类并添加 System.out.println 时, .jar无法通过这个班级。至少不是我的:它使用JRE系统库类(因此不使用println)。
我尝试将JDK项目从1.8更改为1.5; 试图组织Build Path(使用Order and Export选项,添加java.net库并将其放在顶部或底部); 试图从jre lib文件夹中删除rt.jar;
没有任何改变......
我找到了第二个问题的一些问题,但这对我没有多大帮助:
https://community.oracle.com/message/12729913
...
那么如何强制JAVA项目使用.java文件而不是使用Eclipse的JRE lib .class文件?
...
javamail的来源: https://java.net/projects/javamail/pages/Home https://java.net/projects/javamail/downloads?page=1&path%5B%5D=source&theme=java.net
JDK的源代码(用javamail源代码完成): http://grepcode.com/project/repository.grepcode.com/java/root/jdk/openjdk/
答案 0 :(得分:1)
如果要在调试库时查看源文件,则应将源附加到JAR文件。在eclipse中有很多方法可以做到,其中一些你可以在这里查看
您还应确保JAR和源版本都匹配,最好是从Maven存储库下载JAR和源代码。