我正在研究一個Java應用程序,當然這個應用程序可以在USB操作系統上運行。對於Mac用戶,我將jar(App和更新程序)捆綁到Apple .app程序中。現在:讓罐子互相啓動並使用棒子上的相關文件夾路徑的最佳方式是什麼?我問,因爲我注意到,在Mac上它就像.app文件夾是啓動的文件(而不是內部的jar),因此父目錄是所有文件將被存儲的工作目錄。在Windows和Linux上,它只是一些MyApp.app文件夾,文件將在裏面。 通過代碼切換情況和路徑真的是解決這個問題的唯一方法嗎? 謝謝Windows,Mac和Linux上的Java程序(Unix)
1
A
回答
2
您可以向JVM詢問給定類的物理位置。 From http://www.exampledepot.com/egs/java.lang/ClassOrigin.html:
// Get the location of this class
Class cls = this.getClass();
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation(); // file:/c:/almanac14/examples/
即使對於jar文件,這也可以工作。
當你知道位置時,你可以從那裏導航。
1
相關問題
- 1. 程序掛在Linux和Windows上,似乎在Mac上工作
- 2. 如何在Linux,Mac和Windows上安裝安裝程序?
- 3. 在Windows和Linux上運行的Visual Java應用程序
- 4. 在WINDOWS上編譯Unix終端上的Java程序
- 5. 在Windows和Linux上運行C++程序
- 6. 在Mac和Windows上的Java安裝
- 7. 如何從Windows測試Unix上的Java程序?
- 8. 爲java web應用程序(linux和Windows)創建安裝程序
- 9. UNIX,Linux和Windows的進程內存限制和地址空間
- 10. 同樣的ASP.NET Web應用程序,但在Windows和Mac-OS,UNIX或Linux不同的性能
- 11. 在Windows/Mac/Linux上的命名管道?
- 12. Java應用程序Windows與Mac OS X
- 13. 在windows上使用java程序調用unix sql腳本
- 14. 在Unix和Windows下運行程序
- 15. C++簡單的GUI爲Windows,Linux和Mac
- 16. Linux/Windows for Java雲應用程序?
- 17. Java Windows/Linux程序Alt Tab循環
- 18. Java主題:在Windows和Linux上
- 19. UNIX編程linux
- 20. 在Mac,Windows和Linux上使用CFFI和線程支持的Common Lisp實現?
- 21. 在Windows和Linux上部署C#Windows窗體應用程序
- 22. 如何在Windows和Mac上爲Java應用程序設置適當的字體?
- 23. 重新啓動一個Java應用程序的Linux和Windows
- 24. gui代碼在windows和linux上工作,但沒有在mac上
- 25. 在Mac上運行C#(windows)程序
- 26. 在沒有符號的Windows和Mac OS X/Linux上的Callstack
- 27. Mac上的Java OutOfMemory,在Windows上工作
- 28. Unix/Linux中的程序配置數據
- 29. 從Windows,Mac和Linux上的位置檢索文件
- 30. Linux,Mac和Windows上的常見文件系統屬性
我需要類的位置來做到這一點,或者我得到了什麼錯?還有一個問題是,.app文件夾內所需的jar文件不在lib文件夾中,因此在啓動時由控制檯/運行時引發ClassNotFoundExceptions。 – Magreet 2011-06-04 13:59:22
我得到了一個解決方法1.綁定.app 2.進入.app並將jar移動到lib文件夾中3.從.app doubleclick和Runtime.getRuntime()。exec()開始工作...但這並不漂亮: -/ – Magreet 2011-06-04 14:05:29
這聽起來像你沒有按照預期的方式去做。你應該使用官方的Apple jar捆綁器來創建一個不錯的捆綁包。 – 2011-06-04 14:25:43