我继承了以前能够从HTML表单(通过POST)接收信息的旧Perl CGI脚本,并使用该表单数据编译一些java源文件(最终创建Java applet)。它们不再编译,我需要找出原因。
最明显的问题(虽然我不知道改变了什么让它从工作变为不工作)是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。
有没有理由在表单(POST)调用时CG对CGI脚本不可见,但在命令行调用时是否可见?
提前致谢! 伯尼
答案 0 :(得分:0)
Apache和CGI周围的环境与交互式控制台不同。
您可以尝试使用指定的所有路径编写基本的Bourne shell脚本(sh)。
真的需要从表单中即时编译Java吗?
我很好奇:为什么?