簡體   English   中英

在 .jar 中包含其他文件

[英]Including other files in a .jar

好的,所以我正在嘗試使用 java 程序打開 HTML 文檔。 所以,我擁有的是一個已經建立的網站。 我有一個名為“網站”的單獨文件夾中的網站,該文件夾位於 src 文件旁邊。 然后我想把 src 文件夾和網站文件夾放入同一個 .jar 文件中,這樣你就可以將 .jar 文件發送到任何計算機,當你運行它時,它會打開網站。 我不確定我的措辭是否正確,所以如果您需要更多規格,請告訴我。

這是打開 HTML 文件的代碼。

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class BrowserTest {
    public static void main(String[] args) {
        String url = "framePage.html";
        File htmlFile = new File(url);
        try {
            Desktop.getDesktop().browse(htmlFile.toURI());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

更新代碼

import java.awt.Desktop;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

public class BrowserTest {
    public static void main(String[] args) {
        System.out.println(BrowserTest.class.getResource("/Website/framePage.html"));
        URL url = BrowserTest.class.getResource("/Website/framePage.html");


        try {
            Desktop.getDesktop().browse(url.toURI());
        } catch (IOException | URISyntaxException e) {
            e.printStackTrace();
        }
    }
}

使用命令行(例如 Windows 上的 CMD 或基於 unix 的操作系統的終端),您可以使用以下命令創建 .jar 檔案:
jar cf myJar.jar *
其中 myJar.jar 是輸出文件。 * 將存檔當前目錄中的所有內容,因此在使用此命令之前,請在控制台中導航到包含所有文件的目錄。

只需在您的 jar 命令中指定它(假設您從 src 內部運行):

jar cvf BrowserTest.jar BrowserTest.class ../website

來源: https : //docs.oracle.com/javase/tutorial/deployment/jar/build.html

擁有該結構后,您可以像這樣檢索文件:

// Get current classloader
ClassLoader cl = this.getClass().getClassLoader();
// Create page class
Page customPage  = new Page(cl.getResource("website/page1.html"));

Dupe: 從 jar 中讀取資源文件

更新

包含在 Github 上的運行代碼

如果您不需要網絡服務器,只需這樣做:

  1. 創建一個簡單的Maven項目
  2. 將您的網站復制到src/main/java文件夾。 它將自動包含在jar
  3. 編寫一些代碼將您的網站從classpath提取到包含jar文件夾。

您必須在 jar 中嵌入一個 Web 服務器。 有多種方法可以做到這一點。 但我建議您嘗試使用 Spring Boot。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM