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

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

.jar 在 args 中傳遞有效文件時未運行

.jar 在 args 中傳遞有效文件時未運行

開心每一天1111 2021-09-12 20:19:37
我正在構建一個應用程序,它通過 XML 文件獲取輸入并基于它執行許多操作。我知道該應用程序有效,因為我可以直接在代碼中為 XML 提供一個文件,并且它會按原樣運行。當我嘗試通過打包的 .jar 的命令行參數將路徑傳遞到 XML 文件時,問題就出現了。我的主要看起來像這樣:    public static void main(String[] args) {    LogWriter.openWriter();    LogWriter.log("Main start.");    Controller controller = new Controller();    LogWriter.log("Controller created.");    List<Parameters> parameters = new ArrayList<Parameters>();    for (int i = 0; i < args.length; i++) {        LogWriter.log("Got arg: " + args[i]);        File file = new File(args[i]);        LogWriter.log("Parameter file: " + file.getAbsolutePath());        if (file.exists()) {            LogWriter.log("File exists. Getting parameters.");            Parameters para = controller.getParameters(file);            LogWriter.log("Attempting to add parameters.");            parameters.add(para);            LogWriter.log("Added parameters.");        } else {            LogWriter.log("File is not valid.");        }    }}我用來運行它的腳本如下所示:java -jar PDFRedacter.jar C:\Users\je\Downloads\XMLConfig.xml真正奇怪的是,只有當我給它一個有效文件時它才會失敗。如果我提供無效文件,它會運行,并記錄該文件無效,并且如前所述,如果我直接在代碼中輸入有效文件,它也會運行。但是,在批處理中寫入有效路徑時,甚至不會記錄第一個“主啟動”,因此代碼根本不會運行。這可能是一些訪問問題嗎?編輯:記錄器不是我的問題,無論有沒有有效文件,它都能按預期工作?!盁o效文件”日志示例:主要開始??刂破鲃摻?。得到 arg:C:\Users\je\Downloads\XMLConfig參數文件:C:\Users\je\Downloads\XMLConfig文件無效。澄清一下,問題實際上不是讀取文件。問題是,當我通過批處理腳本提供有效文件時,我的代碼似乎根本沒有運行。最終編輯:事實證明問題只是我的 .jar 的包裝,缺乏依賴。正如其他人所建議的那樣,我的記錄器只是在執行結束時才刷新,這就是為什么它沒有寫任何內容的原因。感謝您的意見。
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

正如托馬斯懷疑的那樣,程序失敗肯定有另一個原因,因為您的函數應該可以工作。如果您將其簡化為檢測文件是否存在,并且一旦您使其正常工作,請一個接一個地添加參數列表、控制器和記錄器,您可能會找到失敗的原因?!?/p>


這是我測試的示例 - 它適用于所有現有文件或目錄。


public static void main(String[] args) {

    for (int i = 0; i < args.length; i++) {

        System.out.println("Got arg: " + args[i]);

        File file = new File(args[i]);

        System.out.println("Parameter file: " + file.getAbsolutePath());

        if (file.exists()) {

            System.out.println("File exists. Getting parameters.");

        } else {

            System.out.println("File is not valid.");

        }

    }

}


查看完整回答
反對 回復 2021-09-12
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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