0

グラフィカルユーザーインターフェイス用のJavaプログラムがあります。このJavaプログラムは、すでにコンパイルされているCプログラムを実行します。プログラムを実行可能にするためにJARファイルを作成します。結果として、私のCプログラムはJARファイルに含まれています。

私はそれらの行を使用します:

String[] Tab_arg =new String[6];

Tab_arg[0]="./src/generalisation.exe"; 
Tab_arg[1]=fileM.getAbsolutePath(); 
Tab_arg[2]=fileG.getAbsolutePath(); 
Tab_arg[3]=fichGA_absolutePath; 
Tab_arg[4]=fichGO_absolutePath; 
Tab_arg[5]=fileR.getAbsolutePath();

  try 
 {
    Process p =Runtime.getRuntime().exec(Tab_arg);
     BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
     String inputLine;
     while ((inputLine = in.readLine()) != null) System.out.println(inputLine);
} 
catch (IOException e) 
{
    e.printStackTrace();
}

問題は、JARファイルがUbuntuでは正しく動作するが、Windowsでは動作しないことです。

4

1 に答える 1

1

Windows用にコンパイルしたら、2つのバージョン(LinuxとWindows)をJARファイルに追加できます。あなたのコードにこれを追加することができます

if(System.getProperty("os.name").startsWith("Windows"))
    Tab_arg[0]=".\src\generalisation.exe";
else
    Tab_arg[0]="./src/generalisation";

Linuxバージョンに拡張子がない場合は、これでうまくいくはずです。

于 2012-08-27T14:47:11.000 に答える