欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java打包Jar包后使用腳本執(zhí)行

 更新時間:2021年12月31日 15:22:06   作者:KingWang_WHU  
本文詳細(xì)講解了Java打包Jar包后使用腳本執(zhí)行的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

打包jar包的應(yīng)用場景:

有時候,我們需要將一個java工程,放在服務(wù)器上讓它執(zhí)行。我們知道在IDE中,都是人為操作,執(zhí)行這個程序。但是如果沒有IDE環(huán)境,那么怎么執(zhí)行Java工程呢?

這里,介紹一種jar包打包,并利用cmd執(zhí)行的方式運(yùn)行。

本文的IDE開發(fā)環(huán)境為Eclipse,所以idea環(huán)境開發(fā)的同學(xué)可能不太一樣。

工程建好之后,結(jié)構(gòu)圖如下:

1,創(chuàng)建并編輯MANIFEST.MF文件

如果沒有MANIFEST.MF文件,就需要先創(chuàng)建該文件。該文件的主要作用就是指定依賴項(xiàng)的路徑以及程序執(zhí)行的入口。

下面是一個MANIFEST.MF的示例:

Manifest-Version: 1.0
Class-Path: lib/commons-beanutils-1.7.0.jar lib/commons-collections-3.2.jar lib/commons-httpclient-3.0.1.jar lib/commons-lang-2.4.jar lib/commons-logging-1.0.4.jar lib/concurrent.jar lib/cors-filter-1.7.jar lib/ezmorph-1.0.3.jar lib/gson-2.3.1.jar lib/icu4j_3_2.jar lib/java-property-utils-1.9.jar lib/jpe_sdk.jar lib/jsde_sdk.jar lib/json-lib-2.2.3-jdk15.jar lib/ojdbc14-10.2.0.2.0.jar lib/postgresql-9.2-1004.jdbc4.jar lib/sdoapi.jar
Main-Class: entry.RoadSyn

注:

  • (1)上面的jar包的路徑意思是和jar包在同一個目錄下的lib文件夾。
  • (2)上面的多個jar包路徑之間以空格相隔
  • (3)當(dāng)然,上面的class-path有另一種簡單寫法,這種寫法針對的就是lib下全部都是jar包,因此只需要使用lib/*
  • (4)Main-Class指的是程序的執(zhí)行入口,例如本例子中,就是entry這個package下的RoadSyn類。該類中定義了main函數(shù)。
  • (5)文件的冒號后面必須要空一個空格,否則會出錯
  • (6)文件的最后一行必須是一個回車換行符,否則也會出錯

2,屬性文件的路徑

本例中,將屬性文件放在和打包的jar文件一樣的目錄下

對于本例中的讀取屬性文件的函數(shù)如下(提供了以下兩種不同方式):

方法1(打包成jar包之后不需要更改該部分的代碼):

package util;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;


public class PropertiesUtil {

    public static String getProperties(String propertyname, String sKey) {
        Properties properties = new Properties();
        try {           
            InputStreamReader insReader = new InputStreamReader(new FileInputStream(System.getProperty("user.dir")+"\\"+propertyname+".properties"), "UTF-8");
            properties.load(insReader);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String s = properties.getProperty(sKey);
        return s;
    }

    public static String getProperties(String propertyname) {
        Properties properties = new Properties();
        try {           
            InputStreamReader insReader = new InputStreamReader(new FileInputStream(System.getProperty("user.dir")+"\\"+propertyname+".properties"), "UTF-8");
            properties.load(insReader);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String s = properties.toString();
        return s;
    }

}

上面的user.dir即為程序的運(yùn)行目錄

方法2:

package util;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

public class PropertiesUtil {
    public static String getProperties(String propertyname, String sKey) {
//        //方法1,在myeclipse運(yùn)行
//        String url = Thread.currentThread().getContextClassLoader()
//                .getResource("").toString();
//        url = url.substring(url.indexOf("/") + 1);
//       
//        url = url.replace("%20", " ");
//        Properties properties = new Properties();
//        try {
//            InputStreamReader insReader = new InputStreamReader(new FileInputStream(url + propertyname + ".properties"), "UTF-8");
//            properties.load(insReader);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        String s = properties.getProperty(sKey);

        //方法2,放入jar包
        Properties properties = new Properties();
        FileInputStream in;
        try {
            in = new FileInputStream(propertyname+".properties");
            properties.load(in);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String s=properties.getProperty(sKey);
        return s;
    }
}

3,打包jar包

利用myeclipse自己的打包功能,選擇自己項(xiàng)目路徑下的MANIFEST.MF文件

導(dǎo)出成jar包

選擇使用工作空間中已有的MANIFEST.MF文件

經(jīng)過上面幾個步驟,就可以完成程序打包的過程了

4,bat文件

然后把所有的文件(包括屬性文件,lib下的jar包,打包之后的jar包,以及執(zhí)行的bat文件)放在同一個目錄下:

上面的bat文件的內(nèi)容為:

java -jar RoadSegSynTool.jar

之后直接執(zhí)行這個文件就可以了

如果是需要在服務(wù)器宕機(jī)情況下,服務(wù)器重啟之后程序自動運(yùn)行,那么可以將該服務(wù)設(shè)置為開機(jī)自啟動,將其添加到開機(jī)自啟動項(xiàng)中,具體操作,移步:

http://www.dbjr.com.cn/article/233463.htm

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中ThreadPoolExecutor常識匯總

    java中ThreadPoolExecutor常識匯總

    這篇文章主要介紹了java中ThreadPoolExecutor常識匯總,線程池技術(shù)在并發(fā)時經(jīng)常會使用到,java中的線程池的使用是通過調(diào)用ThreadPoolExecutor來實(shí)現(xiàn)的,需要的朋友可以參考下
    2019-06-06
  • 圖書管理系統(tǒng)java版

    圖書管理系統(tǒng)java版

    這篇文章主要為大家詳細(xì)介紹了java版的圖書管理系統(tǒng),通過實(shí)例為大家快速掌握數(shù)據(jù)庫編程技術(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Mybatis Plugin攔截器開發(fā)過程詳解

    Mybatis Plugin攔截器開發(fā)過程詳解

    這篇文章主要介紹了Mybatis Plugin攔截器開發(fā)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java基于阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型示例詳解

    Java基于阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型示例詳解

    這篇文章主要介紹了Java基于阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型,阻塞隊(duì)列的特點(diǎn)就是阻塞兩個字,阻塞功能使得生產(chǎn)者和消費(fèi)者兩端的能力得以平衡,當(dāng)有任何一端速度過快時,阻塞隊(duì)列便會把過快的速度降下來,感興趣的朋友可以參考下
    2023-12-12
  • SpringBoot整合MyBatis-Plus的示例代碼

    SpringBoot整合MyBatis-Plus的示例代碼

    這篇文章主要介紹了SpringBoot整合MyBatis-Plus的示例代碼,使用?MyBatis-Plus 可以減少大量的開發(fā)時間,單表的增刪改查可以不用寫 sql 語句,本文主要介紹整合需要主要事項(xiàng),需要的朋友可以參考下
    2022-03-03
  • Java中字符串String的+和+=及循環(huán)操作String原理詳解

    Java中字符串String的+和+=及循環(huán)操作String原理詳解

    Java編譯器在編譯時對String的+和+=操作會創(chuàng)建StringBuilder對象來進(jìn)行字符串的拼接,下面這篇文章主要給大家介紹了關(guān)于Java中字符串String的+和+=及循環(huán)操作String原理的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Hashmap非線程安全關(guān)于hash值沖突處理

    Hashmap非線程安全關(guān)于hash值沖突處理

    這篇文章主要為大家介紹了Hashmap非線程安全關(guān)于hash值沖突的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • Spring Boot集成Java DSL的實(shí)現(xiàn)代碼

    Spring Boot集成Java DSL的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Spring Boot集成Java DSL的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 使用注解+RequestBodyAdvice實(shí)現(xiàn)http請求內(nèi)容加解密方式

    使用注解+RequestBodyAdvice實(shí)現(xiàn)http請求內(nèi)容加解密方式

    這篇文章主要介紹了使用注解+RequestBodyAdvice實(shí)現(xiàn)http請求內(nèi)容加解密方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Javaweb請求轉(zhuǎn)發(fā)及重定向?qū)崿F(xiàn)詳解

    Javaweb請求轉(zhuǎn)發(fā)及重定向?qū)崿F(xiàn)詳解

    這篇文章主要介紹了Javaweb請求轉(zhuǎn)發(fā)及重定向?qū)崿F(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評論