阻止Java Web应用程序跨平台的因素

5

有没有什么不经意间做的事情会阻止Java Web应用程序跨平台运行?(Windows / Linux / Mac)

我计划使用的工具是Java / Spring框架/ Hibernate。

4个回答

12
  • 硬编码文件分隔符/路径。
  • 使用本地库。
  • 使用 Runtime.exec()。
  • 使用 sun.* 类(这可能会导致在非 Sun JVM 中存在可移植性问题)。

2
对于硬编码文件分隔符的做法给予肯定——这是许多应用程序中无法跨平台工作的致命问题。 - delfuego
使用 sun.*(以及大多数 com.sun.*)类可能会导致在更新版本之间的可移植性问题。不要这样做! - Tom Hawtin - tackline
你如何避免硬编码分隔符?使用 .xml 配置文件或者其他方式? - mrblah
4
尝试使用Java的io包中的File.separator。 - karoberts

6

文件系统不区分大小写


6

在不合适的情况下使用系统默认字符编码进行输入/输出


5
除了Dan Dyer所说的内容外:
  • 通过固定路径或名称调用可执行文件
  • 假设某些Shell命令语法能够正常工作(例如2>&1等)
  • 删除或重命名其他进程(或同一进程!)可能正在使用的文件
  • 对工作目录进行假设(例如,使用相对路径从文件系统加载资源)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接