中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將java或javaweb項目打包為jar包或war包

發布時間:2022-07-13 14:27:41 來源:億速云 閱讀:231 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么將java或javaweb項目打包為jar包或war包”,在日常操作中,相信很多人在怎么將java或javaweb項目打包為jar包或war包問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么將java或javaweb項目打包為jar包或war包”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    一、為什么打包

    關于此問題,網上眾說紛紜。結合個人理解以及網上說法,打成jar包是為了方便別人使用。 如果是運行java程序,就不需要在尋找包含main方法的類去執行;如果是使用第三方jar包,直接在自己項目中導入jar包,而不是復制一堆類文件。打成war包是真實生產環境選擇的web應用部署方式,網上說這樣不會像直接復制文件夾那樣可能造成文件丟失,而且服務器會對應用做優化,如刪除空文件夾等。以上僅供了解。

    二、如何打包

    本機環境windows 10, jdk 1.8

    打成jar或war包使用的是相同的工具 jdk/bin/jar.exe

    1、打成jar包

    |-----------------可以略過,僅為了方便理解打包需要注意的事項------------------|

    項目簡介

    數據庫表結構及其建表語句

    怎么將java或javaweb項目打包為jar包或war包

    CREATE TABLE `customer`  (
      `cust_id` int(11) NOT NULL AUTO_INCREMENT,
      `cust_name` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `cust_address` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_city` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_state` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_zip` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_country` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_contact` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `cust_email` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`cust_id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 10006 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    INSERT INTO `customer` VALUES (10001, 'Coyote Inc.', '200 Maple Lane', 'Detroit', 'MI', '44444', 'china', 'Y Lee', 'ylee@coyote.com');
    INSERT INTO `customer` VALUES (10002, 'Mouse House', '333 Fromage Lane', 'Columbus', 'OH', '43333', '', 'Jerry Mouse', NULL);
    INSERT INTO `customer` VALUES (10003, 'Wascals', '1 Sunny Place', 'Muncie', 'IN', '42222', 'USA', 'Jim Jones', 'rabbit@wascally.com');
    INSERT INTO `customer` VALUES (10004, 'Yosemite Place', '829 Riverside Drive', 'Phoenix', 'AZ', '88888', 'UK', 'Y Sam', 'sam@yosemite.com');
    INSERT INTO `customer` VALUES (10005, 'gzn or 1=1', '4545 53rd Street', 'Chicago', 'IL', '54545', '', 'E Fudd', NULL);

    項目結構

    怎么將java或javaweb項目打包為jar包或war包

    app.java

    package com.gzn.demo;
    
    import java.sql.*;
    import java.util.Scanner;
    
    /**
     * @author: gzn
     * @date: 2019/4/13 10:53
     */
    public class App {
        public static void main(String[] args) {
    
            int count = Integer.valueOf(args[0]);
            System.out.println("請輸入要查詢用戶的條數?(0到5之間):");
            Scanner sc = new Scanner(System.in);
            int count = sc.nextInt();
    
            String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://localhost:3306/corejava";
            String username = "root";
            String password = "root";
            String sql = "select cust_id, cust_name, cust_address, cust_city from customer limit 0, ? ";
    
            try {
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                PreparedStatement pstat = conn.prepareStatement(sql);
                pstat.setInt(1, count);
                ResultSet rs = pstat.executeQuery();
                while(rs.next()) {
                    System.out.println("cust_id:" + rs.getObject("cust_id").toString());
                    System.out.println("cust_name: " + rs.getObject("cust_name").toString());
                    System.out.println("cust_address: " + rs.getObject("cust_address").toString());
                    System.out.println("cust_city:" + rs.getObject("cust_city").toString());
                    System.out.println("----------------------" +"\n");
                }
    
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
    }

    |---------------------------------------------------------------------------|

    1.1、使用jar手動打包

    (1)使用cmd找到項目編譯輸出的路徑

    怎么將java或javaweb項目打包為jar包或war包

    怎么將java或javaweb項目打包為jar包或war包

    (2) 在該目錄下運行命令 jar -cvf helloworld.jar .

    -c (create,創建)表時要創建文件
    -v (verbose,冗長的,詳細的) 在控制臺打印壓縮詳情
    -f (filename)指定壓縮文件名
    helloworld.jar 文件名可以自定義
    . 表示helloworld目錄下的所有文件,這里一定要寫“.”,其他可能出錯。(補充,*星號也可以)

    怎么將java或javaweb項目打包為jar包或war包

    至此打包成功,但不能運行。想要可以運行還要修改helloword.jar中的MANIFEST.MF文件。

    (3)使用解壓縮工具打開helloword.jar并編輯META-INF/MANIFEST.MF添加屬性

    MANIFEST.MF初始狀態

    Manifest-Version: 1.0
    Created-By: 1.8.0_161 (Oracle Corporation)

    添加屬性:(注意,冒號為英文冒號且冒號后有空格

    Main-Class: 包含main方法的類
    Class-Path: 依賴的jar包的路徑,如果依賴多個jar包,使用空格隔開
    路徑:相對路徑,jar包相對于helloworld.jar文件的路徑
               絕對路徑,jar包在操作系統中的路徑
    常用相對路徑,將依賴的jar包和自己的jar包放在同一級目錄下,這樣Class-Path直接寫依賴jar包的名字即可。

    添加屬性后狀態:

    Manifest-Version: 1.0
    Created-By: 1.8.0_161 (Oracle Corporation)
    Class-Path: mysql-connector-java-5.1.18.jar
    Main-Class: com.gzn.demo.App

    (4)運行測試
    將依賴復制到helloworld.jar 同級目錄下,使用 java -jar helloworld.jar 運行程序。

    怎么將java或javaweb項目打包為jar包或war包

    怎么將java或javaweb項目打包為jar包或war包

    如果jar包僅是為了供其他開發者使用,不需要運行,則進行到第(2)步即可。

    1. 2、使用IDEA進行打包

    怎么將java或javaweb項目打包為jar包或war包

    怎么將java或javaweb項目打包為jar包或war包

    Main Class: 包含main方法的類;
    extract to the target JAR: 提取目標jar,此選項需要你為依賴的jar配置絕對路徑。
    copy to the output directory and link via manifest: 將依賴的jar復制到輸出目錄中,即和你項目打包的jar在同一級目錄。這樣IDEA就可以在MENIFEST.MF為Class-Path屬性直接配置相對路徑。

    怎么將java或javaweb項目打包為jar包或war包

    Output Directory: 打包后的輸出路徑。

    運行測試:

    首先進入jar包輸入路徑C:\Users\gzn\Desktop\helloworld\out\artifacts\HelloWorld_jar;
    運行 java -jar helloworld.jar;

    怎么將java或javaweb項目打包為jar包或war包

    2、打成war包

    comment是我的一個已將編譯好的web項目,使用cmd進入comment目錄下執行命令

    jar -cvf comment.war .

    怎么將java或javaweb項目打包為jar包或war包
    注意在項目目錄下執行命令, “.” 表示對項目目錄下的所有文件進行打包,將打包好的項目復制到Tomcat/webapps目錄下,啟動Tomcat服務器,就可以進行測試了。

    到此,關于“怎么將java或javaweb項目打包為jar包或war包”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    会泽县| 札达县| 内黄县| 东海县| 黔南| 瓮安县| 衡阳市| 泰安市| 舒兰市| 克拉玛依市| 鹰潭市| 温泉县| 东丰县| 十堰市| 靖西县| 堆龙德庆县| 云梦县| 垦利县| 义马市| 德钦县| 牟定县| 白玉县| 巴中市| 云浮市| 张家港市| 洪湖市| 阳高县| 武安市| 定边县| 堆龙德庆县| 洛川县| 揭西县| 琼海市| 航空| 紫阳县| 上栗县| 巴彦淖尔市| 南阳市| 夏津县| 喀喇| 乐至县|