阻止您的Java Web应用程序跨平台的事情

mrb*_*lah 5 java cross-platform

有没有什么东西可以无知地阻止java Web应用程序跨平台?(窗口/ LINUX/MAC)

我打算使用的工具是java/spring framework/hibernate

Dan*_*yer 12

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

  • @mrblah:试试java.io.File.separator (4认同)
  • 文件分隔符的硬编码为+1 - 这些是很多应用程序中的脑死亡杀手,这些应用程序没有其他原因无法跨平台工作. (2认同)

pet*_*r p 6

不尊重文件系统中的区分大小写


axt*_*avt 6

不合适时使用系统默认字符编码进行输入/输出


Dan*_*Dan 5

除了Dan Dyer所说的:

  • 通过固定路径或固定名称调用可执行文件
  • 假设某个shell命令语法将正常工作(例如2>&1或某事)
  • 删除或重命名某个其他进程(或同一个!)可能已打开的文件
  • 对工作目录做出假设(例如,使用相对路径从文件系统加载资源)