Webアプリケーション(Windows + Primefaces 5 + Tomcat 8)からPascalで.exeファイルを開発しようとしています。プログラムは私がそれを読むつもりであるテキストファイルを生成するが、それはそれを行う許可を持っていないようだが、例外は投げられなかった。ここでJava Webアプリケーションから.exeファイルを実行できない
は、私はパスを選択する方法である:
String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/WEB-INF/lib/");
projeto.setQtde(1);
this.esquemas = gerenciarProjeto.realizarCorte(projeto, usuario, path+"/");
、ここでは、私がプログラムを呼び出す方法です:
Runtime rt = Runtime.getRuntime();
Process pc = rt.exec(this.caminho+"cortebi.exe");
InputStreamReader isr = new InputStreamReader(pc.getErrorStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null){
System.out.println(line);
}
System.out.println("</ERROR>");
int exitVal = pc.waitFor();
System.out.println("Process exitValue: " + exitVal);
私は私のプロジェクトのルートに.exeファイルを置くかのことを実現し、 Eclipseを管理者として実行します。しかし、配備後も同じようにWebアプリケーションのルートに配置する方法がわからないので、別の場所に置いてみましたが、何もしませんでした。
あなたのアプリケーションは 'Admin'権限で' Windows'で動作しますか? – 11thdimension
実際、私は知らないが、ここの地方の大学のためであり、物事はあまり明確ではない。私が.exeファイルに書き込み権限を与えることができれば、それは十分だろう。 –
おそらく、Linux上で 'exe'ファイルを実行することができないからです。それ以外の場合は、実行可能ファイルをWARに埋め込み、一時ディレクトリに保存してJava ProcessBuilderを使用して実行できます。しかし、これは、コンテナが管理者権限で開始された場合にのみ機能します。これは、セキュリティ上の理由からおそらくそうではないでしょう。とにかくexeを実行したいのはなぜですか? – 11thdimension