2012-06-18 62 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:是的,不會發生。現在是時候進入你的下一個更現實*的要求了。 –