2012-10-19 54 views
1

我有一些爲多平臺(Windows,Linux,Mac)構建的外部C代碼,並且希望將它們全部打包在一個.jar文件中,以便這個.jar可以用作庫,而不管平臺如何。如何將多組原生類文件打包到一個jar中?

這將允許我通過同一個外部庫從計算機到計算機傳遞Java項目。

存在使用JNI調用代碼的現有類文件,這些類在不同平臺上有所不同。在當前狀態下,我們將具有不同類的罐替換爲針對特定平臺調用本地功能的罐。

有沒有辦法以這種方式打包它們,我可以動態加載正確的類文件,而無需使用Ant/Maven或創建抽象層?

回答

0

您無法將原始文件打包到jar中。類文件可以像常規類文件一樣。

如果需要,您可以將所有內容打包到一個zip文件中?作爲備選。

加載正確的文件:Class.forName()應該足夠了。儘管確保文件屬於你的課程路徑,或dynamically modify your class path to search from URLs

+0

您可以將原生文件打包成一個jar文件(這是目前完成的工作,每個平臺都有一個jar文件)。但是,我不想創建一個抽象層(如果使用Class.forName(),這將是必要的)。 – Lincoded

+0

@Lincoded你不想創建一個抽象層?這意味着你想從庫中調用函數而不需要存根樁Java類? –

+0

我們有現有的類調用本地實現中的函數,並且當前將不同平臺的jar文件中的類文件換出。我們希望將所有文件打包成一個jar文件。 – Lincoded

相關問題