最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

有時(shí)候,我們需要將一個(gè)java工程,放在服務(wù)器上讓它執(zhí)行。我們知道在IDE中,都是人為操作,執(zhí)行這個(gè)程序。但是如果沒有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í)行的入口。

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

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)過上面幾個(gè)步驟,就可以完成程序打包的過程了

4,bat文件

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

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

java -jar RoadSegSynTool.jar

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

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

http://m.fzitv.net/article/233463.htm

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

相關(guān)文章

  • Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問題

    Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突

    這篇文章主要介紹了Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問題,通過注釋掉2.0引入的倆包,直接引入3.0,文中結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-10-10
  • 淺談JAVA 內(nèi)存流的實(shí)現(xiàn)

    淺談JAVA 內(nèi)存流的實(shí)現(xiàn)

    這篇文章主要介紹了淺談JAVA 內(nèi)存流的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java?POI導(dǎo)出Excel時(shí)合并單元格沒有邊框的問題解決

    Java?POI導(dǎo)出Excel時(shí)合并單元格沒有邊框的問題解決

    這篇文章主要給大家介紹了關(guān)于Java?POI導(dǎo)出Excel時(shí)合并單元格沒有邊框的問題解決辦法,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Mybatis 實(shí)現(xiàn)動態(tài)組裝查詢條件,仿SQL模式

    Mybatis 實(shí)現(xiàn)動態(tài)組裝查詢條件,仿SQL模式

    這篇文章主要介紹了Mybatis 實(shí)現(xiàn)動態(tài)組裝查詢條件,仿SQL模式的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例

    詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例

    這篇文章主要介紹了詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Java實(shí)現(xiàn)Fast DFS、服務(wù)器、OSS上傳功能

    Java實(shí)現(xiàn)Fast DFS、服務(wù)器、OSS上傳功能

    這篇文章主要介紹了Java實(shí)現(xiàn)Fast DFS、服務(wù)器、OSS上傳功能,在實(shí)際的業(yè)務(wù)中,可以根據(jù)客戶的需求設(shè)置不同的文件上傳需求,支持普通服務(wù)器上傳+分布式上傳(Fast DFS)+云服務(wù)上傳OSS(OSS),需要的朋友可以參考下
    2024-04-04
  • SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能

    SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能

    Minio是一款開源的對象存儲服務(wù)器,它提供了一個(gè)云原生的、高性能的、易于擴(kuò)展的文件系統(tǒng)接口,用于存儲和檢索任意大小的數(shù)據(jù),本文將給大家介紹SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能,需要的朋友可以參考下
    2024-08-08
  • Spring Bean裝載方式代碼實(shí)例解析

    Spring Bean裝載方式代碼實(shí)例解析

    這篇文章主要介紹了Spring Bean裝載方式代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java的ThreadPoolExecutor業(yè)務(wù)線程池詳細(xì)解析

    Java的ThreadPoolExecutor業(yè)務(wù)線程池詳細(xì)解析

    這篇文章主要介紹了Java線程池ThreadPoolExecutor詳細(xì)解析,任務(wù)剛開始進(jìn)來的時(shí)候就創(chuàng)建核心線程,核心線程滿了會把任務(wù)放到阻塞隊(duì)列,阻塞隊(duì)列滿了之后才會創(chuàng)建空閑線程,達(dá)到最大線程數(shù)之后,再有任務(wù)進(jìn)來,就只能執(zhí)行拒絕策略了,需要的朋友可以參考下
    2024-01-01
  • 詳解java連接mysql數(shù)據(jù)庫的五種方式

    詳解java連接mysql數(shù)據(jù)庫的五種方式

    這篇文章主要介紹了詳解java連接mysql數(shù)據(jù)庫的五種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

龙泉市| 宜章县| 孝昌县| 天等县| 牙克石市| 仁寿县| 麻栗坡县| 枣庄市| 咸丰县| 灵川县| 肥乡县| 南靖县| 昭觉县| 太仆寺旗| 城口县| 唐山市| 交口县| 呼伦贝尔市| 蒙阴县| 普安县| 陕西省| 沙湾县| 志丹县| 收藏| 二手房| 天水市| 高清| 昭平县| 浦城县| 辽阳县| 苏尼特左旗| 句容市| 襄汾县| 无棣县| 盱眙县| 武威市| 瑞金市| 滦平县| 镇康县| 滨海县| 太湖县|