我正在开发Web应用程序,这是一种在线IDE,用于编写和编译代码.编程语言是在大学内部开发的,也是编译器.
我的问题是:是否可以在服务器上执行编译器(编译器是用Java编写的),以便编译代码并返回要下载的已编译文件?
用户以更简单的方式使用在线代码编辑器,然后单击编译按钮,服务器获取已编写的代码,执行该服务器上的编译器(编译器以java编写),然后返回已编译的文件.
那么如何在服务器上执行用Java编写的编译器呢?
先感谢您 !
解决方法:
您没有说什么类型的服务器,或者您使用什么语言来开发Web应用程序(PHP,node.js,python,perl等),但是通常Java发行版都具有可运行Java代码的命令行二进制文件.
如果编译器文件位于jar文件中,则webapp执行的命令可能很简单,例如:
java -jar editor.jar输入代码文件输出可执行文件
当然,您可以替换文件名并添加编译器所需的适当选项(如果有).
编辑:我看到您用node.js标记了您的问题,所以我假设这是您在服务器端使用的语言.
node.js具有“子进程”,可让您执行外部命令.
因此,使用我在上面给出的示例命令,您将执行以下操作:
var exec = require('child_process').exec;
var compileit = 'java -jar compiler.jar inputcodefile outputexecutablefile';
exec(compileit, function(error, stdout, stderr) {
});
使用PHP更加容易:
exec('java -jar compiler.jar inputcodefile outputexecutablefile');
有关PHP中exec()函数的更多信息,请参见http://php.net/manual/en/function.exec.php.