跳到主要内容
版本:Next

Java

关于

Java 是一个老牌的跨平台语言。Java 归属 Oracle 之后,开源社区各种力量角逐,并蓬勃发展,慢慢的出现多个 JDK 分支和各种有特色的应用程序服务器和中间件。

所以,Websoft9 的 Web Runtime 在设计时,充分考虑了这个因素,让用户有更多合适的选择。

环境选择与部署程序

Websoft9 提供的所有 Java 程序环境都运行了 JDK 或 JRE,即理论上都可以运行 Java 程序。

而大部分时候,用户需要运行 Java Web 程序,它的运行逻辑见下图:

如果是 Java Web 程序,那么就需要类似应用服务器等更多组件。

下面我们推荐根据实际场景做出最合适的选择:

  • 如果运行一个包含 Web 服务器的 war 程序包,那么请选择 OpenJDK
  • 如果运行一个不包含 Web 服务器的 war 程序包,那么请选择 Jetty,Tomcat,Tomee
  • 如果只是构建并打包,请选择 Maven

通用指南

安装包管理工具

安装 maven, gradle 的范例:参考

版本切换

可以很方便的切换 docker 镜像版本,实现 Java 环境的切换。但需要考虑切换后,JDK 是否兼容您的应用程序。

配置选项

  • JDK 环境应用路径:/usr/src/app
  • Jetty 环境应用路径:var/lib/jetty/webapps
  • Tomcat 环境应用路径:/usr/local/tomcat
  • Tomee 环境应用路径:/usr/local/tomee
  • 命令行:java, javac, jar, jdeprscan 等
  • Java 百科:Awesome Java
  • 包管理器:maven, gradle

问题与故障

JDK 与 JRE 有什么区别?

JRE 是 JAVA 程序运行时,JDK 是 Java 开发者套件。JDK 包含了 JRE。

Java 应用程序启动过慢?

这是由于 java.security 随机数策略导致

访问 Tomcat 报404 ?

原因:Tomcat 容器应用路径中没有任何 app
方案:部署自己的 web 应用即可正常访问

Jetty 下 war 没解压解?

Jetty 环境下运行 war 包后,并没有在 war 包的路径下看到解压文件。

其实,这是正常的,因为 Jetty 会将 war 包解压到另外的路径中(与 Tomcat 不同)