编写一个shell脚本来编译并运行java代码
安装Java
下载java源码包
安装的是JDK8,下载地址如下:下载链接
注意,不要在服务器中使用wget来下载jdk,因为oracle会认为你是爬虫,下载的文件不是jdk,而是一个html文件。
上传服务器并解压
使用传输工具将jdk的源码传到服务器上,然后解压后,将文件夹拷贝到/usr/local/下即可。
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ls
jdk-8u201-linux-x64.tar.gz
[root@localhost src]# tar zxf jdk-8u201-linux-x64.tar.gz
[root@localhost src]# ls
jdk1.8.0_201 jdk-8u201-linux-x64.tar.gz
[root@localhost src]# mv jdk1.8.0_201 /usr/local/java
[root@localhost src]# /usr/local/java/bin/java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
添加Path和环境变量
将java下面的bin目录中的各种命令加入到path中,可以修改/etc/profile文件,可以让服务器上的所有用户使用java环境:
# 编辑/etc/profile文件,在文件末尾增加以下3行代码 # 配置JAVA_HOME变量
export JAVA_HOME=/usr/local/java # 配置JRE_HOME变量
export JRE_HOME=$JAVA_HOME/jre # 配置环境PATH
export PATH=$JAVA_HOME/bin:$PATH # 配置CLASSPATH变量,如果是JDK7及之后版本可以不用设置
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配合文件生效
使用source命令来时配置生效。
source /etc/profile
进行测试
# 创建一个测试文件
[root@localhost ~]# vi Test.java
#文件内容为
public class Test {
public static void main(String[] args) {
System.out.println("hello world");
}
} # 进行编译
[root@localhost ~]# javac Test.java # 运行
[root@localhost ~]# java Test
hello world
安装Tomcat
下载Tomcat的源码包,解压到/usr/local/下,目录名为tomcat。
tomcat的源码包列表:https://archive.apache.org/dist/tomcat/tomcat-8/
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz
[root@localhost src]# ls
apache-tomcat-8.0.53.tar.gz jdk-8u201-linux-x64.tar.gz
[root@localhost src]# tar zxf apache-tomcat-8.0.53.tar.gz
[root@localhost src]# mv apache-tomcat-8.0.53 /usr/local/tomcat
注意,在下载的时候,有src和bin包两种,请选择bin包格式,因为src包中会缺少一些东西。
配置环境变量
# 编辑/etc/profile文件夹,在末尾增加两行命令
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat # 保存退出后,使用source 命令让配置文件生效
source /etc/profile
创建cataline.out文件
该文件用于存储:服务器启动和运行过程中的控制台输出。
[root@localhost ~]# cd /usr/local/tomcat
[root@localhost tomcat]# touch logs/catalina.out
修改防火墙配置
防火墙默认只开启了某些端口,如果Tomcat要使用的端口没有打开的话,就不能从别的地方访问本机服务器,假设Tomcat的服务器使用8089端口,可以这样修改:
# 编辑/etc/sysconfig/iptables这个文件,添加
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
重启防火墙,让配置生效
[root@localhost ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
启动服务器
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
查看Tomcat的状态
有多种方式:
1、Tomcat默认使用8080端口,可以通过lsof -i:8080来查看8080端口是否被使用即可。
2、查看进程: ps aux | grep tomcat
3、查看/usr/local/tomcat/logs/catalina.out日志输出文件即可。
4、访问localhost:8080,看是否会有下面的页面:

因为开启了防火墙的8080端口,所以可以让其他主机访问本机服务器。
编写一个shell脚本来编译并运行java代码的更多相关文章
- [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现
本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...
- 1.编写一个shell脚本
一.shell和shell脚本 在linux系统下,以 #/bin/bash开头的文本会被shell解释器进行解释. shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操 ...
- AJPFX编写cmd界面下一键编译、执行java代码的bat脚本
此脚本适合刚接触java的同学,在cmd界面下用jc取代 复杂的 javac *.java + java main使用说明:把脚本内容复制到txt文本中,修改后缀名为.bat,运行一次即可完成配置, ...
- 在linux写一个shell脚本用maven git自动更新代码并且打包部署
服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...
- 编写第一个 Shell 脚本
什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Sh ...
- 编写第一个Shell脚本【TLCL】
怎样编写一个 Shell 脚本 编写一个脚本 使脚本文件可执行 把脚本放到Shell能够找到的地方 脚本文件格式 #!/bin/bash # This is our first script. ech ...
- shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。
shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...
- shell编写一个判断脚本
shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/roo ...
随机推荐
- 控件_ProgressBar
进度条的风格: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...
- 解决MySQL Workbench导出乱码问题
1.导出数据 2.默认CSV格式 3.乱码 4.解决 文件->另存为,会发现编码为UTF-8,正是MySQL表的编码方式.我们选择编码方式为ANSI,保存类型为所有,覆盖源文件
- [笔记]一些STL用法
参考资料:STL 在 OI 中的应用 离散化 std::unique 功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面 返回值:返回迭代器,迭代器指向的是重复元 ...
- dp HDU - 5074
按题意推表达式 #include<cstdio> #include<cstring> #define max(a, b) (a)>(b)?(a):(b) ][], num ...
- php 对象教程
[PHP面向对象(OOP)编程入门教程]6.如何去使用对象中的成员 作者:qianyunlai.com 发布于:2012-05-19 15:02 分类:PHP基础 浏览(280) 上面看到PHP ...
- logbak 配置相关
一.配置简单 1. 配置简单,易于上手,通过logback.xml文件进行配置,如果没有配置的话,执行默认配置 <configuration> <appender name=&quo ...
- MongoDB数据库中查询数据(下)
MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...
- WebSocket原理与实践(四)--生成数据帧
WebSocket原理与实践(四)--生成数据帧 从服务器发往客户端的数据也是同样的数据帧,但是从服务器发送到客户端的数据帧不需要掩码的.我们自己需要去生成数据帧,解析数据帧的时候我们需要分片. 消息 ...
- 你所不了解的javascript操作DOM的细节知识点(一)
你所不了解的javascript操作DOM的细节知识点(一) 一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节 ...
- PAT A1029 Median (25 分)——队列
Given an increasing sequence S of N integers, the median is the number at the middle position. For e ...