在Java中从内存中执行可执行程序(.exe)

5
我希望能在Windows上执行一个程序,但不想将文件写入磁盘。我只想将作为参数的字节数组(即要执行的程序)传递进去。
我不够熟练,无法编写实现此功能的本机代码。这应该是Windows原生支持的。
我想要在内存中执行的程序不是Java程序,而是可执行文件(.exe)!这个可执行文件是要在内存中读取和运行的,而不是通过Runtime.getRuntime().exec("example.exe");的方式。

2
我觉得这几乎是不可能的。需要一些动力吗? - leonbloy
为什么Runtime.exec()不适合使用? - user949300
我正在尝试运行的文件肯定会被杀毒软件标记为误报。 - Thomas Nappo
4
听起来非常安全……杀毒软件标记可执行文件也是有原因的,他们不是“闲着没事”这么做的。 - qJake
5
作为一名新手,你想做一些连有几十年安全经验的专业开发人员都很难确保你无法做到的事情吗?我建议你尝试关闭你的防病毒软件或考虑其他事情。你成为美国总统的几率更大。 - Peter Lawrey
1个回答

2
我还不能发表评论,否则我会的。你应该能在这里找到一些有用的信息,人们正在尝试使用C++解决相同的问题。请告诉我,您是要编写跨平台程序还是仅限于Windows?您使用“.exe”的方式表明仅限于Windows。
您理论上可以通过使用Windows API调用使其工作,只要您不尝试使其跨平台。从内存缓冲区创建进程

我只是想为Windows制作这个。除了Java以外,我对其他语言并不是很有经验。 - Thomas Nappo
@Thomas:是的,这不可能发生。是时候转向你下一个更加“现实”的需求了。 - Hovercraft Full Of Eels

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接