組み込み Linux (BusyBox v1.12.4) で Java アプリケーションを実行しています。CDC 1.1 を使用しており、VM (cvm) のバージョンは CDC HI phoneme_advanced-Core-1.1.2-b111 です。
アプリケーションの主な目的は、いくつかのデータを収集し、GPRS 経由で送信することです (Apache コモンズ ライブラリの FTPClient を使用)。
アプリケーションは正常に動作していましたが、最近、ファイルを送信する前に圧縮する機能を追加しました。以下は、ファイルを圧縮するコードです。
public static boolean compressFile(String file, String fileCompressed)
{
boolean result = false;
try
{
Process process = Runtime.getRuntime().exec("tar -czvf " + fileCompressed + " " + file);
System.err.println("Compression in progress");
int returnValue = process.waitFor();
System.err.println("Finished compression");
BufferedReader stderror = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
s = stderror.readLine();
if (s == null)
{
result = true;
} else
{
result = false;
System.err.println(s);
}
} catch (IOException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);
} catch (InterruptedException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);
}
return result;
}
この機能を追加した後、アプリケーションがクラッシュし始めました! ログにはメモリエラーや例外は含まれておらず、実行されているシステムには正しい構成が欠けているため、syslog にも何も表示されません (機器メーカーは、次のバージョンで利用できるようになると私に言いました)。VM をデバッグ モードで起動することさえできません。
圧縮中にアプリケーションがクラッシュすることはなく、実行中にランダムにクラッシュするだけであることを付け加えておきます。問題は、圧縮が有効になっている場合にのみクラッシュすることです!
誰もこれを見たことがありますか?これをデバッグ/解決する方法について誰か考えがありますか?