强制JAVA项目使用.java文件而不是JRE lib .class文件(使用Eclipse)

时间:2016-06-06 08:42:03

标签: java eclipse jar

我使用 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

How can I navigate to a .java file instead of a .class file with sourcepath specified in the classpath?

...

那么如何强制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/

1 个答案:

答案 0 :(得分:1)

如果要在调试库时查看源文件,则应将源附加到JAR文件。在eclipse中有很多方法可以做到,其中一些你可以在这里查看

    1. 选择任何Java项目
    2. 展开参考图书馆
    3. 选择任何JAR文件,在我们的案例中是rt.jar,它是Java运行时
    4. 右键单击并转到属性
    5. 通过浏览源路径附加源代码

了解详情:http://javarevisited.blogspot.com/2012/12/how-to-attach-source-in-eclipse-Jar-JDK-debugging.html#ixzz4ArDVQsub

您还应确保JAR和源版本都匹配,最好是从Maven存储库下载JAR和源代码。