-2

私はこれを理解できないようですか?dec.exeをparamで実行したくない

ここに私のファイル構造:

構造

ここで、マウスクリックで使用しているコードを示します。

Process process = null; 

try { 

    process = new ProcessBuilder("dec.exe",idir,odir).start(); 

} catch (IOException e2) { e2.printStackTrace(); } 

InputStream is = process.getInputStream(); 
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new  BufferedReader(isr); 

String line; 
String total = "";

try { 
    while ((line = br.readLine()) != null) { 
        total += line;
        txtrAsdasda.setText(total);
    }
} 

} catch (IOException e1) { e1.printStackTrace(); }

次のエラーが発生します。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.lang.ProcessBuilder.start(Unknown Source)
    at pw.ConverterUIApp$3.actionPerformed(ConverterUIApp.java:128)

...

java.io.IOException: Cannot run program "dec.exe": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
4

3 に答える 3

0

私はそれを自分で修正することができました.正しいリンクで正しいファイルを選択することがすべてです:

process = new ProcessBuilder("dec.exe",idir,odir).start(); 

エクスポートからの.jarの横にdec.exeを置きました。

于 2013-03-10T23:22:58.493 に答える
0

アプリケーションがパッケージ化されると、アプリケーション Jar に埋め込まれている間は実行可能ファイルを起動できなくなります。

このタイプの埋め込みリソースは、zip ファイル内の単なる Zip エントリであり、OS はこのリソースを認識または検索して実行することができません。

選択肢は 2 つあります。

  1. これらのリソースをアプリケーション Jar 内にパッケージ化するのではなく、アプリケーションと一緒にインストールしてください。これにより、簡単に呼び出すことができますProcessBuilder("dec.exe")(アプリケーションが同じディレクトリで開始されたと仮定します)
  2. 実行可能ファイル (およびその他のリソース) をresourcesフォルダーに配置し、実行時に抽出します。実行可能ファイルに必要なすべての関連ファイルを抽出することが不可欠です。
于 2013-03-10T23:34:16.843 に答える
-1

考えられる原因は、idirまたはodirがnullであるということです。

于 2013-03-10T23:11:56.873 に答える