在服务器上执行 java 代码
Execute java code on a server
我正在开发一个 Web 应用程序,一种用于编写和编译代码的在线 IDE。编程语言是大学内部开发的,编译器也是。
我的问题是:是否可以在服务器上执行编译器(编译器写在 java ),以便编译代码和 returns 要下载的编译文件?
更简单的方式,用户使用在线代码编辑器,然后点击编译按钮,服务器获取编写的代码,执行服务器上的编译器(编译器写在java ) 然后 returns 编译后的文件。
那么我如何在服务器上执行编译器(用 java 编写)?
提前致谢!
一个典型的方法是创建一个 REST API 和一个处理 POST 请求的控制器。请求数据中需要发送输入源代码,响应数据中需要包含编译后的代码。
如果编译封装在一个名为 "compile" 的函数中,您的 REST 控制器将看起来像这样,使用 Spring 框架:
@RestController
public class HelloController {
@RequestMapping(value = "/compile", method = RequestMethod.POST)
public String compilationAPI(@RequestBody SourceCode sourceCode) {
String compiledCode = compile(sourceCode);
return compiledCode;
}
}
您没有说什么类型的服务器,或者您使用什么语言开发网络应用程序(PHP、node.js、python、perl 等) , 但通常 Java 发行版有一个命令行二进制文件,它将 运行 Java 代码。
如果编译器文件在 jar 文件中,则 webapp 执行的命令可能很简单,如下所示:
java -jar compiler.jar inputcodefile outputexecutablefile
当然,您可以替换文件名并添加编译器所需的正确选项(如果有)。
编辑: 我看到你用 node.js 标记了你的问题,所以我假设这是你在服务器端使用的语言。
node.js 有 "child process" 允许你执行外部命令。
因此,使用我上面给出的示例命令,您可以执行以下操作:
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。
试试这个:
https://tomcat.apache.org/download-70.cgi
一些教程:
https://www.youtube.com/watch?v=3CXBRjpiTws<br>
http://www.coreservlets.com/Apache-Tomcat-Tutorial/<br>
http://www.tutorialspoint.com/servlets/
您可以使用 eclipse 启动一个 tomcat 服务器来测试您的代码。
我正在开发一个 Web 应用程序,一种用于编写和编译代码的在线 IDE。编程语言是大学内部开发的,编译器也是。
我的问题是:是否可以在服务器上执行编译器(编译器写在 java ),以便编译代码和 returns 要下载的编译文件?
更简单的方式,用户使用在线代码编辑器,然后点击编译按钮,服务器获取编写的代码,执行服务器上的编译器(编译器写在java ) 然后 returns 编译后的文件。
那么我如何在服务器上执行编译器(用 java 编写)?
提前致谢!
一个典型的方法是创建一个 REST API 和一个处理 POST 请求的控制器。请求数据中需要发送输入源代码,响应数据中需要包含编译后的代码。
如果编译封装在一个名为 "compile" 的函数中,您的 REST 控制器将看起来像这样,使用 Spring 框架:
@RestController
public class HelloController {
@RequestMapping(value = "/compile", method = RequestMethod.POST)
public String compilationAPI(@RequestBody SourceCode sourceCode) {
String compiledCode = compile(sourceCode);
return compiledCode;
}
}
您没有说什么类型的服务器,或者您使用什么语言开发网络应用程序(PHP、node.js、python、perl 等) , 但通常 Java 发行版有一个命令行二进制文件,它将 运行 Java 代码。
如果编译器文件在 jar 文件中,则 webapp 执行的命令可能很简单,如下所示:
java -jar compiler.jar inputcodefile outputexecutablefile
当然,您可以替换文件名并添加编译器所需的正确选项(如果有)。
编辑: 我看到你用 node.js 标记了你的问题,所以我假设这是你在服务器端使用的语言。
node.js 有 "child process" 允许你执行外部命令。 因此,使用我上面给出的示例命令,您可以执行以下操作:
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。
试试这个:
https://tomcat.apache.org/download-70.cgi
一些教程:
https://www.youtube.com/watch?v=3CXBRjpiTws<br>
http://www.coreservlets.com/Apache-Tomcat-Tutorial/<br>
http://www.tutorialspoint.com/servlets/
您可以使用 eclipse 启动一个 tomcat 服务器来测试您的代码。