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

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

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

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

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

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

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

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

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

如果沒(méi)有MANIFEST.MF文件,就需要先創(chuàng)建該文件。該文件的主要作用就是指定依賴(lài)項(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有另一種簡(jiǎn)單寫(xiě)法,這種寫(xiě)法針對(duì)的就是lib下全部都是jar包,因此只需要使用lib/*
  • (4)Main-Class指的是程序的執(zhí)行入口,例如本例子中,就是entry這個(gè)package下的RoadSyn類(lèi)。該類(lèi)中定義了main函數(shù)。
  • (5)文件的冒號(hào)后面必須要空一個(gè)空格,否則會(huì)出錯(cuò)
  • (6)文件的最后一行必須是一個(gè)回車(chē)換行符,否則也會(huì)出錯(cuò)

2,屬性文件的路徑

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

對(duì)于本例中的讀取屬性文件的函數(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)過(guò)上面幾個(gè)步驟,就可以完成程序打包的過(guò)程了

4,bat文件

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

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

java -jar RoadSegSynTool.jar

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

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

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

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

相關(guān)文章

  • Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問(wèn)題

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

    這篇文章主要介紹了Swagger3.0 整合spring boot2.7x避免swagger2.0與boot2.7沖突問(wèn)題,通過(guò)注釋掉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),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java?POI導(dǎo)出Excel時(shí)合并單元格沒(méi)有邊框的問(wèn)題解決

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

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

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

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

    詳解SpringMVC 基礎(chǔ)教程 簡(jiǎn)單入門(mén)實(shí)例

    這篇文章主要介紹了詳解SpringMVC 基礎(chǔ)教程 簡(jiǎn)單入門(mén)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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ù)客戶(hù)的需求設(shè)置不同的文件上傳需求,支持普通服務(wù)器上傳+分布式上傳(Fast DFS)+云服務(wù)上傳OSS(OSS),需要的朋友可以參考下
    2024-04-04
  • SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能

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

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

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

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

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

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

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

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

最新評(píng)論

三河市| 安陆市| 安塞县| 岚皋县| 隆子县| 如皋市| 铁岭市| 察哈| 会宁县| 文安县| 天津市| 麦盖提县| 宕昌县| 吉安市| 黑龙江省| 武鸣县| 临桂县| 石景山区| 水富县| 敦化市| 兰州市| 萍乡市| 湾仔区| 徐闻县| 碌曲县| 望江县| 金溪县| 乌鲁木齐县| 浦县| 潍坊市| 阳江市| 尼玛县| 乐山市| 定襄县| 扬中市| 陇西县| 西藏| 西丰县| 肥西县| 临清市| 重庆市|