精华内容
下载资源
问答
  • java 开机自启动 完整工程 包含lib
  • shell脚本启动java maven工程

    千次阅读 2017-08-24 14:40:52
     我们在服务器上运行一个java工程的时候,大多数都是用java -jar *.jar此种命令方式来运行java工程,而且此种方式较为复杂,需要把工程用到的相关包都打包上,再配置Main-Class,那么是否有一种科学的方式来运行java...
    shell脚本启动java maven工程

               我们在服务器上运行一个java工程的时候,大多数都是用java -jar *.jar此种命令方式来运行java工程,而且此种方式较为复杂,需要把工程用到的相关包都打包上,再配置Main-Class,那么是否有一种科学的方式来运行java maven工程。而且把工程里面的配置文件更好的分类呢?我们依然以项目为例。
    一、代码目录结构


            我们这里只需要在src/main目录下面建立assembly文件夹和scripts文件夹,然后将其assembly.xml和env.sh和server.sh拷贝进去,然后再pom.xml里面配置打包插件,首先我们看一下这三者是怎么配置的。
    (1)assembly.xml,大家复制即可。
    <assembly
    	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    	
    	<id>bin</id>
    	<formats>
    		<format>tar.gz</format>
    	</formats>
    	<dependencySets>
    		<dependencySet>
    			<useProjectArtifact>true</useProjectArtifact>
    			<outputDirectory>lib</outputDirectory>
    			<scope>runtime</scope>
    		</dependencySet>
    	</dependencySets>
    	<fileSets>
    		<fileSet>
    			<directory>src/main/scripts</directory>
    			<outputDirectory>/bin</outputDirectory>
    			<lineEnding>unix</lineEnding>
    			<fileMode>0755</fileMode>
    			<includes>
    				<include>*.sh</include>
    			</includes>
    		</fileSet>
    		<fileSet>
    			<directory>target/classes</directory>
    			<outputDirectory>/conf</outputDirectory>
    			<includes>
    				<include>*.xml</include>
    				<include>*.conf</include>
    				<include>*.properties</include>
    			</includes>
    		</fileSet>
    	</fileSets>
    </assembly>
                 这里我们可以看到将配置文件更好的分类,将以sh结尾的文件放置与bin目录下,将xml、conf、properties结尾的放置于conf目录下,所需jar包和本身项目打包jar包放置于lib目录下。
    (2)env.sh,复制只需要修改STARTUP_CLASS="com.starit.ipran.socket.ServerStart"为主方法所在的类。
    #!/bin/bash
    
    if [ "$JAVA_HOME" != "" ]; then
      #echo "run java in $JAVA_HOME"
      JAVA_HOME=$JAVA_HOME
    fi
    
    if [ "$JAVA_HOME" = "" ]; then
      echo "Error: JAVA_HOME is not set."
      exit 1
    fi
    
    JAVA=$JAVA_HOME/bin/java
    SERVER_HOME=$BASE_DIR
    BASE_HOME=$BASE_DIR
    BASE_NAME="ALARM"
    STARTUP_CLASS="com.starit.ipran.socket.ServerStart"
    
    #SERVER JMX port
    export JMX_PORT=9232
    HOST_NAME=`hostname`
    SERVER_NAME=$BASE_NAME-$HOST_NAME-$JMX_PORT
    #export CLASSPATH=$BASE_DIR/conf:$(ls $BASE_DIR/lib/*.jar | tr '\n' :)
    export CLASSPATH=$BASE_DIR/conf:$BASE_DIR/lib/*
     
    #SERVER jvm args
    SERVER_JVM_ARGS="-Xmx2048m -Xms1024m"
    SERVER_APP_ARGS="-DBASE_HOME=$BASE_HOME -DSERVER_NAME=$SERVER_NAME"
    SERVER_JMX_ARGS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=$JMX_PORT"
    SERVER_JVM_ARGS="$SERVER_JVM_ARGS -cp $CLASSPATH $SERVER_JMX_ARGS $SERVER_APP_ARGS"
    
    if [ -z "$SERVER_ARGS" ]; then
      export SERVER_ARGS="$SERVER_JVM_ARGS"
    fi
    
    (3)server.sh  工程服务启动、重启、停止,复制即可
    #!/bin/bash
    
    if [ -z "$BASE_DIR" ] ; then
      PRG="$0"
    
      # need this for relative symlinks
      while [ -h "$PRG" ] ; do
        ls=`ls -ld "$PRG"`
        link=`expr "$ls" : '.*-> \(.*\)$'`
        if expr "$link" : '/.*' > /dev/null; then
          PRG="$link"
        else
          PRG="`dirname "$PRG"`/$link"
        fi
      done
      BASE_DIR=`dirname "$PRG"`/..
    
      # make it fully qualified
      BASE_DIR=`cd "$BASE_DIR" && pwd`
      #echo "server is at $BASE_DIR"
    fi
    
    source $BASE_DIR/bin/env.sh
    
    AS_USER=`whoami`
    LOG_DIR="$BASE_DIR/logs"
    LOG_FILE="$LOG_DIR/server.log"
    PID_DIR="$BASE_DIR/logs"
    PID_FILE="$PID_DIR/.run.pid"
    
    
    
    function running(){
    	if [ -f "$PID_FILE" ]; then
    		pid=$(cat "$PID_FILE")
    		process=`ps aux | grep " $pid " | grep -v grep`;
    		if [ "$process" == "" ]; then
    	    	return 1;
    		else
    			return 0;
    		fi
    	else
    		return 1
    	fi	
    }
    
    function start_server() {
    	if running; then
    		echo "$SERVER_NAME is running."
    		exit 1
    	fi
    
        mkdir -p $PID_DIR
        touch $LOG_FILE
        mkdir -p $LOG_DIR
        chown -R $AS_USER $PID_DIR
        chown -R $AS_USER $LOG_DIR
        
       	echo "starting $SERVER_NAME, logging to $LOG_FILE, the baseHome $BASE_HOME"
        nohup nice -n 0  $JAVA $UEAP_JVM_ARGS $STARTUP_CLASS "$@" > $LOG_FILE 2>&1 < /dev/null &
        echo $! > $PID_FILE
        
        exit 0;
    }
    
    function stop_server() {
    	if ! running; then
    		echo "$SERVER_NAME is not running."
    		exit 1
    	fi
    	count=0
    	pid=$(cat $PID_FILE)
    	while running;
    	do
    	  let count=$count+1
    	  echo "Stopping $SERVER_NAME $count times"
    	  if [ $count -gt 5 ]; then
    	  	  echo "kill -9 $pid"
    	      kill -9 $pid
    	  else
    	      kill $pid
    	  fi
    	  sleep 3;
    	done	
    	echo "Stop $SERVER_NAME successfully." 
    	rm $PID_FILE
    }
    
    function status(){
        if running; then
           echo "$SERVER_NAME is running.";
           exit 0;
        else
           echo "$SERVER_NAME was stopped.";
           exit 1;
        fi
    }
    
    function reload_logback_config() {
    	if ! running; then
    		echo "$SERVER_NAME is not running."
    		exit 1
    	fi
    	echo "Reloading $SERVER_NAME logback config, logging to $LOG_FILE"
    }
     
    function help() {
        echo "Usage: server.sh {start|status|stop|restart|reload}" >&2
        echo "       start:             start the $SERVER_NAME server"
        echo "       stop:              stop the $SERVER_NAME server"
        echo "       restart:           restart the $SERVER_NAME server"
        echo "       reload_logback:    reload logback config file"
        echo "       status:            get $SERVER_NAME current status,running or stopped."
    }
    
    command=$1
    shift 1
    case $command in
        start)
            start_server $@;
            ;;    
        stop)
            stop_server $@;
            ;;
        reload_logback)
            reload_logback_config $@;
            ;;
        status)
        	status $@;
            ;; 
        restart)
            $0 stop $@
            $0 start $@
            ;;
        help)
            help;
            ;;
        *)
            help;
            exit 1;
            ;;
    esac
    
    (4)pom.xml文件,只需要修改<mainClass>com.starit.ipran.socket.ServerStart</mainClass>,其他不变,将以下内容加入pom.xml中
    <build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    				<configuration>
    					<skip>true</skip>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.codehaus.mojo</groupId>
    				<artifactId>exec-maven-plugin</artifactId>
    				<configuration>
    					<executable>java</executable>
    					<mainClass>com.starit.ipran.socket.ServerStart</mainClass>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-jar-plugin</artifactId>
    				<configuration>
    					<excludes>
    						<exclude>*.xml</exclude>
    					</excludes>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-assembly-plugin</artifactId>
    				<configuration>
    				
    					<descriptors>
    						<descriptor>src/main/assembly/assembly.xml</descriptor>
    					</descriptors>
    				</configuration>
    				<executions>
    					<execution>
    						<id>make-assembly</id>
    						<phase>package</phase>
    						<goals>
    							<goal>single</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    	</build>
     二、配置好之后执行maven clean,然后maven install后会生成如图所示包
    三、测试演示
    (1)将gzinm-ipran-alarm-0.0.1-SNAPSHOT-bin.tar.gz放到服务器上,利用tar -zxvf gzinm-ipran-alarm-0.0.1-SNAPSHOT-bin.tar.gz解压之后我们可以看到


    此时bin和conf 和lib下面分别是

    现在我们只需要执行./server.sh start启动,执行./server.sh stop停止,执行./server.sh restart重启即可完成对整个工程的启动、停止和重启


    展开全文
  • 如题 我在工程里面实现了ApplicationListener接口,用于在web工程启动时初始化一些 参数。在tomcat中启动工程时无法加载数据库驱动,在网上看到一些资料说是使用了不同的类加载器造成的,不知道有没有大神遇到相似的...
  • windows tomcat8 启动 以及 部署 java web 工程项目 启动tomcat 配置Tomcat环境变量 前言:Tomcat运行基于jdk环境,所有首先需要安装配置jdk 添加 TOMCAT_HOME 环境变量,也就是tomcat目录,H:\apache-tomcat-...

    windows tomcat8 启动 以及 部署 java web 工程项目

    启动tomcat

    • 配置Tomcat环境变量

    前言:Tomcat运行基于jdk环境,所有首先需要安装配置jdk

    添加 TOMCAT_HOME 环境变量,也就是tomcat目录,H:\apache-tomcat-8.0.3
    
    将变量添加到系统的path目录中,例如:%TOMCAT_HOME%\bin

    这里写图片描述
    这里写图片描述

    • 添加Tomcat

    展开全文
  • Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目。具体操作如下: ... 2、再将WebTest工程放到tomcat根目录下,并将webapp

    Tomcat设置默认启动项目

    Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目。具体操作如下:

        1、打开tomcat的安装根目录,找到Tomcat 6.0\conf\server.xml,打开该文件,找到<Host>节点,在该节点中添加

    <Context path="" docBase="../WebTest" debug="0" reloadable="true"/>

        2、再将WebTest工程放到tomcat根目录下,并将webapps文件夹中的ROOT文件夹删除或者重命名为另外一个名字。

       3、启动tomcat,在浏览器中输入ip:8080,就可以访问到你的项目了。

     

     注意:<Context>节点中的docBase属性的值是指向web工程的绝对路径。

     

        

     

                                Web工程设置默认启动页面

    Java web工程设置默认启动页面是通过web.xml文件来配置的。具体配置如下:

    <servlet>

    <servlet-name>StartServlet</servlet-name>

        <servlet-class>NVMP.VideoServer.implement.StartServlet</servlet-class>

         <load-on-startup>0</load-on-startup>

    </servlet>

     

      <servlet-mapping>

        <servlet-name>StartServlet</servlet-name>

        <url-pattern>/StartServlet</url-pattern>

      </servlet-mapping>

     

      <welcome-file-list>

        <welcome-file>login.jsp</welcome-file>

      </welcome-file-list>

    展开全文
  • 这个是启动类: ![图片说明](https://img-ask.csdn.net/upload/201505/20/1432103883_177360.png) 这个是工程目录 ![图片说明](https://img-ask.csdn.net/upload/201505/20/1432103925_855871.png)
  • eclipse 报错java.lang.NoClassDefFoundError: 像这种是本地工程说找不到类文件的, 对于maven 工程 ,一般是依赖的版本修改了,但是本地又没有该版本的jar包, 导致了class not foud 解决办法: 找到你的...

    eclipse 报错java.lang.NoClassDefFoundError: 

     

    像这种是本地工程说找不到类文件的,

    对于maven 工程 ,一般是依赖的版本修改了,但是本地又没有该版本的jar包, 导致了class not foud

    解决办法:

        找到你的缺失jar 包工程, 然后 右键 ->maven ->updateProject

     

     

    不是本地工程, 引入相应jar包即可解决;

     

     

     

     

    maven 命令 进入你要打包的工程

    mvn package -Dmaven.skip.test=true

     

    展开全文
  • 时候,我们会有这样的需求: 1. 系统首次部署时,自动创建数据库、表 2. 执行单元测试时,数据库、表维持初始化状态方便测试。
  • java工程在windows环境用bat启动详解

    千次阅读 2016-08-24 13:19:52
    今天get一门新技能,java工程脱离eclipse之后再windows环境下如何启动!之前没有接触过,感觉到一脸懵逼,但是今天在研究一上午之后终于知道怎么弄了,好了,闲话少说,下面我把我的经验分享给大家。 1、新建...
  • 一、用Eclipse将Java工程打包成Jar包 step1 step2 step3 二、用bat文件启动Jar包 step4 step5 step6 一、用Eclipse将Java工程打包成Jar包 step1 在Eclipse中右键你要打包的工程,点击”Export...
  • JAVA工程与java web工程的区别

    万次阅读 2012-08-13 16:22:33
    从网上找到的,这些个知识可以用于对原本用于java工程,想应用于web工程的开发工具修改 ----也可以理解为对java工程的eclipse理解扩展   想必大家在使用MyEclipse时对这两个概念不去深究。只知道是Java EE类的基本...
  • JAVA WEB项目启动后404错误

    千次阅读 2020-09-21 17:42:30
    JAVA WEB项目启动后登录界面404错误 Java web项目正常启动后,自动跳转404错误,错误原因一般是因为路径地址不对,从两个方向排查: 1.web.xml文件找标签 ...标签下可以设置个首页,容器启动后会在根目录下依次查找
  • 如下:启动工程时,加载配置文件的用户名和密码到map中, 通过getKeyByValue()获取即可   import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import javax.annotation.PostConstruct...
  • myeclipse配置tomcat,但是在部署java web工程后就无法启动,具体原因见图。 希望前辈们帮帮忙。![图片说明](https://img-ask.csdn.net/upload/201604/24/1461471829_299881.png)
  • Intellij IDEA打开Java项目并启动

    万次阅读 2019-04-03 12:47:12
    最近有很同学,竟然不知道如何使用Intellij IDEA打开Java项目并启动 目录 Maven项目 2、Maven项目是以pom文件引入各项jar包的在点击lmport Project,然后在点击pom.xml,再点击Open​ 3、再点击Next​ 4、...
  • 如何在IDEA启动多个Spring Boot工程实例

    万次阅读 多人点赞 2017-07-30 22:27:01
    在我讲解的案例中,经常一个工程启动多个实例,分别占用不同的端口,有很多读者百思不得其解,在博客上留言,给我发邮件,加我微信询问。所以有必要在博客上记录下,方便读者。step 1在IDEA上点击Application右边的...
  • Java Web工程转换为基于Maven的Web工程

    万次阅读 2016-01-23 14:13:30
    最近接到通知,阿里集团统一要求把历史项目迁移到阿里生产环境中来,而咱手头这个项目是2012年的老项目,普通java web工程,不能部署进生产环境,得把这个工程转为maven工程。本篇文章记录了java web工程转为maven ...
  • Eclipse创建java web工程

    万次阅读 多人点赞 2016-05-13 19:55:22
    Eclipse创建java web工程 eclipse版本:eclipse-jee-4.5-win32-x64 tomcat版本:apache-tomcat-7.0.63-windows-x64 jdk版本:jdk1.7 备注:在创建web项目之前首先配置好jdk环境和tomcat环境(即在开发工具中添加...
  • java 普通工程导出成可执行文件

    千次阅读 2018-06-28 12:07:49
    在我的一个普通java工程中就只有两个类,如下: 右键,export-&gt;Runnable jar file 选择启动类和输出路径: finish即可。 注意:有可能选择执行类的时候没有显示你要的类,你需要先执行下main方法,...
  • Java工程师学习指南(中级篇)

    万次阅读 多人点赞 2018-11-01 11:27:13
    原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很小白们的感受,而很朋友都需要更加基础,更加详细的学习路线。 所以,今天...
  • linux java jar包启动停止脚本

    千次阅读 2018-09-01 07:33:57
    #设置工程路径 project_path=/www/wwwroot/www.linzesi.top cd $project_path #nohup后台启动,输出日志到epas.log nohup java -jar epas.jar &gt;epas.log &amp; #打印日志 tail -f epas.log   停止脚本...
  • 启动工程java.lang.reflect.InvocationTargetException的解决 原因是:版本的问题。 查看oss对象存储文档的jdk版本。最好换一个低版本或者最新版本测试。 本人换了低版本即可在服务器上使用。
  • Java工程师学习指南(2019最新版)

    万次阅读 多人点赞 2019-01-08 20:43:21
    写过一个Java工程师学习指南,我把它分为了四个部分,第一步是打好Java基础,掌握Java核心技术,第二步是掌握Java Web技术栈,能够做一些项目,第三步是掌握Java方面的进阶技术,包括网络编程、并发编程、JVM等,第...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,410
精华内容 108,964
关键字:

java多工程启动

java 订阅