亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

防止 jar 在網絡驅動器上運行

防止 jar 在網絡驅動器上運行

拉風的咖菲貓 2022-11-30 11:12:08
可執行 jar 分發給每個網絡驅動器的用戶。我想防止用戶直接在網絡上運行它,因為它會導致性能和其他問題。一種解決方案可以是檢查執行路徑并將其與網絡驅動器路徑進行比較,但是如果事先不知道網絡驅動器路徑怎么辦?還有其他可能嗎?
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

我不認為你可以用純 Java 做到這一點。我很確定您需要運行外部命令或調用本機代碼來檢測 JAR 文件是否在網絡共享上。

您需要做的第一部分是獲取 JAR 文件的絕對路徑:

Class mainClass = MyMainClass.class;File jarFile = new File(mainClass.getProtectionDomain()
                                 .getCodeSource()
                                 .getLocation()
                                 .toURI());

我在 github 上找到了一個由 Aaron Digulla 編寫的“要點”,它完成了任務的第二部分:

Aaron 的代碼采用 Windows 絕對路徑,提取盤符,然后運行 Windowsnet use <drive-letter>:命令來測試該驅動器是否為共享驅動器。


另一種方法是實現批處理文件執行以下操作的邏輯:

  • 提取 JAR 文件的驅動器名稱

  • 用于net use ...測試共享驅動器

  • 使用相同的技術檢查 Java 安裝是否不在共享驅動器上1

  • 使用java命令啟動應用


最后,拒絕在共享驅動器上運行可能不是一個好主意。用戶可能有這樣做的原因,而您并不知道。我建議提示用戶并讓用戶選擇繼續?;蝾愃频臇|西。

或者,在應用程序的安裝說明中記錄建議將 JRE/JDK 和應用程序安裝在共享驅動器(或等效驅動器)上。


查看完整回答
反對 回復 2022-11-30
  • 1 回答
  • 0 關注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號