我想通過VC++使用JNI並在類路徑中傳遞一個自定義目錄作爲UTF-8字符串 -Djava.class.path = c:\ myDir \ my。罐子如何通過C++通過JNI傳遞擴展的ASCII字符
這工作得很好,我可以使用的findClass
發現罐中的方法,但是,當目錄名稱包含任何擴展ASCII字符,然後返回findClass的例外NoClassDefFound。我想這是因爲JVM無法加載jar文件,而我在傳遞參數時做了錯誤。
這是我做的 1)創建一個std :: wstring jarPath(L「-Djava.class.path = C:\ÆËñœ\ my.jar」); 2)使用調用WideCharToMultiByte 3轉換的wstring的,以CP_UTF8)的UTF8字符串複製到optionString,只是調用JNI_CReateJavaJVM之前調用JNI_CreateJavaJVM
我試圖打印convertyed UTF8到一個日誌文件,它完美的打印。
有人請告訴CP_UTF8(在windows SDK WinN; s.h中定義)是不是JNI期望的? 如何調試此問題,非常感謝任何幫助。
在此先感謝 拉胡爾
我發現對JVM http://bugs.sun.com/view_bug.do;jsessionid=17ba063642304ad90e9249db234?bug_id=4858889 – Rahul 2011-06-17 03:09:18
嗨阿蘭以下錯誤, CP_ACP運作良好。但是你說的可能性存在,並且它很可能會失敗,但無論如何它只比支持127個ASCII字符好得多。 – Rahul 2011-06-17 04:18:37
我嘗試給JVM提供相對路徑,例如JAR位於我的產品安裝目錄中,該目錄中還包含其自己的JVM(位於當前安裝目錄中)。所以我想我會給JVM的相對路徑。但是這不起作用。 – Rahul 2011-06-17 04:20:46