许多人想知道如何强制他们的程序使用最小版本的jre,但我希望我的程序只能使用java 6而不是java 7(也就是jre 1.6的最大值)运行。原因是我的程序需要使用FTP,而java 7有可怕的FTP错误。
如果用户安装了1.7,是否有办法轻松使用1.6运行我的应用程序?
我看过的一些选项是:launch4j
我不太确定它会解决我的问题,除了将整个jre与我的程序捆绑在一起。我不认为这是最理想的解决方案。
有人可以帮助指导我甚至在理论上如何解决/处理这个问题吗?
答案 0 :(得分:3)
正如本somewhat related question/answer中所述,使用System.getProperty("java.version")
查看用于运行应用程序的Java版本。通过这种方式,您可以使应用程序提示用户他应该使用较旧的JRE。
至于在没有基于路径的JRE检测的情况下运行应用程序,主要问题是您无法确定用户系统上安装了正确的JRE的位置。在Windows上有两种默认的可能性,在* nix上它可能在任何地方。
如果我是你,我会尝试找到一个自定义的FTP库来解决你提到的bug,以获得新版本Java的最大安全性和优化优势,而不是强迫用户留在过去。