[英]File not found when execution a bat file from a java program
我有這個曾經可以工作的代碼,但現在我發現程序找不到文件,但文件在那里。
這是我的代碼。 我的項目在C:\\Users\\user\\git\\project
,apps 文件夾是C:\\Users\\user\\git\\apps\\folder
。
ProcessBuilder pb = null;
pb = new ProcessBuilder("myApp.bat");
pb.directory(newFile("C:\Users\user\git\project\..\apps\folder"));
File log = new File("log");
pb.redirectErrorStream(true);
pb.redirectOutput(Redirect.appendTo(log));
Process p = pb.start();
assert pb.redirectInput() == Redirect.PIPE;
assert pb.redirectOutput().file() == log;
assert p.getInputStream().read() == -1;
我得到了Cannot run program "myApp.bat" (in directory "C:\\Users\\user\\git\\project\\..\\apps\\folder"): CreateProcess error=2, Can´t find file
您為 bat 文件指定了錯誤的文件夾路徑。
您正在指定
C:\\Users\\user\\git\\project\\..\\apps\\folder
但你說正確的文件夾是C:\\Users\\user\\git\\project\\..\\apps\\folder
。
換線
pb.directory(newFile("C:\\Users\\user\\git\\project\\..\\apps\\folder"));
到
pb.directory(newFile("C:\\Users\\user\\git\\project\\apps\\folder"));
..
指的是目錄中的更改。 所以你的實際路徑變成 C:\\Users\\user\\git\\apps\\folder 而不是 C:\\Users\\user\\git\\project\\apps\\folder
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.