【问题标题】:How would I go about compiling code via a web app? [closed]我将如何通过网络应用程序编译代码? [关闭]
【发布时间】:2019-10-29 09:22:27
【问题描述】:

所以我希望使用智能感知为 Java 开发在线 ide,但是我将如何生成源代码的编译类版本?

所以本质上我想点击

(RUN)

然后单击“(运行)”,将文本区域中的源代码编译为类文件和为该类提供的下载链接。

内部细节/功能不需要解释,只是用作我尝试实现的示例,我想总体了解的是如何通过基于 Web 的应用程序运行 Java 编译器/网站

【问题讨论】:

  • 将字符串上传到后端,放入文件,编译文件,发送文件给客户端。 (顺便说一句,如果你不知道自己在做什么,那就太糟糕了)。
  • @luk2302 当然是因为我想避免恶意代码被执行或请求被提升
  • @luk2302 我不只是直接潜入,我知道使用 NodeJS 或 PHP 等潜在路线,但只是在寻找建议。
  • 您使用的语言实际上并不重要,因为您仍然需要调用 java 编译器。
  • @R2-D2 你的问题似乎本质上是在问如何在没有任何具体细节的情况下完成整个想法中最困难和最危险的部分

标签: javascript java php html


【解决方案1】:

在你的 PHP 中,从 code 参数中获取文本,将其保存到文件中,然后使用 exec 将其提交给 javac

$submittedCode = $_REQUEST["code"]; //
$myfile = fopen("newfile.java", "w") or die("Unable to open file!");
fwrite($myfile, $submittedCode);
$res = exec("/usr/local/bin/javac " . $myfile);
if (strlen($res) == 0) {
  //it compiled successfully. load the compiled class file and echo it out. Make sure to set content type header
} else {
  echo $res;
}

【讨论】:

  • @GrumpyCrouton 不安全?你能告诉我为什么吗?老实说,我很想知道!
  • @GrumpyCrouton 如果您对所提出的问题有更安全的解决方案,我也很感兴趣
  • @GrumpyCrouton 我没有运行任意代码。我在输入上运行 javac。而javac只是编译java源码:我不知道它的执行过程中会发生什么恶意
  • 这篇文章 (softwareengineering.stackexchange.com/q/287606) 中没有具体证据,但大家一致认为如果使用 VM 编译它,您可能还可以
猜你喜欢
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2014-01-10
  • 1970-01-01
相关资源
最近更新 更多