强制其他应用程序从 java 进程读取文件

forcing other apps to read a file from a java process

我实际上不确定是否可以强制其他应用程序从 Java 进程读取文件,而不是从 returns 读取文件磁盘,所以首先这些信息可能会有帮助。

也可以忽略强制的想法!我可以从我的 java 应用程序打开其他应用程序吗,例如 Adobe Acrobat Reader 并将字节注入其中而不是单独打开它并使用它读取 pdf 文件?

如果可能的话,有人可以解释一下吗?我在网上搜索了太多,没有找到答案。

另外你可能想知道,我的想法是解密内存中的加密文件,让其他应用程序使用我自己应用程序中的解密字节,而不是从磁盘读取解密文件(可以恢复!)

一个有趣的概念,但恐怕答案是否定的。这将打开一大堆蠕虫,您提供给其他应用程序的流实际上不会是磁盘上的文件,而这正是其他应用程序所假定的。即使您以某种方式可以将原始数据作为其他应用程序可以读取的内容传递(尽管通常您只能将 path 传递给文件并且应用程序会自行打开它),如果该应用程序试图写入它会发生什么?它必须修改 Java 应用程序的内存。我相信您可以看到其中的含义。

可能执行此操作的一种方法是创建一个由操作系统挂载的加密卷(例如 TrueCrypt 所做的)并将您的数据作为文件放在那里,以便其他应用程序可以处理您的流一个真实的文件。通过这种方式,您可以让其他应用程序完全忘记您只是在向它呈现一个流这一事实。您的应用程序将收到有关已安装卷或文件的任何更改的通知,并可以据此采取行动。不过,这一切都远非微不足道。

在我看来,让您的解密数据保留在硬盘上,然后使用 jDelete, or Turbo Shredder 粉碎该数据可以做您想做的事,而不会出现反病毒问题。