为了完成某些功能,我必须使用PHP exec调用Java。
直接在shell中使用时效果很好。但是当与PHP exec一起使用时,它会抛出与UI相关的错误。
虽然原因很明显,因为UI未触发错误已被抛出。有没有办法压制这些错误?
这是一个涉及一些UI的小型Java代码: -
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Frame2 extends JFrame
{
JPanel pane = new JPanel();
JButton pressme = new JButton("Press Me");
Frame2() // the frame constructor
{
super("JPrompt Demo"); setBounds(100,100,300,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con = this.getContentPane(); // inherit main frame
con.add(pane); // JPanel containers default to FlowLayout
pressme.setMnemonic('P'); // associate hotkey to button
pane.add(pressme); pressme.requestFocus();
setVisible(true); // make frame visible
}
public static void main(String args[]) throws Exception
{new Frame2();}
}
直接在命令提示符 javac Frame2.java 中执行时,它会毫无怨言地执行。但是当通过PHP exec exec(" javac Frame2.java&& java Frame2")调用它时会抛出以下错误: -
线程中的异常" main" java.awt.HeadlessException:没有X11显示 变量已设置,但此程序执行了一个操作 需要它。在 java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207) 在java.awt.Window。(Window.java:536)at java.awt.Frame。(Frame.java:420)at javax.swing.JFrame。(JFrame.java:233)at 第2帧。(Frame2.java:10)在Frame2.main(Frame2.java:18)
PS - 我阅读了很多关于PHP Java Bridge的内容,但如果可以避免使用PHP Java Bridge,我会很高兴。
由于