2013-07-23 30 views
0

我會盡量簡單地說明問題。向現有的JAR文件添加新類(其中包含源代碼)

我有一個JAR文件,我使用Winrar進行提取。 (該jar文件包含一個開源的android庫)。
我想通過向庫中添加一個新類來修改這個JAR文件。

因此,這裏有我的步驟:
首先,我使用Eclipse,並設置相同Android的庫包名包名創建一個類。
其次,我將此java文件複製到庫中其他java文件的文件夾中。
三,我試圖通過使用javac的CMD編譯JAVA文件。

新的Java文件和庫的其他的.java和.class文件的路徑爲:C:\com\example\core\
新的Java文件的名稱是:"MyNewClass.java"
我通過CMD運行的命令是: javac C:\com\example\core\MyNewClass.java

但是,在編譯期間,我得到很多錯誤說:無法找到符號。

我一直在尋找這個問題的解決方案,但不知道如何解決它,並使新的JAR文件有另一個類,我創建了分開。

我錯過了什麼?

+0

如果您使用JAR瀏覽器,則可以將.cl​​ass文件拖放到其中。確保包路徑存在並匹配在課堂中聲明的方式。 –

+0

如果它是您正在使用的開源庫,爲什麼不能獲得源代碼,添加修改並重新編譯整個shebang?這似乎比編譯代碼和各種工具更容易維護。 –

+0

@idish:你在問我如何獲得一個你不提名的圖書館的源代碼?我沒有一點線索。你聲稱它是開源的,這意味着源代碼應該在某處可用。如果不是,它不是一個開源庫。 –

回答

1

按照早些時候的評論:

而不是試圖修改JAR ,您可以通過使用git克隆存儲庫或在鏈接的頁面右側點擊「下載ZIP」來訪問Universal Image Loader庫的完整源代碼。

獲取源代碼後,將該庫導入到IDE中。從那裏開始,您將能夠從頭開始構建整個事物,進行任何您喜歡的調整/修改等。

+0

太好了,謝謝。 – idish

+0

很高興能有幫助! –

0

您的類路徑可能是錯誤的,或者包名稱中可能存在一些錯誤。

編譯Java程序時,編譯器會創建一個所有正在使用的標識符的列表。如果找不到標識符所指的內容,則無法完成編譯。這就是找不到符號錯誤信息的意思,它沒有足夠的信息來拼湊Java代碼想要執行的內容。

0

嘗試:

javac -cp com/* C:\com\example\core\MyNewClass.java 

這應該使編譯器知道所有其他類的下COM/...

相關問題