我正在尝试构建一个用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的文件夹(测试)中。
尝试提供类的完整路径。我认为这应该会有所帮助。