在服务器上执行 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 服务器来测试您的代码。