第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java - 嘗試執(zhí)行 shell 腳本時(shí)權(quán)限被拒絕

Java - 嘗試執(zhí)行 shell 腳本時(shí)權(quán)限被拒絕

慕的地6264312 2021-08-25 16:25:33
我正在創(chuàng)建一個(gè) Java 程序,該程序?qū)?zhí)行 JAR 文件以在我的機(jī)器上本地部署數(shù)據(jù)庫(kù)。為此,我需要從 shell 腳本執(zhí)行 JAR 文件(這需要自動(dòng)化,而不是手動(dòng)部署)?!癹ava -jar some-jar-SNAPSHOT.jar”問(wèn)題是,每當(dāng)我嘗試訪問(wèn)任何類型的 shell 腳本時(shí),我都會(huì)收到錯(cuò)誤 = 13,權(quán)限被拒絕。我已經(jīng)使用 sudo chmod 777 使我的目錄為所有用戶以及 JAR 文件本身讀取、寫(xiě)入、執(zhí)行。即使我嘗試更改目錄時(shí)也會(huì)出現(xiàn)問(wèn)題。這是我用來(lái)執(zhí)行命令的代碼片段:String[] jarCommand = {"java -jar some-jar-SNAPSHOT.jar"};        Process process = Runtime.getRuntime().exec(jarCommand);        System.out.println("Jar File accessed");編輯:當(dāng)我嘗試執(zhí)行一個(gè)簡(jiǎn)單的命令時(shí)會(huì)出現(xiàn)此權(quán)限問(wèn)題,例如:String[] cd = {jarDirectory.getAbsolutePath(), "cd"}; Runtime.getRuntime().exec(cd);這是在通過(guò) chmod 設(shè)置文件的權(quán)限之后。我查看了大量不同的類似問(wèn)題,但沒(méi)有一個(gè)解決方案解決了我的問(wèn)題。任何幫助是極大的贊賞。
查看完整描述

2 回答

?
天涯盡頭無(wú)女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

這與 JAR 文件的執(zhí)行權(quán)限無(wú)關(guān)。實(shí)際上,JAR 文件只需要可讀即可。

如果您的問(wèn)題的標(biāo)題是準(zhǔn)確的,這與 Java 程序是否能夠讀取和執(zhí)行您正在談?wù)摰?strong>shell 腳本有關(guān):

  • shell 腳本本身必須可由試圖運(yùn)行它們的有效用戶執(zhí)行。例如,腳本本身需要設(shè)置相關(guān)的執(zhí)行位。

  • shell 腳本的路徑需要從根目錄一直讀?。ㄓ捎行в脩?.....)。(或當(dāng)前目錄,如果您使用的是相對(duì)于點(diǎn)的相對(duì)路徑名?;蛘吣夸?$PATH ... 如果您使用的是簡(jiǎn)單的命令名稱。)


奇怪的是,這段代碼根本不是試圖運(yùn)行 shell 腳本。那是一個(gè)簡(jiǎn)單的java命令。不涉及 shell 腳本。

如果失敗并出現(xiàn)“權(quán)限被拒絕”錯(cuò)誤,則該java命令不可執(zhí)行,或者 JAR 文件不可讀。

我認(rèn)為您需要向我們提供更多信息;例如所有相關(guān)的輸出、真實(shí)的代碼和真實(shí)的文件/目錄名稱和權(quán)限。


我的程序首先嘗試導(dǎo)航(通過(guò) CD)到包含 JAR 文件本身的目錄:

我假設(shè)您意識(shí)到您的嘗試:

    String[] cd = {jarDirectory.getAbsolutePath(), "cd"};
    Runtime.getRuntime().exec(cd);

不起作用。它更改子進(jìn)程的當(dāng)前目錄,但這對(duì)父進(jìn)程或您運(yùn)行的下一個(gè)子進(jìn)程沒(méi)有影響。您應(yīng)該使用ProcessBuilderdirectory(File),特別是它可用于為子進(jìn)程選擇不同的當(dāng)前目錄。

這意味著您可能位于錯(cuò)誤的目錄中,這可能會(huì)導(dǎo)致“權(quán)限被拒絕”問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2021-08-25
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

我不知道為什么這會(huì)導(dǎo)致權(quán)限被拒絕,但這應(yīng)該是

String[] jarCommand = {"java", "-jar", "some-jar-SNAPSHOT.jar"};

否則,exec 調(diào)用將查找名為“java -jar some-jar-SNAPSHOT.jar”的可執(zhí)行文件,盡管我希望這會(huì)導(dǎo)致 ENOENT 而不是 EPERM。


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 2 回答
  • 0 關(guān)注
  • 578 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)