C# 从.NET内存下载并运行JAR

C# 从.NET内存下载并运行JAR,c#,.net,jar,download,C#,.net,Jar,Download,我有一个C#应用程序,我需要下载并运行一个JAR文件,而不需要将其保存到磁盘。这在C#中可能吗?我可以通过WebClient将文件下载到磁盘上(这是我在发布时正在做的事情)&通过一个批处理脚本启动它,该脚本保存后删除,但我想更进一步,不让任何东西接触驱动器 谢谢。JAR文件需要由JVM javaw.exe执行。另一个进程无法访问虚拟内存空间并读取文件数据。除非两个进程相互协作并使用共享内存段,否则不能。您没有从javaw.exe获得这样的合作,它需要一个文件 这在Windows中不是问题,因为j

我有一个C#应用程序,我需要下载并运行一个JAR文件,而不需要将其保存到磁盘。这在C#中可能吗?我可以通过WebClient将文件下载到磁盘上(这是我在发布时正在做的事情)&通过一个批处理脚本启动它,该脚本保存后删除,但我想更进一步,不让任何东西接触驱动器


谢谢。

JAR文件需要由JVM javaw.exe执行。另一个进程无法访问虚拟内存空间并读取文件数据。除非两个进程相互协作并使用共享内存段,否则不能。您没有从javaw.exe获得这样的合作,它需要一个文件


这在Windows中不是问题,因为javaw.exe实际上会从内存中读取文件。在程序中写入文件时,实际上是写入文件系统缓存。它在RAM中缓冲文件数据,延迟将其写入磁盘。只要文件不是太大(千兆字节或更多),并且您没有等待太长的时间启动java(分钟),并且机器有足够的RAM(千兆字节或两个),javaw.exe就会从文件系统缓存中读取文件。RAM,而不是磁盘。与旧的RAM磁盘完全相同。

您可以编写一个特殊的Java类加载器,通过进程间通信(IPC)从.NET进程而不是文件加载类。此外,您还需要一个小的启动器JAR,它首先安装类加载器,然后执行通过IPC检索的JAR。您需要在.NET应用程序中实现IPC通信的服务器部分


但是值得吗?这么复杂的软件有什么好处?

你知道JAR意味着Java,对吧?它很复杂,但在理论上是可能的,尽管绝对不推荐。。。请显示一些源代码。。。你试过什么?什么不起作用?是的,我知道这是Java,这就是为什么我要问。我在Java中做得很好。我现在没有任何代码,因为我不知道从哪里开始。我编辑了这篇文章,说明了我到目前为止能做的事情。似乎要经历很多麻烦,我想我还是继续保存到磁盘吧。谢谢