使用PHP exec调用具有一些UI的Java代码

时间:2015-07-21 11:46:45

标签: java php exec php-java-bridge

为了完成某些功能,我必须使用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,我会很高兴。

由于

0 个答案:

没有答案