[英]Opening files located in Java jar directory, not Current Working Directory
我有一個用NetBeans開發的Java桌面應用程序 ,我將其壓縮以分發給學生。 在此zip文件中,我具有.jar ,一個包含swing-layout jar的“ lib”目錄和一個名為“ sourcefiles”的目錄,該目錄包含該程序所需的所有文本文件。
所有工作正常,如果jar文件被雙擊,但在命令行中運行時( java -jar MyApp.jar
),它只能找到“sourcefiles”目錄下 ,如果你的第一張CD到該文件是在運行之前所在的目錄命令,有些學生忘記做的事情。 顯然,無法從我的代碼中更改當前工作目錄。 假設我位於MyApp文件夾中,則在我的代碼中將“ sourcefiles”的路徑作為相對路徑給出。 那么,我該怎么做才能使該程序可以從命令行運行而無需CD到包含目錄? 是否有將其添加到清單文件的東西?
使用Linux的學生通常會遇到此問題,但在Mac上也是一樣。 我認為在Windows上是相同的,但是我猜沒有Windows的學生從命令行運行它。
您不能更改默認目錄,但是可以獲取該類正在其上運行的Jar的目錄,並將其在代碼中用作基本路徑。
String jarLocation = ThisClass.class.getProtectionDomain()
.getCodeSource().getLocation().getPath();
通過此操作,您可以獲取jar所在的目錄。很可能您希望將其包裝為學生可以調用的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.