在部署用Java编写的服务器应用程序(没有任何特定的平台依赖性)时应该特别检查哪些问题,这些应用程序是在Windows上编写和testing的。
我知道的两个:
确保您使用的任何第三方JAR文件(如SWT )具有适当的平台相关版本。 当你说“没有任何特定的平台依赖性”时,特定于平台的行为有时可能被隐藏起来。
也:
C:\Program Files
?) File.pathSeparator
?) 你几乎肯定会想要设置
-Djava.awt.headless=true
如果任何库尝试进行任何字体渲染,image processing或触及Swing,AWT或ImageIO的其他任何内容
1)确保你的JVM在两个平台上都是相同的。 2)某些级别的JVM调优可能是必要的。 3)在短时间内启用JVM日志logging,以确定是否有任何问题。
不可否认,Windows-to-Unix并不是特定的,但值得注意的是基于我们的经验:
检查$ JAVA_HOME / jre / lib / security / java.security中的设置 – 尤其是networkaddress.cache.ttl
– 默认情况下,Sun JRE会永久cachingDNS查找,这会多次使我们和客户端陷入困境。 ' -Dsun.net.inetaddr.ttl=60
'应该从命令行覆盖它。
确保您正在运行一个足够大的堆: -Xmx2048m
或类似(根据您的应用程序要求)