安装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代码的更多相关文章

  1. [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现

    本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...

  2. 1.编写一个shell脚本

    一.shell和shell脚本 在linux系统下,以 #/bin/bash开头的文本会被shell解释器进行解释.   shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操 ...

  3. AJPFX编写cmd界面下一键编译、执行java代码的bat脚本

    此脚本适合刚接触java的同学,在cmd界面下用jc取代 复杂的  javac *.java + java main使用说明:把脚本内容复制到txt文本中,修改后缀名为.bat,运行一次即可完成配置, ...

  4. 在linux写一个shell脚本用maven git自动更新代码并且打包部署

    服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...

  5. 编写第一个 Shell 脚本

    什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Sh ...

  6. 编写第一个Shell脚本【TLCL】

    怎样编写一个 Shell 脚本 编写一个脚本 使脚本文件可执行 把脚本放到Shell能够找到的地方 脚本文件格式 #!/bin/bash # This is our first script. ech ...

  7. shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

    shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...

  8. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  9. shell编写一个判断脚本

                                                              shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/roo ...

随机推荐

  1. File类_常见的方法(获取目录中指定规则的内容)

    首先定义过滤器 import java.io.File; import java.io.FilenameFilter; public class FileByJava implements Filen ...

  2. python五十四课——datetime模块

    3.datetime模块:理解:datetime可以认为是time模块的补充/扩展datetime模块中有一些常用类:datetime类:记录了日期和时间数据信息date类:记录了日期数据信息time ...

  3. mysql 创建 mb4 字符集数据库

    create database sina default character set utf8mb4 collate utf8mb4_unicode_ci; show variables like ' ...

  4. 转载 c# automapper 使用(一) https://www.cnblogs.com/caoyc/p/6367828.html

    一.最简单的用法 有两个类User和UserDto 1 public class User 2 { 3 public int Id { get; set; } 4 public string Name ...

  5. 各个版本的 Oracle 11.2.0.4下载地址

    Oracle 11.2.0.4下载地址 Linux x86: https://updates.oracle.com/Orion/Services/download/p13390677_112040_L ...

  6. enq: FB - contention

    Troubleshooting 'enq: FB - contention' Format Block Enqueues. (Doc ID 1379986.1) In this DocumentPur ...

  7. 可长点心吧-sort

    sort #<algorithm> 用的时候一定是 从 第一个(你想要排序的范围内的) 到 最后一个+1 真的错了不止一次了 真的长点心吧

  8. vue 如何在循环中 "监听" 的绑定v-model数据

    vue 如何在循环中 "监听" 的绑定v-model数据 阅读目录 vue 如何在循环中 "监听" 的绑定v-model数据 1. 普通属性的值进行监听 2. ...

  9. Objective-C ARC下IBOutlet属性是用weak还是strong来修饰

    1.苹果官方说明: From a practical perspective, in iOS and OS X outlets should be defined as declared proper ...

  10. 【Codeforces 696D】Legen...

    Codeforces 696 D 题意:给\(n\)个串,每个串有一个权值\(a_i\),现在要构造一个长度为\(l\leq 10^{14}\)的串,如果其中包含了第\(i\)个串,则会得到\(a_i ...