2015-11-27 2 views
-1

Итак, я экспериментирую с использованием java-программы для открытия HTML-документов. Итак, у меня есть веб-сайт, уже сделанный. У меня есть веб-сайт в отдельной папке под названием «веб-сайт», которая находится рядом с файлом src. Затем я хочу взять папку src и папку веб-сайта и поместить их в один и тот же .jar-файл, чтобы затем отправить файл .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(); 
     } 
    } 
} 
+0

Может быть, вы должны начать взглянув на [Программы упаковки в JAR-файлах] (https://docs.oracle.com/javase/tutorial/deployment/jar/index.html) и [Обновление файла JAR] (https://docs.oracle .com/JavaSE/учебник/развертывание/банка/update.html). Имейте в виду, вам было бы легче, если бы вы использовали что-то вроде Ant или достойной IDE, что сделало бы весь процесс намного проще – MadProgrammer

+0

@MadProgrammer Я использую Eclipse, и он, похоже, не работает – Ryan

+1

Не совсем знаком с eclipse, но вы должны быть в состоянии либо сказать ему, чтобы он включал каталог 'website' в банке, либо размещал его непосредственно в каталоге' src', и он должен быть включен. Затем вам нужно будет использовать 'BrowserTest.class.getResource ("/ website/framePage.html"); 'для создания ссылки на URL. – MadProgrammer

ответ

1

С помощью командной строки (например, CMD на окнах или терминала для ОС UNIX на основе), вы можете создать .jar архивов с помощью следующей команды:
jar cf myJar.jar *
Где myJar.jar - это выходной файл. * Будет архивировать все в текущем каталоге, поэтому в консоли перейдите в каталог со всеми файлами, прежде чем использовать эту команду.

-1

Update

Included running code on Github

Если вам не нужен веб-сервер, просто сделать так:

  1. Создание простой Maven проект
  2. Скопируйте ваш сайт в src/main/java папку. Он будет автоматически включен в jar.
  3. Напишите код для извлечения вашего сайта от classpath до jar.

Вы должны встроенный веб-сервер внутри вашей баночке. Это было несколько способов сделать это. Но я рекомендую попробовать Spring Boot.

+0

Похоже, что это набор плоских HTML-документов. Я сомневаюсь, что ему понадобится встроенный веб-сервер, особенно потому, что у него уже есть код, который запустит браузер на страницу с помощью 'file: //' URI. Кроме того, этот вопрос касается как пакета и доступа к файлам в JAR. – CollinD

+0

Хорошо, я просто слишком переживаю. Некоторые плоские сайты не могут работать с 'file: //' схемой –

0

Просто указать его во время вашей команды банки (если ваш работают внутри ЦСИ):

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

Смежные вопросы