在 Linux 上部署 Java 应用程序需要检查哪些问题?

在 Linux 上部署 Java 应用程序需要检查哪些问题?

在部署用 Java 编写的(没有任何特定平台依赖性)在 Windows 上编写和测试的服务器应用程序时,应特别检查哪些问题。

我知道的两个:

  1. 区分大小写的文件名
  2. 可用字体

答案1

确保您使用的任何第三方 JAR 文件(例如斯瓦西里) 具有适当的平台相关版本。虽然您说“没有任何特定的平台依赖性”,但平台特定的行为有时可能会被隐藏。

还:

  1. 文件路径(您有这样的路径吗C:\Program Files?)
  2. 文件路径(您使用‘/’或‘\’或者您使用适当的常量吗File.pathSeparator?)
  3. 如何定位重要目录(例如用户的主目录)?
  4. 如果您打开端口 1024 以下的套接字,您会成为 UNIX 中的 root 用户吗?
  5. 您会使用 Sun JVM、gcj 还是其他 JVM?实现或性能上的差异会影响您的应用程序吗?
  6. 检查 JVM 发行说明(例如适用于 Java SE 5 的或者Java SE 6) 来提及您所选平台上的错误或其他行为差异。

答案2

你几乎肯定会想要设置

-Djava.awt.headless=true

以防任何库尝试进行任何字体渲染、图像处理或任何其他涉及 Swing、AWT 或 ImageIO 的操作

答案3

1) 确保您的 JVM 在两个平台上是相同的。2) 可能需要进行一定程度的 JVM 调整。3) 启用 JVM 短时间日志记录以确定是否存在任何问题。

答案4

不可否认,这并不是特别针对 Windows 到 Unix 的,但根据我们的经验,值得注意:

  • 检查 $JAVA_HOME/jre/lib/security/java.security 中的设置 - 特别是networkaddress.cache.ttl- Sun JRE 默认会永久缓存 DNS 查找,这已多次困扰我们和我们的客户。' -Dsun.net.inetaddr.ttl=60' 应该从命令行覆盖它。

  • 确保您正在运行足够大小的堆:-Xmx2048m或类似内容(取决于您的应用程序要求)

相关内容