私の戦争では、私はファイルを持っていexe
ますWEB-INF\classes\
このファイルを Java コードで実行するにはどうすればよいですか (このファイルへのパスを指定するにはどうすればよいですか) ?
command = " ? ";
Process x = p.exec(command);
私の戦争では、私はファイルを持っていexe
ますWEB-INF\classes\
このファイルを Java コードで実行するにはどうすればよいですか (このファイルへのパスを指定するにはどうすればよいですか) ?
command = " ? ";
Process x = p.exec(command);
次のアプローチが機能する可能性があります。
1) 実行可能ファイルのフル パスを準備します。
ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/classes/executable");
2) 通常どおりに実行します。
String[] cmd = { fullPath /*[...] arguments */};
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
これは簡単な例です。ProcessBuilderについての詳細もお読みください。
これは悪い考えです。.war パッケージがほぼすべてのサーバーで実行され (「.war はプラットフォームに依存しない」)、.exe ファイルが 1 つのアーキテクチャ用にコンパイルされているという単純な事実を想像してみてください。
プラットフォームに依存しない部分とプラットフォームに依存する部分を分離するためだけに、.exeを外部プログラムとして実行することをお勧めします。次に、Javaでオペレーティングシステムをテストし、これに基づいて目的の外部プログラムを実行できます.
同様の質問でこのリンクを読んでください。
Web アプリケーション内でファイルの実際の場所を見つける最善の方法は、ServletContext.getRealPath を使用することです ( http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(javaを参照)。 .lang.文字列) )
セッションからそのオブジェクトにアクセスできます...