哪些问题阻止Java应用程序在多个平台上运行?

Joa*_*uer 20 java cross-platform

Java应该是"一次编写,随处运行",它确实可以,但在某些情况下,它会变成"一次编写,随处调试".

将Java应用程序从一个平台移动到另一个平台时出现问题的最常见原因是什么?

什么是不常见但有趣的原因?

Jon*_*eet 31

  • 不要假设文件系统的情况(in)灵敏度
  • 不要对路径或目录分隔符做出假设
  • 不要对行终止符做出假设
  • 不要使用默认的平台编码,除非你真的,非常肯定你的意思
  • 不要启动"cmd.exe"等(我知道,这听起来很明显 - 但我看到它会导致问题)

  • 另外:不要假设路径前缀如\\,C:,/ (2认同)

Pet*_*aný 14

UI领域很少:

  • 正确/取消等按钮排序不正确
  • 使用绝对布局
  • 不同的加速键
  • 不同大小/字体的渲染
  • 预计存在某些键(Windows键,Meta键)

(虽然这些不是Java特定的)


All*_*nde 9

我只能从个人经历中说出来.这些是我见过的东西:

  1. 在某些体系结构上,线程的抽象方式不同,因此在延迟和可能的排序方面存在细微差别.(这可能导致一些竞争条件)
  2. 控制键盘的状态(大写锁定,数字锁定等)并不总是按预期工作(Linux不允许我将大写锁定更改为禁用的v1.5)


Joa*_*uer 7

使用com.sun.*Sun JDK附带的包中的类.


Joa*_*uer 6

假设您可以写入包含您的应用程序的目录.


Joa*_*uer 5

使用 JNI 是应该考虑的事情。为每个目标平台提供本机库可以减少这个问题。