在线运行代码怎么实现的?

2018-04-19 11:23:01 +08:00
 xshanow

如图: 各位大神,有知道这个怎么实现的吗?

这样:

https://tool.lu/mine

7935 次点击
所在节点    问与答
15 条回复
crazybug
2018-04-19 11:37:43 +08:00
提交的代码在服务器端执行完在返回到浏览器!
Luckyray
2018-04-19 11:43:29 +08:00
应该是 1 楼的办法吧,总不能全用 js 写一套解释器,那也太复杂了。
input2output
2018-04-19 11:53:12 +08:00
在云端 sandbox 里运行的;
current
2018-04-19 12:13:10 +08:00
hxndg
2018-04-19 13:02:51 +08:00
@input2output
哈哈哈,不过一般都是在沙盒做的,基本不可能
tommyZZM
2018-04-19 15:28:02 +08:00
服务端运行,然后把 stdin/stdout/stderr 接到前端输入或者显示吧
kevindu
2018-04-19 15:57:23 +08:00
wshcdr
2018-04-19 17:01:44 +08:00
比较感兴趣,MARK 一记
LeungJZ
2018-04-19 17:07:23 +08:00
感兴趣,mark 一下。
holyghost
2018-04-19 17:13:32 +08:00
实际上就是一个 sandbox,刚好我之前用 namespace 和 cgroup 实现了一个: https://github.com/justice-oj/sandbox

demo 的地址是: https://www.justice.plus
honist
2018-04-19 19:31:40 +08:00
star 了楼上 有空研究一下
chinvo
2018-04-19 19:35:27 +08:00
和 OJ 的原理一样,后端沙盒运行,捕获输入输出
dobelee
2018-04-19 19:36:49 +08:00
后端的虚拟机编译执行一下就 ok 了。
kaneg
2018-04-19 20:34:55 +08:00
云端跑个 docker 就可以
xshanow
2018-04-28 17:57:42 +08:00
没想到这么多人收藏了 。
我主要研究的是 java,c#,c++的,总结以下吧
[成功]Java 代码中运行 java 代码,使用 Java-Runtime-Compiler 这个库,好使。https://github.com/OpenHFT/Java-Runtime-Compiler
[成功]C#环境中有 CSharpCodeProvider\CPPCodeProvider..支持 C#和 VB,不知道啥原因 C++的不支持。
[未知]linux 下,C++可以使用 libdcompile,https://github.com/Fadis/libdcompile,没测试。

以上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448075

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX