Доставка Java-кода с данными, запеченными в .jar - PullRequest
3 голосов
/ 24 марта 2010

Мне нужно отправить некоторый код Java, который имеет связанный набор данных. Это симулятор для устройства, и я хочу иметь возможность включить все данные, используемые для имитируемых записей, в один файл .JAR. В этом случае каждая смоделированная запись содержит четыре поля (вызывающая сторона, вызываемая сторона, начало вызова, продолжительность вызова).

Какой лучший способ сделать это? Я пошел по пути генерации данных в виде операторов Java, но IntelliJ не кажется особенно счастливым, имея дело с исходным файлом Java размером в 100 000 строк!

Есть ли более разумный способ сделать это?

В мире C # / .NET я создавал данные как отдельный файл, вставлял их в сборку как ресурс, а затем использовал отражение, чтобы извлечь их во время выполнения и получить к ним доступ. Я не уверен, какая уместная аналогия в мире Java.

FWIW, Java 1.6, доставка для Solaris.

Ответы [ 2 ]

7 голосов
/ 24 марта 2010

Вполне нормально включать файлы статических ресурсов в JAR. Обычно это делается с помощью файлов свойств. Вы можете получить доступ к ресурсу с помощью следующего:

  Class.getResourceAsStream ("/some/pkg/resource.properties");

Где / относительно корня пути к классам.

Эта статья посвящена теме . Умно загружайте свои свойства .

.
3 голосов
/ 24 марта 2010

Конечно, просто включите их в банку и сделайте

InputStream is = this.getClass().getClassLoader().getResourceAsStream("file.name");

Если вы поместите их в несколько папок, например «data», просто сделайте

InputStream is = this.getClass().getClassLoader().getResourceAsStream("data/file.name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...