0

我继承了传统的 Perl CGI 脚本,这些脚本曾经能够从 HTML 表单(通过 POST)接收信息并使用该表单数据编译一些 java 源文件(最终创建一个 Java 小程序)。他们不再编译,我需要找出原因。

最明显的问题(虽然我不知道是什么改变使它从工作变为不工作)是 CGI 脚本找不到 java 编译器(sh:/usr/bin/javac:没有这样的文件或目录)它是由提交的 HTML 表单调用。

我在 CGI 脚本中插入了一个调用来编译一个简单的 java 文件 ( /usr/bin/javac ./HelloWorld.java),该文件精确地模仿了对失败的大 java 文件(需要从 POST 数据设置参数)的调用。所以我的希望是,如果我能得到 HTML 表单的提交来编译我的 HelloWorld 文件,它也能够编译需要参数的大文件。

当我从命令行调用 CGI 脚本时,找到了 java 编译器并编译了我的 HelloWorld java 文件,但是当我使用 HTML 表单时,找不到 java(甚至/usr/bin/java -version什么都不做)。我的编译语句在 CGI 脚本中的位置无关紧要(因此编译语句与我处理 HTTP 请求的位置无关),它总是在被命令行调用时编译并且无法当被表单调用时找到java。

是否有原因使得 java 在通过表单 (POST) 调用时对 CGI 脚本不可见但在命令行调用时可见?

提前致谢!伯尼

4

1 回答 1

0

Apache 和 CGI​​ 周围的环境与交互式控制台不同。

您可以尝试编写一个基本的 Bourne shell 脚本 (sh) 并指定所有路径。

真的需要从表单中即时编译 Java 吗?

我很好奇:为什么?

于 2013-02-11T21:04:48.213 回答