Linux で PHP スクリプトから Swing Java アプリケーションを呼び出す必要があります。Javaアプリケーションはswingを使用していますが、そのメインフレームは見えないため、DISPLAY envを設定した後. variable tty2 から (x11 なしの端末から) 実行できました。問題は、PHP スクリプトから同じことができないことです。次のスニペットを使用します。
$sys = system("export DISPLAY=:0.0", $output);
$sys = system("java -jar scheduler.jar -i7.txt -q2 -a6 -s -e ", $output);
そして、/var/log/apache2/error.log で以下を取得しています:
Exception in thread "main" java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:432)
at java.awt.Frame.<init>(Frame.java:403)
at java.awt.Frame.<init>(Frame.java:368)
at javax.swing.JFrame.<init>(JFrame.java:158)
at net.sukharevd.cssw.scheduler.view.AppFrame.<init>(AppFrame.java:51)
at net.sukharevd.cssw.scheduler.Main.main(Main.java:11)
また、 -Djava.awt.headless=true パラメータを の後に追加しようとしましjava
たが、成功しませんでした:
Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:432)
at java.awt.Frame.<init>(Frame.java:403)
at java.awt.Frame.<init>(Frame.java:368)
at javax.swing.JFrame.<init>(JFrame.java:158)
at net.sukharevd.cssw.scheduler.view.AppFrame.<init>(AppFrame.java:51)
at net.sukharevd.cssw.scheduler.Main.main(Main.java:11)
Java アプリケーションを適切な方法で PHP から実行するのを手伝ってください。