Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ftp 如何强制Java应用程序使用Java JRE 1.6而不是1.7?_Ftp_Java - Fatal编程技术网

Ftp 如何强制Java应用程序使用Java JRE 1.6而不是1.7?

Ftp 如何强制Java应用程序使用Java JRE 1.6而不是1.7?,ftp,java,Ftp,Java,可能重复: 许多人想知道如何强制他们的程序使用jre的最低版本,但我希望我的程序只使用java 6而不是java 7(即jre 1.6的最高版本)运行。原因是我的程序需要使用FTP,而Java7有可怕的FTP错误 如果用户安装了1.7,有没有办法让我的应用程序使用1.6运行 我看到的一些选项是:launch4j 除了可能将整个jre与我的程序捆绑在一起之外,我不太确定它是否能解决我的问题。我认为这不是最理想的解决方案 是否有人能帮助我了解如何解决/处理这一问题的理论途径?如本文所述,使用Sys

可能重复:

许多人想知道如何强制他们的程序使用jre的最低版本,但我希望我的程序只使用java 6而不是java 7(即jre 1.6的最高版本)运行。原因是我的程序需要使用FTP,而Java7有可怕的FTP错误

如果用户安装了1.7,有没有办法让我的应用程序使用1.6运行

我看到的一些选项是:launch4j

除了可能将整个jre与我的程序捆绑在一起之外,我不太确定它是否能解决我的问题。我认为这不是最理想的解决方案

是否有人能帮助我了解如何解决/处理这一问题的理论途径?

如本文所述,使用
System.getProperty(“java.version”)
查看运行应用程序所使用的java版本。这样,您可以让应用程序提示用户应该使用较旧的JRE

至于在没有基于路径的JRE检测的情况下运行应用程序,主要问题是您无法确定在用户系统的何处安装了正确的JRE。在Windows上有两种默认的可能性,在*nix上,它可能在任何地方

如果我是你,我会尝试找到一个自定义FTP库,它可以绕过你提到的错误,以获得Java新版本的最大安全性和优化优势,而不是强迫用户停留在过去。

如本文所建议的,使用
System.getProperty(“Java.version”)
查看运行应用程序所使用的Java版本。这样,您可以让应用程序提示用户应该使用较旧的JRE

至于在没有基于路径的JRE检测的情况下运行应用程序,主要问题是您无法确定在用户系统的何处安装了正确的JRE。在Windows上有两种默认的可能性,在*nix上,它可能在任何地方


如果我是你,我会尝试找到一个自定义FTP库,它可以绕过你提到的错误,以获得Java新版本的最大安全性和优化优势,而不是强迫用户停留在过去。

这个问题涵盖了FTP客户端库的主题-我知道你来自何方,你的回答证实了我的猜测。最好是让我的代码同时适用于1.6和1.7,这样我最终就不必担心大多数情况下他们使用的是什么jre。令人烦恼的是,目前还没有解决Java7FTP问题的可靠方法。(这里讨论了我所指的bug:)我想我将开始研究其他可能的协议,并重写我的应用程序的这一部分。@Meeks-您不需要其他协议。你只需要一个不同的客户端实现。Stephen C:使用不同的FTP客户端库如何避免这个错误?据我所知,它不是,因为问题在于windows、IPv6、ftp和Java7的交互。不同的库不会改变这些东西的基本运行方式。为了明确起见,我目前使用的是:org.apache.commons.net.ftp.ftp。这个问题涵盖了ftp客户端库的主题-我知道你来自哪里,你的回答证实了我的猜测。最好是让我的代码同时适用于1.6和1.7,这样我最终就不必担心大多数情况下他们使用的是什么jre。令人烦恼的是,目前还没有解决Java7FTP问题的可靠方法。(这里讨论了我所指的bug:)我想我将开始研究其他可能的协议,并重写我的应用程序的这一部分。@Meeks-您不需要其他协议。你只需要一个不同的客户端实现。Stephen C:使用不同的FTP客户端库如何避免这个错误?据我所知,它不是,因为问题在于windows、IPv6、ftp和Java7的交互。另一个库不会改变这些东西的基本运行方式。为了明确起见,我目前正在使用:org.apache.commons.net.ftp.FTPAs指出,ftp错误可以通过对Windows 7防火墙配置的特定更改来解决(这实际上是导致Java 7出现错误的原因)。这难道不是一个比强制使用旧的java版本更容易的解决方案吗?@Dmitri:我宁愿不让我的用户更改他们的Windows 7防火墙配置。我已经尝试在我的应用程序中使用这段代码,这是一种建议的解决方法:System.setProperty(“java.net.preferIPv4Stack”,“true”);然而,它似乎不可靠,在某些情况下它是有效的,而在另一些情况下它根本不起作用。我希望有一些东西能让我确信它会起作用,而不是半途而废。对于用户来说,安装防火墙比安装以前版本的Java更容易。你看:如果他们遇到FTP的问题,这不是100%的麻烦。但无法运行应用程序(带有需要旧版本Java的消息)对用户来说是一种非常糟糕的体验。他们可能会在这之后决定根本不运行你的应用程序。@EugeneMayevski'EldoSCorp:我同意你在这里所说的,调整防火墙可能是两个坏处中的较小的一个,但是我想我更喜欢对周围的用户都有好体验的东西。但我认为我最初的问题已经得到了回答,从某种意义上说,强迫他们使用1.6并不是解决问题的方法。正如所指出的,FTP错误可以通过对Windows 7防火墙配置的特定更改来解决(这实际上是导致错误的原因,有时被归咎于Java 7)。这难道不是一个比强制使用旧的java版本更容易的解决方案吗?@Dmitri:我宁愿不让我的用户更改他们的Windows 7防火墙配置。我已经尝试在我的应用程序中使用此代码,这是一个建议的工作