我需要在Linux中从PHP脚本调用Swing Java应用程序。 Java应用程序使用swing,但其主框架是不可见的,所以在设置DISPLAY env后。变量我能够从tty2运行它(从没有x11的终端)。问题是我无法从PHP脚本执行相同的操作。我用下面的代码片段:从PHP脚本调用Swing Java应用程序
$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在适当的方式执行,请。
最好的问候,德米特里。
*“帮我做开放Java碧玉报告应用程序以正确的方式从PHP执行“*无论”正确的方式“是什么,我认为它将以'**不要**启动富客户端桌面应用程序开始。来自PHP ..'。 – 2012-04-15 14:32:29
谢谢。这说得通。 – 2012-04-16 13:30:56
不是真的,我成功从网站打印碧玉报告。只是不要在tomcat上安装它 – 2013-12-20 10:01:47