[英]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 中讀取資源文件
更新
如果您不需要網絡服務器,只需這樣做:
src/main/java
文件夾。 它將自動包含在jar
。classpath
提取到包含jar
文件夾。您必須在 jar 中嵌入一個 Web 服務器。 有多種方法可以做到這一點。 但我建議您嘗試使用 Spring Boot。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.