如何通过CGI脚本运行 jar文件

How to run jar file through CGI script

我在 cgi-bin 文件夹中有一个名为 helo.jar 的可执行 jar 文件和一个 hello.sh

这是我的脚本

#!/bin/bash 
java -jar helo.jar

我试图通过url“http://localhost/cgi-bin/hello.sh

来运行这个脚本

遇到内部服务器错误,检查日志后显示 "End of script output before headers"

我正在使用 docker 可以执行 java 命令的 wordpress 容器,我是 cgi 程序的新手。

这是我的Java代码

public static void main( String args[] )
 {
  //  Here is a minimalistic CGI program that uses cgi_lib
  //  Print the required CGI header.
  System.out.println(cgi_lib.Header());

  //  Parse the form data into a Hashtable.
  Hashtable form_data = cgi_lib.ReadParse(System.in);

  // Create the Top of the returned HTML page
  System.out.println("Here are the name/value pairs from the form:");

  //  Print the name/value pairs sent from the browser.
  System.out.println(cgi_lib.Variables(form_data));

  System.out.println("Nome: " + form_data.get("name"));
  System.out.println("<p>");
  System.out.println("Email: " + form_data.get("email"));      
  System.out.println("<p>");

  System.out.println(cgi_lib.HtmlBot());
}

我确定我的错误是在我的脚本中,因为我已经尝试过其他脚本并且它有效,例如 perl

要使脚本在所有机器上运行,它必须在 UNIX 中编写,这可能是问题所在。

要解决你可以:

-如果您有记事本+,请转到“设置”、“首选项”、“新建文档”并切换到 UNIX;

-如果你有一个虚拟机,你可以简单地做: echo something > name.sh;

你有没有在你的 java 代码中尝试过这个?

#!/usr/bin/java --source 11