簡體   English   中英

Windows上的SVN Java綁定(JavaHL)配對JAR和本機庫二進制文件?

[英]Paired JAR and native library binaries for SVN Java bindings (JavaHL) on Windows?

我正在編寫一些直接使用Subversion(SVN)Java綁定(JavaHL)的代碼(其中JavaHL包含本機庫和瘦Java包裝器)。 在Linux(Ubuntu 12.04)上這沒有問題:包libsvn-java安裝了本機庫和\\usr\\share\\java\\svn-javahl.jar ,所以我只是引用后者而去了。

在Windows上,我知道這對(JAR +本機庫)沒有這樣的干凈包裝。 我知道SlikSVN包含一個JavaHL實現,但安裝它似乎只是安裝本機庫 (它放在PATH上)。 是否有任何東西可以提供兩者的清潔包裝? (如果SlikSVN 確實打包了JAR,那我就沒想到了,搜索整個驅動​​器什么都沒發現......)

作為一種解決方法,我手動構建了JAR文件(下面的詳細信息可能對人們有用)。 但似乎Java包裝器和本機庫的“匹配”非常精確:當我從后來的SVN源代碼(而不是匹配我的確切SlikSVN SVN版本)構建JAR作為測試時,我在本機中遇到致命錯誤代碼(EXCEPTION_ACCESS_VIOLATION)。 也許我不走運但是,如果它非常敏感,我需要為用戶可能安裝的每個潛在版本的SlikSVN(以及SVN)提供一個JAR庫(或限制他們的SlikSVN選擇,或者有一些傾向於 - 錯誤自動構建過程,需要他們安裝JDK)。 所有糟糕的選擇:-(

手動解決方法(不好!)

我有SlikSVN 1.8.10: svn --version報告版本1.8.10-SlikSvn-1.8.10-X64

所以我從標記的SVN版本中獲得了Java包裝器源代碼。 (您也可以從主站點的源代碼下載 。)

svn export http://svn.apache.org/repos/asf/subversion/tags/1.8.10/subversion/bindings/javahl/src

將此(沒有依賴項)編譯到JAR中,並使用它,與SlikSVN本機庫一起正常工作。

PS我知道我可以使用SVNKit來避免這樣做,但我正是這樣做,以便依賴於SVNKit的許可原因(加上JavaHL API無論如何都很好而且相當高級,還有其他更喜歡使用“官方”原生JavaHL實現的理由。

WANdisco二進制文件中應包含JavaHL。

http://www.wandisco.com/subversion/download

我自己使用它們已經有一段時間了(通常不使用Windows)。 但是WANdisco有依賴JavaHL的工具,所以我無法想象Windows二進制文件缺少JavaHL。

[問題作者編輯完成詳細]

您需要安裝(Windows)Subversion客戶端( 而不是 SmartSVN),並確保選中該框以將其添加到Windows PATH 這將'配對'JAR存儲在安裝目錄中(以及本機庫)。 但是 ,WANDisco只提供32位安裝(請參閱此論壇帖子 ),因此這不適用於64位Windows。 此外,JAR僅包含API的Apache版本,這些版本是為Subversion 1.7添加的。 如果您使用舊的org.tigris.subversion.javahl軟件包API與1.7之前的SVN客戶端兼容,則仍需要手動構建JAR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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