是什么导致某些Java应用程序在某些系统上的运行方式与其他系

时间:2014-11-15 23:37:02

标签: java compatibility

我收到一些关于运行我的Java应用程序时出错的报告,而且我没有遇到相同的错误。我很确定这是一个问题,而不是我的代码中的错误。什么可能导致正确构造的Java应用程序无法正常运行?根据我的测试人员的报告,他们似乎安装了最新的Java更新,并且它们都没有运行Windows XP。为了验证在系统上是否正确配置了Java,以便Java应用程序能够正常运行,我可以告诉他们做什么?

在我遇到的特定示例中,我为Windows编写了一个GUI应用程序。我的测试人员声称,当他进入“文件”菜单并点击“打开”时,没有任何反应。在我的结尾弹出一个JFileChooser窗口,但对于我的测试人员没有任何反应。我们都运行64位Windows 7操作系统。我已经使用Java更新测试了这个,比我的测试人员使用的更早。我也在另一台计算机上尝试过我的应用程序,它也适用于那台计算机。我几乎完全相信我的用户端是一个错误,因为我似乎无法解决同样的问题。

提前感谢您的回复。

2 个答案:

答案 0 :(得分:3)

  

什么可能导致正确构造的Java应用程序无法正常运行。

这是一个循环问题。唯一可能的答案是循环答案。

但是一些比较常见的事情包括。

  • 将特定于平台的假设意外纳入代码:

    • 假设路径名的特定平台语法,行尾。

    • 假设平台特定的文件系统布局。

    • 假设应用程序将以管理员权限运行。

    • 假设文本的特定字符编码方案。

  • 线程问题。错误编写的多线程代码似乎可以在一个平台(具有给定的操作系统和硬件配置)上正确运行,而在另一个平台上则不可靠。请注意,Java中基于GUI的应用程序通常是多线程的。

  • 与安全相关的问题。在最近的Java版本中处理applet等的方式发生了重大(突破!)的变化。

基于不同测试人员报告不同问题的事实,以及(我猜测)错误报告似乎没有意义,我怀疑多线程/同步问题。


  

为了验证在系统上是否正确配置了Java,以便Java应用程序能够正常运行,我能告诉他们做什么?

安装Java的方式不太可能出现问题。特别是如果多个测试人员报告问题。

问题很可能出现在您的应用程序中,并且您认为它已正确构建。

答案 1 :(得分:2)

如果您更详细地描述了客户的错误,那就太棒了。

在那之前,我会在黑暗中下注,并说客户端的区域设置与您的区域设置不同,并且您的代码不是与区域设置无关的。

也许您使用了String#toLowerCase(),现在一切都崩溃了,因为your clients are Turkish

或者你忽略了SimpleDateFormatlocale dependent

编辑:

I'm almost entirely convinced that it is an error on my user's end

我邀请你摆脱这种信念,并对你的代码采取更卑微的立场。 Because our skulls are so small.