java - 有什么方法可以对依赖于旧版(非工作)JRE 版本的应用程序进行沙箱处理吗?

标签 java windows

我有一个非常旧的应用程序(2001 年发布),我正在尝试在 Windows 7/8/10 中工作。其中有一个 setup.exe 部分以某种方式使用 Java,但无法正常工作。我怀疑它使用的是 java,因为我反编译了与应用程序一起打包的 JAR 文件,并且 .java 文件(以及名为 setup.java 的文件)中引用了多个设置步骤。还有一个与应用程序一起发布的 jre 文件夹,运行以下(已注明日期)版本:

F:\jre\bin>java -version
java version "1.3.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_01)
Java HotSpot(TM) Client VM (build 1.3.0_01, mixed mode)

起初我怀疑应用程序正在使用系统环境变量来使用当前安装的 JAVA 版本,但我通过从系统中完全清除 JAVA 并重新测试来排除了这一点 - 结果相同。

接下来我尝试简单地将文件夹更新到最新版本。然而,正如预期的那样,有些调用不再受支持(错误消息引用 _JVM_IsVMGenerateMethodl)。

此时我已经没有选择了。我总是可以在虚拟机中运行这个应用程序(并且它工作得很好),但我更喜欢以某种方式以一种很好的简化方式打包它,以便于分发和安装。我能做些什么吗?我正在思考应用程序虚拟化方面的一些问题,但仍在阅读它。

最佳答案

如果没有“在场”,很难说清楚,但我猜测旧的 (1.3) JVM 与更现代的 Windows 版本不兼容。

您最好的选择可能是在虚拟机中针对最初开发应用程序的任何版本的 Windows 运行它。

如果您有/可以获得完整的源代码,您可以尝试使用当前系统支持的 Java 版本重新编译它。但这可能是一个渺茫的机会。

关于java - 有什么方法可以对依赖于旧版(非工作)JRE 版本的应用程序进行沙箱处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33619135/

相关文章:

java - 在单个java对象中反序列化json的父子节点数据

java - 无法解决maven依赖关系

windows - 在 Vim for Windows 上设置 Cygwin shell 路径

java - 取消继承(?)/覆盖 .ToString 以访问 COM 对象 .toString

java - JTextField 的值更改监听器

java - 单击 EditText 时键盘不显示

python - pip 如何删除带有前导破折号 : "-pkgname" 的错误安装包

windows - 批处理脚本 : how to check for admin rights

c++ - 在 C++ 中创建基于 HTML 的 Windows UI 的工具

windows - 使用 aspnet_state 服务的 session 损坏