Java Web サービスに次のコードがあります。
public boolean makeFile(String fileName, String audio)
{
if (makeUserFolder())
{
File file = new File(getUserFolderPath() + fileName + amr);
FileOutputStream fileOutputStream = null;
try
{
file.createNewFile();
fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(Base64.decode(audio));
return true;
}
catch(FileNotFoundException ex)
{
return false;
}
catch(IOException ex)
{
return false;
}
finally{
try {
fileOutputStream.close();
convertFile(fileName);
} catch (IOException ex) {
Logger.getLogger(FileUtils.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
else
return false;
}
public boolean convertFile(String fileName)
{
Process ffmpeg;
String filePath = this.userFolderPath + fileName;
try {
ProcessBuilder pb = new ProcessBuilder("ffmpeg","-i",filePath + amr,filePath + mp3);
pb.redirectErrorStream();
ffmpeg = pb.start();
} catch (IOException ex) {
return false;
}
return true;
}
以前は機能していましたが、何らかの理由で ffmpeg 変換を実行できなくなりました。ファイルに問題があると思いましたが、ターミナルからコマンドを実行した後、エラーは発生しませんでした。おそらく権限の問題だと思いましたが、ファイルを保存しているフォルダーにすべての権限が付与されています。プロセスの実行後に入力 BufferedReader ins が null に設定されていることに気付きました。何が起こっているのか分かりますか?