• linux下运行java项目


    2016年3月24日10:10:39

    1,把项目导出成一个jar包.

    这里有一点要注意,在jar包中没有source folder这个概念.选中一个项目,右键Export,JAR file,下一步,选择我们的导出的文件

    image

    如图,选择了,src,和design两个soruce folder,但是在我们导出jar中只有,包构造的文件名.没有src这个文件名和design这个文件名.

    //这段代码,得到的.class文件目录,也就是bin目录.
    getClass().getClassLoader().getResource(".")

    导出成JAR file和Runnable JAR file的区别

    导出JAR file: 会让你选择要导出目录,你选择得所有soruce folder只是导出对应的bin下面编译后的文件.

    导出Runnable JAR file: 不会让你选择导出的文件目录,默认只导出bin目录(出就是所有的soruce folder),但是要让你指定main方法所有类是那一个.

    这个导出方式会在MANIFEST.MF文件中添加

    Main-Class: com.udv.main.AppMain

    Class-Path: .

    注意:jar文件里面的配置文件,是不会读取的,(这里要做一个测试,同时在jar文件的一个包中里面配制文件,在跟目录也有配置文件,运行的时候去加载那一个配置文件).

    注意:当项目引用其它jar是,Runnable JAR file 会创建maven相关东西.

    导出soruce folder时,soruce folder下面的配置在jar里面是不会执行到的,要提取出来.

    //用这种写法来得到配置文件有两个问题:
    //1,myeclipse中就得到是项目的bin目录,就算bin目录下是有这个文件,但是还是会出错
    //1.linux中这段代码得到的是jvm类加路径,跟本不是你工程类路径
    getClass().getClassLoader().getResource(".")+"config.properties";
     
    补充一点bin下面的一级目录就是src的跟目录,bin目录下的二级目录,一定是包结构的目录了.

    配置文件路:

    File file1 = new File("config.properties");
    1,在myeclipse表示config.properties文件在项目的跟目录.
    2,在运行时表示与jar文件在同一目录下.如

    ─jarFile
    ├─hawei.jar
    ├─config.properties.

    File file1 = new File("etc/config.properties");

    1,在myeclipse表示config.properties文件在一个名为etc的source folder

    1,运行时表示:如

    ─jarFile
    └─hawei.jar
         └─etc
             └─config.properties

    怎样运行两种方法导出的文件 (没有依赖其它jar的情况下)

    1,Runnale JAR file 可以直接用java xxxxx.jar 来运行.

        不过要注意配置文件目录有没有正确

    2,JAR file

       1,java –cp xxxxx.jar com.udv.main.AppMain    这样就可以运行.(这只是没有用到其它引用包才可以)

       这种样运行还有一种与之相同的运行效果.就是把jar 文件解压出来,(相当于copy整个bin目录,)然后用命令

         java com.udv.main.AppMain     这样行动与上面的效果是一样.(这里要进入项目的跟本目录,不能是com/udv/main/AppMain就算是文件的形式)

         当成你也可以直接运行有main方法的class文件 先cd com/udv/main 然后直接java AppMain (这样是不可以的,你一定要在项目的跟目录下面运行)

    注意:直接运行jar文件,

           那么jar文件所在同级目录就是项目的跟目录

    如果解压出来后运行,

            那么com(顶级包名)文件夹所在同级目录就是项目跟目录.

    下面来介绍有引用包的情况

    1,可以直接在MAINFEST.MF文件下面设置(一般不用这种方式)

    Class-Path中如果有很多项,写成一行打包的时候会报错line too long,这时需要把Class-Path分多行写。注意:从第二行开始,必须以两个空格开头

    (我没有)

    2,用命令java -cp lib/jedis-2.6.1.jar:bjar.jar:cjar.jar com.udv.main.AppMain(main的类)

    注意:jar与jar之间用:号来开,
          上面的代码中引入了三个jar.jedis-2.6.1.jar和bjar.jar和cjar.jar如果bjar和cjar里面都有com.udv.mian这样的包结构,都有AppMain类,那个jar在前面就执行那个类中的mina方法

    3,如果是是直接copy的一个bin目录,用下面的脚本的方式启动.

    扩展知识:

    java -jar loginadd.jar ***.xls&

    nohup java -jar loginadd.jar ***.xls&

    注意:1、在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让   程序自动运行。如果不加 就在控制台运行,关闭窗口或者ctrl+c就会停止执行。

    2、nohup:程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用

    linux下用脚本启动java工程(非web工程)--都要引入很多jar的那种

    http://lavasoft.blog.51cto.com/62575/204713 (脚本方法启动 直接copy bin目录)

    脚本方式启动jar(还有成功)

    2016年3月26日23:27:17--未完

  • 相关阅读:
    正常安装selenium后,pycharm导入selenium失败
    python+selenium自动化的准备 2:安装python 3.7.4 和selenium 2.53.1
    python+selenium自动化的准备 1:安装浏览器(火狐)及浏览器插件firebug与firepath、selenium IDE
    虚拟机安装win10系统
    官网下载Windows 10 系统的iso镜像文件
    电脑系统属性中用户与系统环境变量的区别
    验证器
    EchoMode的显示效果
    文本框类控件
    QLabel标签快捷键的使用
  • 原文地址:https://www.cnblogs.com/yinyu/p/5324508.html
Copyright © 2020-2023  润新知