首页 > 后端开发 > 正文

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

2024-04-12 14:03:09 | 我爱编程网

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

java有个Listener! 随tomcat启动而调用自己写的方法!也可以循环调用!就是每过几小时掉用自己的方法web.xml

com.function.SysContextListener

SysContextListener.javapackage com.function;import java.util.Timer;//定时器类

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class SysContextListener implements ServletContextListener

{

private Timer timer = null;

public void contextInitialized(ServletContextEvent event)

{//在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能

timer = new Timer(true);

System.out.println("启动成功");

event.getServletContext().log("定时器已启动--------------------------------------------------");//添加日志,可在tomcat日志中查看到

// timer.schedule(new exportHistoryBean(event.getServletContext(),DealDate.getTime()),0,5*1000);//调用exportHistoryBean,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时。

event.getServletContext().log("已经添加任务--------------------------------------------------");

}

public void contextDestroyed(ServletContextEvent event)

{//在这里关闭监听器,所以在这里销毁定时器。

timer.cancel();

event.getServletContext().log("定时器销毁--------------------------------------------------");

} } exportHistoryBean.javapackage com.function; import java.util.Calendar;

import java.util.TimerTask;

import javax.servlet.ServletContext;

public class exportHistoryBean extends TimerTask

{

private static final int C_SCHEDULE_HOUR = 0;

private static boolean isRunning = false;

private ServletContext context = null;

public exportHistoryBean(ServletContext context)

{

this.context = context;

}

public void run()

{

Calendar c = Calendar.getInstance();

//if(!isRunning)

// {

// if(C_SCHEDULE_HOUR == c.get(Calendar.HOUR_OF_DAY))

// {

isRunning = true;

context.log("开始执行指定任务--------------------------------------------------");

int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);

new WebServiceBean().doWork();//这里就是调用自己的方法了我爱编程网

isRunning = false;

context.log("指定任务执行结束--------------------------------------------------");

// }

// else

// {

// context.log("上一次任务执行还未结束");

// }

// }

}

}

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

怎样让Java程序开机自动运行,并获得你在键盘输入的所有字母,

可能有更好的办法,我只能给你提供一种思路

思路就是将java应用程序打包成.jar文件,然后转成.exe,通过修改注册表来增加删除启动项,即将安装后的.exe执行文件添加到注册表中;

首先将java应用程序打包成.jar文件,可以利用如下代码找到.jar文件的绝对路径,即也可以找到安装后的.exe执行文件

转载:

对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢?

在Java处理的文件系统中,目录的表示方式有两种:

(1)绝对目录,它以"/"为起始字符,代表从根目录下开始寻找给出的目录,如/c:/java

(2)相对路径,它以不带“/”的目录名表示,表示以当前Java程序正在运行的目录作为起始目录来寻找给出的目录。如java/classes。在相对路径中,有一些特定的字符,可以代表特的的目录,比如,“.”代表当前目录,“..”代表当前目录的上一级目录。在网上很多给出的例子中,就是利用"."作为目录名,构造File对象的实例,然后通过File对象的方法来获取当前程序运行的目录。

这种方法虽然简单,但有时不能正确的得出当前程序的运行目录。原因在于,运行Java程序不一定要进入到该程序的类文件或JAR文件所在的目录,只要在运行时指定了正确的类路径信息,就可以在任何目录中运行Java程序,此时利用这种方法只能得到发出运行命令时所在的目录信息。

请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?

怎么直接运行java程序

直接运行即双击鼠标运行的方法有二

一.手动打jar包法

1.首先得到你编译后的所有class文件,并讲所有文件放到JDK环境能够识别的目录或盘符下

2.在"运行"框里输入cmd进入"命令行模式"(DOS),进入你存放class文件的目录或盘符,输入:"jar_cfm_任意名字.jar_任意名字.mf_第一CLASS文件.class_第二个CLASS文件.class ....最后一个CLASS文件.class" 按回车得到"任意名字.jar"文件.

3.mf文件是清单文件,向JVM提供程序的相关信息,最简单的格式如下:

任意名字.mf

Manifest-Version:_1.0

Main-Class:_main方法所在类的类名

Created-By:_1.4(Sun Microsystem Inc.)

二.IDE打jar包法

流行的IDE例如eclipse,JBuilder都提供有打包成jar的选项,只需要找到此选项即可.

注:以上文字中的"_"代表空格

以上就是我爱编程网为大家带来的请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?,希望能帮助到大家!
与“请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?”相关推荐