Java应用程序转换为Java applet并从HTML传递参数

时间:2011-09-30 14:06:22

标签: java applet command system

我是Java新手并尝试创建一个在执行时运行系统命令的应用程序。 我用以下代码完成了这个:

package printtest;
import java.io.*;
import java.util.*;
public class PrintTest {
 public static void main(String args[]) 
 throws InterruptedException,IOException 
    {

    List<String> command = new ArrayList<String>(); 
    command.add(System.getenv("programfiles") +"\\Internet Explorer\\"+"iexplore.exe");
    command.add("http://www.google.com");        
    ProcessBuilder builder = new ProcessBuilder(command);
    Map<String, String> environ = builder.environment();
    builder.directory(new File(System.getenv("programfiles")+"\\Internet Explorer\\"));

    System.out.println("Directory : " + System.getenv("programfiles")+"Internet Explorer\\");
    final Process process = builder.start();
    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line;
    while ((line = br.readLine()) != null) {
      System.out.println(line);
    }
    System.out.println("Program terminated!");
  }

}

如果我运行该应用程序,它将使用以下语法“iexplore.exe http://www.google.com”运行系统命令。这很棒。

我遇到的问题,我想请求帮助,是这样的:

我想从HTML页面将变量传递给此应用程序,因此可以通过在HTML中更改PARAMS在Java应用程序中传递可执行文件之后的参数。为此我明白这个应用程序需要是一个applet。

我不知道如何修改它以编译以包含在HTML中。

你能帮我解决这个问题吗?!我一直在寻找2天的答案。

更新

对不起,我想我不是应该解释的。以下是需要完成的工作:1。用PHP编写的订单管理界面需要一种方法来运行带有额外参数的系统命令来打印传输接收器。要做到这一点,网页应该通过applet或任何其他解决方案触发打印。如果你对解决这个问题有所了解,请告诉我。感谢

1 个答案:

答案 0 :(得分:1)

  

我想从HTML页面将变量传递给此应用程序,因此可以通过在HTML中更改PARAMS在Java应用程序中传递可执行文件之后的参数。为此我明白这个应用程序需要是一个applet。

没有。只要您在服务器端有一些动态生成文档的东西(例如HTML或JNLP启动文件中的参数),您就可以使用该功能创建唯一的(包括该用途的参数)启动文件Java Web Start发布。

当然,无论是applet还是JWS app,都需要GUI。


顺便说一句 - 如果你没有意识到:

  • 正在使用的代码将在Windows上打开IE。
    • 我使用Windows但我的默认浏览器是FireFox。
    • 在Mac,Linux,Unix上完全失败..
  • Java有3种内置方式来打开网页。
    1. Applet可以访问“AppletContext”类,该类提供AppletContext.showDocument(URL)
    2. Java Web Start应用程序。可以访问JNLP API,它提供BasicService.showDocument(URL)
    3. Java 6+应用。可以使用Desktop.browse(URI)

最后两个中的任何一个都优于Applet方法,因为它们返回boolean表示成功,或抛出一系列有用的异常。用于applet或app。使用JWS启动,Desktop类或使用Process将需要数字签名和可信代码。