如何通过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
我在 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