在服务器上使用 Runtime.exec 执行二进制 Java 文件



我正在尝试构建一个用JSP编写的在线Java编译器,其中服务器端接受来自客户端的上传代码,编译它们,然后运行代码,最后将输出打印给用户HTML表单。我写了一个代码,创建了一个临时Java文件(temp.java)包含来自客户端的代码,然后编译它,创建了(temp.class)文件,问题出在我尝试执行文件的最后一步,当我使用本地机器cmd时它运行良好:

java temp

但是当我使用 java 运行时在服务器上调用命令时,如下所示:

Process proc = Runtime.getRuntime().exec("java testing/temp");

输出为:

Error: Could not find or load main class temp

问题是,运行时找不到二进制文件。那么路径是什么?编译器位于包含Java文件的包中,而客户端二进制文件则创建并存储在build/Web的文件夹(测试)中。

尝试提供类的完整路径。我认为这应该会有所帮助。

最新更新