我想通過網絡發送類數據,我需要從類的名稱中獲取.class文件中的二進制數據。我想使用默認的類加載器,然後通過網絡發送加載的數據。我怎樣才能做到這一點?我正在使用scala 2.9.0.1和jre6如何從Class [_]對象獲取二進制數據?
回答
RMI允許您從整個網絡加載類文件。這可能比滾動您自己的解決方案更容易。看看http://docs.oracle.com/javase/6/docs/technotes/guides/rmi/codebase.html
如果我知道.class文件的路徑,整個事情就會設置並正常工作。但是如果我想將它打包到jar文件中,它會失敗,因爲我無法確定類文件的路徑。 – laci37 2012-01-15 13:14:43
用文件分隔符替換完全限定類名中的句點,並將「.class」附加到結果中,這將成爲類路徑中.class文件的位置。然後使用ClassLoader以流的形式訪問該文件。
val location = className.replaceAll("\\.",File.separator) + ".class"
val stream = ClassLoader.getSystemClassLoader().getResourceAsStream(location)
//send the stream to your remote location
這似乎不適用於jar文件。 – laci37 2012-01-16 10:18:00
它應該在類路徑中拾取任何東西,無論它是否在jar中。如果你遇到了麻煩,我想這個問題更可能是你正在使用的ClassLoader。如果你在一個名爲MyClass的類上嘗試這個,請嘗試如下所示:MyClass.class.getClassLoader()。getResourceAsStream(....) – 2012-01-16 18:57:44
- 1. 從HBase獲取二進制數據
- 2. 二進制反序列化:獲取對象數據
- 3. 從NSData對象中提取二進制數據
- 4. 從二進制數據中讀取對象
- 5. 如何從sql查詢中獲取二進制數據?
- 6. 如何從Django的JavaScript獲取二進制數據?
- 7. 如何從下載鏈接獲取二進制數據
- 8. java如何從二進制數據獲取文件名?
- 9. Python如何通過SWIG從C++獲取二進制數據(char *)?
- 10. 從二進制獲取位
- 11. 如何從JSON對象獲取數據?
- 12. 如何從Json對象獲取數據?
- 13. 如何從此對象獲取數據?
- 14. 如何從對象中獲取數據
- 15. 如何從NSNotification對象獲取數據?
- 16. 如何獲取*二進制照片數據*從(v1.0)獲取Photo API?
- 17. 使用NSFetchRequest獲取二進制數據
- 18. 使用SqlDataReader獲取二進制數據
- 19. 如何將二進制數據插入Class :: DBI的BLOB列中?
- 20. 從Class對象中獲取類名
- 21. 提取二進制數據
- 22. 從串口讀取二進制數據
- 23. 讀取二進制數據
- 24. 從URL中byte []數組獲取Android的二進制數據(Flatbuffers)
- 25. 從二進制文件中讀取對象的任意數量
- 26. 從二進制數據
- 27. 從udp()對象編組任意長度的二進制數據
- 28. 如何在Worklight Web客戶端獲取二進制數據
- 29. 如何獲取PHP的二進制文件數據
- 30. 如何通過scala獲取二進制數據流?
你想發送你的類的實例中的數據我們的類本身的字節代碼? – 2012-01-15 09:23:51
我正在使用scala遠程演員。建立連接之後,我將我的課程實例從服務器發送到客戶端。如果在反序列化的時候我找不到類定義,我會向服務器發送一個請求。問題在這裏,如果服務器打包在jar文件中,我找不到要發回的內容。 – laci37 2012-01-15 13:19:26