在Windows上的Java 6中,我有兴趣执行以下任务,但真的不知道如何去做。如何从内存/ RAM运行进程作为“当前工作目录”
- 我想带一个zip文件
- 解压其内容为点在 内存/ RAM
- 创建将运行ZIP文件中存在的一个.EXE文件一个Java进程
- 该.EXE必须运行,而当前的工作目录是在RAM中的位置
- 然后,我需要将另一个文件放入RAM中同一个“当前工作目录”位置空间。
我知道这听起来很奇怪,但它会通过这种方式实际上使效率更高效,所以如果可能的话,这将是很好的了解。
在Windows上的Java 6中,我有兴趣执行以下任务,但真的不知道如何去做。如何从内存/ RAM运行进程作为“当前工作目录”
我知道这听起来很奇怪,但它会通过这种方式实际上使效率更高效,所以如果可能的话,这将是很好的了解。
这听起来很困难,而且肯定会需要很多不能用纯Java完成的东西。
在Linux上,我想你需要做到以下几点:
创建和挂载 “tmpfs的” - https://unix.stackexchange.com/questions/66329/creating-a-ram-disk-on-linux
解压ZIP文件到tmpfs的
使用ProcessBuilder运行.exe,它允许您设置子进程当前目录。
诸如此类
卸载的 “tmpfs的” 当你做了。
用于创建“RAM盘”文件系统将OS特定的命令,并且可能需要根/管理员权限。
目前还不清楚这样做是否比在文件系统中使用临时目录更有效。除非明确表明需要更高效的解决方案,否则我不会尝试这种方法;即除非您尝试使用临时目录并发现它太慢。
记住熊说:
很多(也许是大多数)解压ZIP文件的工作也要做你做的任何一种方式,和
您.exe将可能正在从扩展的ZIP中读取操作系统的内存磁盘块缓存(在Linux上)中的文件。
创建RAM磁盘 – MadProgrammer