2012-12-19 24 views
2

这似乎是一个简单的问题,但我无法找到有意义的答案,只有很多猜测。另外,如果答案是肯定的,那么JVM会是什么样的,甲骨文还是微软提供的补丁?Java虚拟机能在WinRT上运行吗?

具体来说:我有一个运行在JRE 7上的Java桌面应用程序,它会运行在WinRT上吗? 我的意思是,我可以在WinRT上安装JRE 7吗?它会运行没有问题?

+0

你的问题是什么? –

回答

3

是和否。

使用Windows运行时API和可从Windows应用商店应用的Windows API部分来实现Java虚拟机当然是可能的,或者至少实现Java虚拟机的一个重要部分。但是,这样的JVM需要是解释的JVM,而不是JIT编译的JVM。 JIT编译需要更改内存保护(以允许执行生成的代码),但用于更改内存保护的API(VirtualProtect和朋友)不能从Windows应用商店应用中的用户代码调用。

那么,你能否在Windows Store应用中实现可用的解释JVM?大概。不过,是否有可能实现一个性能足够好的JVM,这完全是另一回事。

+0

感谢您的详细解释。那么浏览器插件,小程序,JNLP呢? – Flot2011

+0

我对Java几乎一无所知,抱歉。但是,如果可能的话,并且如果需要JRE,那么它将不得不遵循Windows应用商店应用规则,所以你会在同一条船上。 –