最近在linux上定时执行脚本程序的要求越来越多了,今天的任务是:在linux服务器上编一个脚本,并定时执行该脚本(脚本的目的执行一个java程序,要求java程序要打成jar包)。
1.编写java程序(公司要求我要读取一个txt文件,并将txt文件的不同的ip做一个统计在存放到一个新的txt文件中)
package com.easymorse;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
public class Test1 {
/**
* author jordy
*/
public static void main(String[] args) {
HashSet set = new HashSet();
HashSet set1 = new HashSet();
String temp = "";
boolean tf;
try {
//要读取的txt文件
FileReader fr = new FileReader("WebRoot\\resource\\welcomelog.txt");
BufferedReader in = new BufferedReader(fr);
String line;
while ((line = in.readLine()) != null){
temp = line.substring(0, 14);
tf = set.add(temp);
if(tf){
int firstleft = line.indexOf('(');
int firstright = line.indexOf(')')+1;
String othercontent = line.substring(firstleft, firstright);
String allcontent = temp + " -*-*-*-*-*-*-*-*- " + othercontent + "\n";
set1.add(allcontent);
}
}
set = null;
Iterator it = set1.iterator();
while(it.hasNext()){
String content = (String)it.next();
//新文件保存的路径
write("D:\\123.txt",content);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
public static void write(String path,String content){
String s = new String();
String s1 = new String();
try{
File f = new File(path);
if(f.exists()){
System.out.println("文件存在");
}else{
System.out.println("文件不存在,正在创建...");
if(f.createNewFile()){
System.out.println("文件创建创建成功");
}else{
System.out.println("文件创建创建失败");
}
}
BufferedReader input = new BufferedReader(new FileReader(f));
while((s = input.readLine()) != null){
s1 += s + "\n";
}
System.out.println("文件以前的内容:" + s1);
input.close();
s1 += content;
BufferedWriter output = new BufferedWriter(new FileWriter(f));
output.write(s1);
output.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
由于要统计不同的IP,代码中应用了HashSet来存放IP地址。
上述java程序是在windows下编写的,如果在linux服务器上运行,只需要把上面文件的路径和文件更换了就可以了。
2.编写好java程序后,将java程序打成jar文件(环境linux)
我将上述测试好的java类上传到了linux服务器上,考虑到服务器的路径与windows下的路径不同所以我在服务器上将上述代码更改为服务器上的代码了。
(1) 修改文件路径
sudo vim Test1.java
(2) 生成.class文件
javac Test1.java
(3) 创建一个.mf文件,并编辑该文件
sudo touch Test1.mf
sudo vim Test1.mf
Test1.mf文件内容如图:
(4) 打.jar包
jar cfm test1.jar Test1.mf *.class
执行完上述命令,文件夹中会多一个test1.jar文件
java -jar test1.jar
测试你的jar是否成功,如果成功会有一个123.txt文档。
(5) 编写一个linux脚本执行第四步命令(写此脚本的目的是方便以后linux可以定时执行脚本)
新建一个.sh文件
sudo touch test.sh
编辑该test.sh文件 文件内容如图:
sudo chmod 777 test.sh
./test.sh
上面就把linux执行java程序介绍完了,关于如何执行脚本可以参考我的另一篇博客
http://jordy.easymorse.com/?p=59 本文用的的文件可以在附件中下载其中welcomelog.txt为原始文件,123.txt为程序生成文件。
- 大小: 7.2 KB
- 大小: 6.1 KB
分享到:
相关推荐
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
在Linux环境下运行Java程序是许多开发人员日常工作中的一部分。Linux以其稳定性和安全性成为了服务器平台的首选,而Java作为跨平台的编程语言,其程序在Linux上运行同样具有广泛的应用。这篇博文将深入探讨如何在...
总的来说,通过Linux脚本和`cron`服务,我们可以有效地自动化Java项目的编译和日志管理,确保系统资源的有效利用和维护。在实际操作中,务必确保对脚本进行充分测试,并谨慎设置定时任务,避免误删重要文件或影响...
Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
在Linux环境中运行Java应用程序时,经常需要通过shell脚本来启动Java程序。这种方式不仅便于自动化部署和管理,还可以根据需求灵活调整运行参数。本文将详细介绍如何在Linux环境下编写并运行用于执行Java程序的shell...
标题 "利用脚本启动Java程序" 涉及到的是如何通过编写脚本来自动化执行Java应用程序,这在日常开发和运维工作中非常常见。脚本语言如bash、Windows批处理等可以方便地帮助我们管理和控制Java程序的启动、停止以及...
2. 设置执行权限:赋予脚本执行权限,运行`chmod +x /etc/init.d/myjavaservice`。 3. 添加启动链接:使用`chkconfig --add myjavaservice`命令将其添加到系统服务列表中。 4. 开启自启动:运行`chkconfig ...
linux 服务 运行java 命令,可通过{start|stop|restart|status},查看运行状态。
在IT行业中,shell脚本是Linux或Unix操作系统中的一种强大工具,用于自动化任务执行和系统管理。当涉及到启动Java应用程序时,shell脚本可以提供一个方便、可重复且灵活的方法。下面我们将深入探讨如何使用shell脚本...
- 在持续集成(CI)或自动化部署的场景下,这样的脚本非常有用,可以确保每个新部署的环境都具备了运行Java应用的必要条件。 通过理解上述知识点,你可以创建和理解像`javaPathShell.sh`这样的脚本来自动化管理...
在Linux环境下,经常需要通过脚本来启动或停止Java应用程序。本文档将详细介绍一个通用的Linux启动脚本,它不仅可以启动Java程序,还能有效地管理进程的生命周期。该脚本由tudaxia.com编写于2011年6月7日,主要功能...
通常使用Apache Tomcat、Jetty或其他应用服务器来运行Java Web应用。`installPak.txt`中可能包含下载、解压、配置服务器的命令,如`wget ...
通常情况下,在开发环境中可以直接通过IDE或其他工具运行Java应用程序;然而,在Linux服务器部署场景中,则需要采取其他方式,即先将Java项目打包成JAR文件,再利用命令行来启动执行。 #### 打包Java项目为JAR文件 ...
shell脚本运行java程序jar的方法 shell脚本运行java程序jar的方法是指使用shell脚本来运行...shell脚本运行java程序jar包的方法需要注意环境变量的问题,并且需要设置正确的环境变量,以便java命令可以正确地执行。
本主题聚焦于使用Java来操作Linux服务器,特别是通过执行shell脚本来获取服务器的反馈数据。以下将详细阐述这个过程涉及的技术点和步骤。 首先,我们需要理解Java中的SSH(Secure Shell)框架,它允许我们在安全的...
在Linux系统中,管理和监控Java应用程序是至关重要的任务,尤其是对于那些处理大量并发请求或运行在高负载环境下的服务。本文将深入探讨标题所提及的三个实用脚本:“show-busy-java-threads”、“show-duplicate-...
在Windows系统中,虽然默认的命令解释器是cmd.exe,但该模板提供了与Linux脚本兼容的解决方案,这可能涉及到使用Cygwin或者Windows PowerShell,这两种工具都能执行bash脚本。在Windows脚本中,同样会调用Java命令来...
总结起来,独立在Linux上运行Java程序需要配置`JAVA_HOME`和`CLASSPATH`,管理依赖的jar包,编写脚本进行执行,并可能借助`cron`服务进行定时调度。这个过程需要对Linux命令行工具和Java环境有深入理解,以便有效地...