I have this code which copy the executable file into byte array.
//winmine.exe
Path path = Paths.get("winmine.exe");
byte[] bin = Files.readAllBytes(path);
I want execute dinamically the array without use the file. By example I need something like this:
Runtime app = Runtime.getRuntime();
String currentDir = new File(".").getAbsolutePath();
Process p = app.exec_WRAP_BINARY(bin); //Not exixts
The purpose of that is prevent the user from accessing the file winmine.exe
Update: I'm sure this must be possible somehow. If we consider that is an execution: First, it read a file and then it load to memory it completely... I don't see because it can't do this separately.
What you want is not really possible, in general. The system linker will need to link the binary and load it before it executes, and on most (almost every one I know and cetainly Windows/Linux) this means you will need a file on the filesystem.
Of course - you can always write it there, perhaps to a temp directory, execute it as a file, and then delete it later.
Even if you were writing in pure C, you could not easily do this.
(Caveat - On Windows, you /can/ in theory do it with a .com format executable. But severe limitations on that format make it obsolete.)
On Linux, you might also try locating the system loader binary, and execute that, passing the entire binary into it through a pipe. This works because it functions a sort of "binary interpreter". But I would not recommend that approach.