在.jar

时间:2015-11-27 00:51:44

标签: java jar

好的,我正在尝试使用java程序打开HTML文档。所以,我所拥有的是一个已经制作的网站。我将该网站放在一个名为“website”的单独文件夹中,该文件夹位于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();
        }
    }
}

3 个答案:

答案 0 :(得分:1)

使用命令行(例如Windows上的CMD或基于unix的OS的终端),您可以使用以下命令创建.jar存档:
jar cf myJar.jar *
其中myJar.jar是输出文件。 *将归档当前目录中的所有内容,因此在使用此命令之前,在控制台中导航到包含所有文件的目录。

答案 1 :(得分:0)

只需在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:Reading a resource file from within jar

答案 2 :(得分:-1)

<强>更新

Included running code on Github

如果您不需要网络服务器,请执行以下操作:

  1. 创建一个简单的Maven项目
  2. 将您的网站复制到src/main/java文件夹。它将自动包含在jar中。
  3. 编写一些代码,将您的网站从classpath提取到包含jar文件夹。
  4. 您必须在jar中嵌入Web服务器。有多种方法可以做到这一点。但我建议你试试Spring Boot。