2012-06-18 65 views
4

我想在Windows上执行内存中的程序。我不想将文件写入磁盘。我只想传入一个字节数组(这是我想执行的程序)作为参数。从Java内存执行可执行程序(.exe)

我不够熟练的编写本地代码来做到这一点。再次,这应该是Windows本机。

我想在内存中执行的程序不是Java程序。它是一个可执行文件(.exe)!可执行文件的目的是读取并运行IN MEMORY,而不是通过Runtime.getRuntime()。exec(“example.exe”);

+2

实际上不可能,我会说。 SOME动机? – leonbloy

+0

为什么Runtime.exec()不适合? – user949300

+0

我试图运行的文件肯定会标记一个误报,并带有防病毒软件。 –

回答

2

我还不能评论,否则我会。你应该能够在这里找到一些有用的信息,人们试图用C++来解决同样的问题。祈祷告诉你,你是否试图编写一个跨平台的程序,或者仅仅是Windows?您使用“.exe”仅表示窗口。

CreateProcess from memory buffer

你应该在理论上可以通过使用Windows API调用来完成这项工作,只要你是不是想使这个跨平台。

+0

我只是想为Windows做这个。我对Java以外的其他语言不太了解。 –

+0

@Thomas:是的,不会发生。现在是时候进入你的下一个更现实*的要求了。 –