精华内容
下载资源
问答
  • linux下通过.sh文件启动java程序

    万次阅读 2011-08-09 16:47:15
    linux下通过.sh文件启动java程序: 首先把java程序打成jar包,指定好主类(入口) sh文件如下 #!/bin/sh java -Xbootclasspath/a:log4j.jar:ojdbc.jar: -jar domain.jar 执行: .

    linux下通过.sh文件启动java程序:

    首先把java程序打成jar包,指定好主类(入口)

    sh文件如下

    #!/bin/sh

    java -Xbootclasspath/a:log4j.jar:ojdbc.jar:  -jar domain.jar

    执行:

    ./run.sh

    以下内容为转载:


    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。

     

    具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。

     

    比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName

    我们就只要在MANIFEST.MF里面添加如下一句话:

    Main-Class: test.someClassName

     

     然后我们可以在控制台里输入java -jar  test.jar即可以运行这个jar。

     

    但是我们这个项目需要引用其他第三方的jar包,在eclipse里面以项目jar包的形式引用了这个叫做some.jar的包,当时放在项目的lib子目录下,最后项目打包时把这个some.jar也打进来了,但是用java -jar执行这个test.jar的时候报找不到Class异常,原因就是jar引用不到放在自己内部的jar包。

     

    那怎么办?

     

    运行时将其加入classpath的方式行不行?就是在运行jar的同时加入classpath参数:

    java -classpath some.jar  -jar test.jar

     

    这种方式是不行的,因为使用classpath指定的jar是由AppClassloader来加载,java 命令 加了-jar 参数以后,AppClassloader就只关注test.jar范围内的class了,classpath参数失效。

     

    那该怎么引用其他的jar包呢?

     

    方法一、使用Bootstrap Classloader来加载这些类。

     

    我们可以在运行时使用如下参数:

     

    -Xbootclasspath:完全取代系统Java classpath.最好不用。
    -Xbootclasspath/a: 在系统class加载后加载。一般用这个。
    -Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了.

    win32     java -Xbootclasspath/a:some.jar;some2.jar;  -jar test.jar
    unix           java -Xbootclasspath/a:some.jar:some2.jar:  -jar test.jar
    win32系统每个jar用分号隔开,unix系统下用冒号隔开

     

     

     

    方法二、使用Extension Classloader来加载

     

    你可以把需要加载的jar都扔到%JRE_HOME%/lib/ext下面,这个目录下的jar包会在Bootstrap Classloader工作完后由Extension Classloader来加载。非常方便,非常省心。:)

     

     

     

    方法三、还是用AppClassloader来加载,不过不需要classpath参数了

     

    我们在MANIFEST.MF中添加如下代码:

    Class-Path: lib/some.jar

     

    lib是和test.jar同目录的一个子目录,test.jar要引用的some.jar包就在这里面。

    然后测试运行,一切正常!

     

    如果有多个jar包需要引用的情况:

    Class-Path: lib/some.jar lib/some2.jar

    每个单独的jar用空格隔开就可以了。注意使用相对路径。

     具体方式如下:

    把这个文件用RAR打开把META-INF目录下的那个文件copy出来

    用文本编辑器编辑,编辑结束保存后,

    使用

    jar -ufm run.jarMANIFEST.MF

    把这个方件更新到里边去,这样再用就可以了




    另:如果META-INF 下包含INDEX.LIST文件的话,可能会使Class-Path配置失效。INDEX.LIST是Jar打包工具打包时生成的索引文件,删除对运行不产生影响。

     2。如果使用命令不行的话,可以使用rar打开jar包,然后拖动改好的MANIFEST.MF到rar打开的窗口,会提示:复制并替换,这样就可以了

     

    方法四、自定义Classloader来加载

    这种方法是终极解决方案,基本上那些知名java应用都是那么干的,如tomcat、jboss等等。

    这种方式有点复杂,需要专门开贴讨论。关于ClassLoader的原理和自定义ClassLoader可以参考这篇 http://longdick.iteye.com/blog/442213。

     

     

    总结:

    以上四种方法都可以用,特别是程序运行在非常单纯的环境中时。但是,如果是运行在多任务,多应用的环境中时,最好每个应用都能相互独立,第一种和第二种方案都有可能对其他应用产生影响,因此最好就是选择第三种和第四种。


    展开全文
  • 自己编写Java程序,注册为Linux Service服务,通过 service xxx start 启动后,发现日志文件中文乱码,如果不使用服务启动,则没有乱码。 出现此问题可能是系统环境变量设置不正确,也可能是服务启动工具没有添加...

    自己编写Java程序,注册为Linux Service服务,通过 service xxx start 启动后,发现日志文件中文乱码,如果不使用服务启动,则没有乱码。
    出现此问题可能是系统环境变量设置不正确,也可能是服务启动工具没有添加中文的设置,最终的结果导致以服务形式启动的程序输出的日志文件乱码,在操作系统本身支持中文的情况下 排查方法如下:

    1、首先查看自己系统中环境变量LANG的设置
    使用命令:echo $LANG,如下所示

    [root@localhost data]# echo $LANG
    zh_CN.UTF-8
    如果输出的不是以上的结果,则需要在 系统 profile文件中进行设置,步骤如下:

        vim /etc/profile
    
        在文件最后写入:
    
        export LANG=zh_CN.UTF-8
    
        保存后,重新加载 profile文件:source /etc/profile,重新查看LANG设置即可看到UTF-8设置。
    

    2、查看服务启动工具对环境变量的使用
    使用命令 :grep env /sbin/service
    在这里插入图片描述

    将LANG="$LANG" 配置在env -i 后面,最后的结果如下所示,操作过程:
    
    编辑service文件
    
    vim /sbin/service
    
    在env -i 后面加上 LANG="$LANG"  。
    
    添加后  重启操作系统
    
    重新运行服务即可解决 日志文件乱码的问题。
    
    展开全文
  • shell 启动 java jar 文件

    千次阅读 2016-09-30 14:19:30
    1.shell 文件: service-restart.sh #!/bin/sh #java 环境变量 source /etc/profile export JAVA_HOME=/home/tools/jdk1.7.0_67 export JRE_HOME=$JAVA_HOME/jre #判断传入的参数数量是不是够 if [ $# != 2 ] ; ...

    1.shell 文件: service-restart.sh

    #!/bin/sh
    #java 环境变量
    source /etc/profile
    export JAVA_HOME=/home/tools/jdk1.7.0_67
    export JRE_HOME=$JAVA_HOME/jre
    
    #判断传入的参数数量是不是够
    if [ $# != 2 ] ; then 
    echo "USAGE: $0 SERVICE_DIR SERVICE_NAME_PRE" 
    echo " e.g.: $0 /opt/ync-goods ync-goods" 
    exit 1; 
    fi 
    SERVICE_DIR=$1
    SERVICE_NAME_PRE=$2
    
    echo "SERVICE_DIR" $SERVICE_DIR
    echo "SERVICE_NAME_PRE" $SERVICE_NAME_PRE
    
    cd $SERVICE_DIR
    
     P_ID=`jps -ml|grep "$SERVICE_NAME_PRE"|awk '{print $1}'` 
            if [ "$P_ID" == "" ]; then
                echo "=== $SERVICE_NAME process not exists or stop success"
            else
                echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
                kill -9 $P_ID
           fi
    
        sleep 3
    
    #找出找出当前 jar 名称
        JAR_NAME=`ls -rt *.jar|grep -v 'sources'|tail -1`
    
        echo "START JAR_NAME "$JAR_NAME
        $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME > $SERVICE_NAME_PRE.log  2>&1 &
    exit
    

    2.使用示例:
    2.1.第一个参数是可执行 jar 文件所在目录
    2.2.第二个参数是可执行 jar 文件名称

    /opt/service-restart.sh /opt/test test
    展开全文
  • 启动java的exe文件

    2008-11-02 17:12:56
    我用delphi开发的小工具,就是一个exe文件,利用这个exe文件启动java程序.可以配置jre,同时可以手工指定参数,没有技术含量的东西,欢迎拍砖. 附带使用例子,同时打包了精简的jre,这个helloword只有10m可在没有jre的环境...
  • 使用bat(批处理文件)启动java程序

    万次阅读 2013-12-05 15:49:37
    1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)...3、在java程序所在的文件夹中新建一个bat文件。 bat文件样例: 样例一:  @echo off  set PATH=.;%CD%\SocketAdapter_lib\jre\bin  s
    操作步骤
    1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;
    2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;
    3、在java程序所在的文件夹中新建一个bat文件。
    bat文件样例:
    样例一:
        @echo off
        set PATH=.;%CD%\SocketAdapter_lib\jre\bin
        set CLASSPATH=.
        start java.exe -jar SocketAdapter.jar
        @pause

    样例二:
        @echo off
        start SocketAdapter_lib\jre\bin\java -jar SocketAdapter.jar
        @pause
    注:
        可以在没有安装JRE的环境中,运行Java应用程序
        java.exe 具体使用参见cmd中输入java -help
        javaw.exe 相对于 java.exe 执行java程序过程中MS-DOS不可见

    对于安装了JRE的环境中,第2步可以省略,bat文件如下
    样例三:
        @echo off
        java -jar SocketAdapter.jar
        @pause


    相关信息:

    1、关于eclipse导出jar文件

        JAR文件和可运行的JAR文件唯一的区别在于META-INF文件夹中的MANIFEST.MF这个文件,MANIFEST.MF中会包含启动配置,依赖的jar文件信息。

    2、使用工具(例如BatToExeConverter)将bat文件转换成exe文件,就成了常常看到的绿色版软件了。


    bat文件的书写参考bat命令大全

    展开全文
  • 自己动手编写启动JAVA程序的EXE文件

    万次阅读 2008-11-02 17:02:00
    转载请注明出处:http://blog.csdn.net/sunyujia/ 有大多的Java人,在四处寻找能将jar打包成exe的工具,另我十分不解的是为什么要打包呢,其实目的无非是想用exe启动而已,其实打包真的没什么好处,一个5m的程序打包成exe...
  • 主要介绍了如何让Win10实现Java文件的开机自启动,对于一些想要一直运行的Java文件,就会造成每次系统更新之后的重启导致Java文件无法继续运行。,需要的朋友可以参考下
  • 此程序的作用是:在windows操作系统下,通过双击可以启动一个java程序。 其内部原理其实也是使用了javaw程序来打开.jar或.class文件。跟我们直接在命令行输入javaw XXX一样,只不过用一个小程序代替了命令行输入,...
  • 本文主要是将java的jar包启动的cmd命令添加到bat文件来执行,且不弹出DOS窗口,也...其中E:\start\newscreening-0.0.1-SNAPSHOT.jar就是指向启动java的jar包,jave -jar 是在命令行模式下运行一个java程序的命令; ...
  • shell启动jar程序的脚本,可以根据传入的参数"start"、"stop"、"restart"启动当前目录下的jar程序
  • j2ewiz(java 转EXE工具)介绍 java 程序编译后得到的...通常采用的通过批处理文件启动 java 程序的办法非常麻烦。转换成 exe 文件之后,发布和运行 java 程序就非常简单和方便 j2ewiz就是一个简单的转换软件 非常方便
  • 不需要传入参数,只需要在matlab中启动java程序,java读取个文件在处理文件后保存就行
  • bat批处理启动java程序通用脚本

    千次阅读 2018-09-27 16:43:33
    脚本同级目录中classes内存放的是程序运行的classes文件 脚本同级目录中lib内存放的是程序运行的jar包 启动脚本: 不需要传递参数直接双击打开或者命令行输入脚本名称运行即可 此脚本假设和需要传递两个参数...
  • shell检查并启动Java程序

    千次阅读 2017-01-04 10:59:34
    nohup java -jar config.jar &如此一来程序就能启动。不过这样不够人性化或者说不够优雅,更好的方式应该是先判断config.jar是否已经在运行,只有在未运行的情况下才执行启动。方案#!/bin/sh #NAME变量填写jar包的...
  • Java 程序启动

    2018-06-24 21:57:59
    1.编写的Java程序启动过程 1.jvm先将java文件编译成class文件 class文件结构包括: 1.魔数 2.Java版本 3.常量池 4.本类 5.父类 6.接口 7.字段 8 方法 9属性 10识别标志 2.Java命令执行程序 2.1 java.c创建执行...
  • 为了提高效率,决定编写一个JAVA程序去读取所有的文件路径。 代码及测试截图如下。将代码copy到工程中启动main方法直接测试即可,记得换一下你的本地文件夹路径。我这使用的是D:\\testfiles\\ 在linux上跑这个java...
  • 在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
  • 问题描述 随着入了Win10的坑,发现它最不能让人忍受的一点就是强制系统更新,而且系统更新之频繁,简直不能忍。这就导致,对于一些想要一直运行的Java文件,...例如:需要实现下面文件(CSDN.java)的开机启动。 imp...
  • Java操作Bat文件启动Bat

    千次阅读 热门讨论 2016-09-14 16:27:25
    这时候会选择使用Windows任务计划或者程序启动,但是Windows任务计划往往会出现这种那种情况,而导致该.bat文件不能按时启动,这样就需要借助某些程序了,这里我将分享如何使用Java启动.bat文件。package com.app;...
  • 使用bat文件启动java 项目

    千次阅读 2017-04-11 12:15:34
    使用bat文件启动java 项目 (main函数) 1:将java 项目导入一个文件夹下,并且在该文件夹下建立xxx.bat 文件以及lib文件 lib 文件夹下存放java项目的外部类 如下图所示: 项目" TITLE="使用bat文件启动java...
  • 利用脚本启动java程序

    万次阅读 热门讨论 2007-06-28 21:23:00
    利用脚本启动java程序 今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关。查了一些资料,终于搞定了,现在记录一下,方便大家查阅。 为了说明使用方法,我们就用最简单的程序来实现,...
  • java 文件 打开文件Sometimes we have to open a file in java program. java.awt.Desktop can be used to open a file in java. Desktop implementation is platform dependent, so first, we should check if the ...
  • java程序自动重新启动

    热门讨论 2012-05-18 10:14:12
    自己写的一小段Java程序,让程序按条件自动重新启动,3个文件都是.java文件,程序不包含包信息,可以放到C盘直接进行编译运行,其中Test是运行主程序,watch是监视检测线程
  • 命令行启动java程序 与 jdb 调试

    千次阅读 2011-08-10 22:58:09
    自己开发个Java平台,不过不是很完善,通过命令行启动java程序报"类无法找到", 对于"类无法找到"的问题,除去类不存在外,就是"类路径"没有指定好,或类路径没有相应的文件. 这次也是一样,只是并非运行的类,而是运行类...
  • 如何用bat启动java程序

    千次阅读 2013-09-25 13:12:03
    如何用bat启动java程序 bat可以看做有序的多条dos命令的集合,下面介绍如何把一个java application打包成可运行的jar包,并用bat启动。 首先,要把程序打包成可运行的jar包。在项目上右键选择-properties,...
  • 如何在Android中启动JAVA程序

    万次阅读 2012-07-17 08:05:56
    在Android中启动JAVA程序其实有很多种方式,现总结如下 一、在Android应用程序中发送Intent启动Android应用程序 这个方式最简单,最常用。在此不在累述。关于Intent的更多内容请阅读《Intent技术简介
  • java应用程序启动程序

    2011-01-05 21:43:15
    压缩包里有两个文件start.vbs和config.ini,...start.vbs是window脚本可以直接执行,用于启动java程序; config.ini是配置文件,用于设置jdk和java应用程序的入口。 start.vbs是vb格式的,可以用vb开发环境生成exe文件
  • linux 用.sh文件启动java项目

    千次阅读 2018-08-20 17:56:35
    #需要根据实际环境以及Java程序名称来修改这些参数 ################################### #JDK所在路径 JAVA_HOME="/usr/local/jdk1.8.0_131" #执行程序启动所使用的系统用户,考虑到安全,推荐不使用...
  • sh脚本启动java程序

    千次阅读 2012-07-25 15:58:43
    # 如果机器和OS支持IPV4和IPV6,JAVA程序倾向于IPV4,那么应用程序使用IPV4 JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx512m -XX:PermSize=64m -XX:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,204,036
精华内容 481,614
关键字:

如何启动java文件

java 订阅