前言
以前读书的时候浅浅接触过 Java Web 开发,因为水土不服,所以后来走上了 Android 开发这条路。最近突然兴起,想再次了解了解后端开发,今天迈出第一步,搭建开发环境。
想起彼时,JetBrains 的开发套件在国内似乎还未流行起来,大多数人仍在使用 Eclipse 开发,环境的配置也比较繁琐。现在只需下载 IntelliJ IDEA Ultimate,几乎不需要什么配置,开箱即用。
但是众所周知,IntelliJ IDEA Ultimate 需要付费使用,我作为学习需要,还不值得花这笔钱,而网上各种破解都由于版本的迭代变得愈发不稳定,因此免费的 IntelliJ IDEA Community Edition 才是更加适合我的选择。
由此又产生了另一个问题,IntelliJ IDEA Community Edition 是不包含 Tomcat 的,所以还是需要我们手动配置。
配置
前往 Apache Tomcat 官网 下载,下载完成后解压至 ~/Library/
目录,终端进入 Tomcat 下的 bin
目录执行命令:
➜ sudo chmod 755 *.sh
该命令用于授权读写和执行权限,接着尝试启动 Tomcat 服务:
➜ sudo sh ./startup.sh
不知道因为什么原因,即使已经配置过环境变量,Tomcat 无法正确读取我的 JDK 路径:
这并不是什么大问题,因为我们等会可以直接在 IntelliJ IDEA Community Edition 中启动它,你可以跳过这部分的内容。
不过为了能够在终端直接启动,我们可以手动配置一下。
先看看这个问题是在哪里触发的。上方的命令会先进入 startup.sh
文件,内部会调用 catalina.sh
:
PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh
if $os400; then
eval
else
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
echo "Cannot find $PRGDIR/$EXECUTABLE"
echo "The file is absent or does not have execute permission"
echo "This file is needed to run this program"
exit 1
fi
fi
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
而 catalina.sh
内部则会调用 setclasspath.sh
:
# Get standard Java environment variables
if $os400; then
. "$CATALINA_HOME"/bin/setclasspath.sh
else
if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
. "$CATALINA_HOME"/bin/setclasspath.sh
else
echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
echo "This file is needed to run this program"
exit 1
fi
fi
setclasspath.sh
内部找不到 JAVA_HOME
和 JRE_HOME
就会报错:
# Make sure prerequisite environment variables are set
if [ -z "$JAVA_HOME" ] && [ -z "$JRE_HOME" ]; then
...
if [ -z "$JAVA_HOME" ] && [ -z "$JRE_HOME" ]; then
echo "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
echo "At least one of these environment variable is needed to run this program"
exit 1
fi
fi
那么我就可以在 setclasspath.sh
顶部强行写入路径:
# 写入 Java 路径,以自己的安装路径为准
export JAVA_HOME="/Users/liarr/Applications/Android Studio.app/Contents/jbr/Contents/Home"
保存后再次启动:
没有问题。打开浏览器,访问 http://localhost:8080
,能正常访问。
关闭 Tomcat 服务:
➜ sudo sh ./shutdown.sh
接下来进入 IntelliJ IDEA Community Edition 进行配置。首先安装「Smart Tomcat」插件:
然后在「Tomcat Server」中添加我们上面安装的 Tomcat 路径:
配置完成后就可以创建项目,为了省去手动创建文件的步骤,这里我直接选择「Maven Archetype」,当然如果你熟悉项目结构的话也可以使用 Gradle 等其他构建方式。
进入后修改运行配置:
在这里添加「Smart Tomcat」:
然后直接运行,控制台会打印出访问地址:
点击即可在浏览器访问,它所渲染的是 ./src/main/webapp/index.jsp
的内容。
至此,基于 IntelliJ IDEA Community Edition 的 Tomcat 配置就已完成,可以愉快地进行下一步的学习了。
另外,这种方法适用于我们开发和调试阶段,如果需要部署到生产环境,需要打成 WAR 包,这属于后话。