簡體   English   中英

我可以將類添加到sun的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上運行。

您應該在類路徑中指定jar文件:最好在命令行中使用-cp選項,但也可以使用CLASSPATH環境變量。

或者,您可以在java.ext.dirs系統屬性中指定其目錄 有關更多詳細信息,請參見擴展機制文檔

您不應該在rt.jar周圍弄亂。 這絕對不是使額外的jar文件可用的方法-類似於嘗試將Microsoft Word添加到Windows內核;)

向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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM