![](/img/trans.png)
[英]Why can't I find the API documentation for com.sun.* classes in rt.jar?
[英]Can I add classes to sun's rt.jar file?
我下載了Javax.mail軟件包。 我有jdk1.6.0_11。 問題是...我無法讓javac或java找到那些類! 我可以使用JCreator LE(將郵件罐添加到其搜索列表中)來編譯應用程序,但是,當我嘗試在命令窗口中運行該應用程序時,它會失敗。
我可以在不損害jdk安裝的情況下將這些新類添加到rt.jar嗎? 我知道java已將其連接起來以在那里查找類。 (而且,郵件類在javax包中-似乎可以將它們合理地添加到rt.jar中的javax文件夾中。
謝謝! 菲爾·達德
不,你不能,你也不應該。
相反,找出類加載器的問題(可能是路徑?)。 對於下一個需要訪問的庫,您將需要它。
rt.jar的混亂意味着您不能在任何其他JVM上運行。
向rt.jar添加內容似乎是個壞主意,即使它可能且容易實現。
嘗試從命令行編譯您的應用程序,如下所示:
javac -cp <path_to_3rd_libs>/jarfile.jar . MainClass.java
如果編譯器仍然抱怨javax.mail軟件包,請嘗試解壓縮/檢查jar文件,以查看是否存在javax.mail軟件包(及其預期的內容)。
(在Windows上,使用7zip可以輕松檢查jar文件。)
絕對沒有。 如果您從命令行運行您正在運行的命令,我們將為您指明正確的方向,但是很可能您只是缺少一個classpath參數。
java -classpath /path/to/mail.jar MyClass
您需要了解CLASSPATH概念,該概念允許您將單獨的類和包含類的jar文件添加到已定義類的“ Universe”中,這些“類”可用於要編譯和/或運行的代碼。 它的概念類似於Windows世界中的PATH變量。
對於Windows命令行,這是文檔:
http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html
Java教程沒有為這個特定概念寫得很好,這使我感到驚訝:
http://java.sun.com/docs/books/tutorial/essential/environment/paths.html
您很可能需要以下內容:
C:>設置CLASSPATH = c:\\ javamail \\ first.jar; c:\\ javamail \\ second.jar
之后,java和javac都應該知道這些類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.