Как я могу преобразовать файл JAR в EXE-файл?

Я хочу к созданному файл JAR, и я хочу выполнить его на клиентской машине. Так, у меня есть несколько вопросов:

  1. Как я могу преобразовать файл JAR в EXE-файл?
  2. Как я могу зашифровать содержание файла JAR? Файл банки мог быть извлечен с WinRAR, и классы могли декомпилироваться с любым декомпилятором Java.
  3. Как я могу создать установщик? У моих клиентов нет JVM, и я не хочу поставлять JDK или JRE вперед, потому что у них есть большой размер.
18
задан Freeman 21 July 2018 в 06:57
поделиться

5 ответов

  1. См. Эту ссылку: Java to Exe . Он также объясняет, какие веские причины для этого, а когда нет.

  2. Вы не можете действительно зашифровать двоичные файлы, поскольку машина должна их понимать. Тем не менее, оптимизированный исполняемый файл очень сложно декомпилировать, а простые файлы классов - легко.

  3. Если у вас exe, хватит и установщиков.

16
ответ дан 30 November 2019 в 07:08
поделиться

Первое, что я замечаю - вы получили 2 видовые модели. Для получения подробной информации см. мой ответ здесь .

Уже упомянуты другие вещи, которые являются источником внимания (классический подход к применению DRY - наследование и условности).


Думаю, я был слишком расплывчат. Моя идея состоит в том, чтобы создать модель вида для модели домена, а затем - объединить их в моделях вида, которые относятся к конкретному виду. В вашем случае: = >

public class FooViewModel {
  strange attributes everywhere tralalala
  firstname,lastname,bar,fizz,buzz
}

public class FooDetailsViewModel {
   public FooViewModel Foo {get;set;}
   some additional bull**** if needed
}

public class FooEditViewModel {
   public FooViewModel Foo {get;set;}
   some additional bull**** if needed
}

Это позволяет нам создать более сложные модели вида (которые являются для каждого вида) тоже = >

public class ComplexViewModel {
    public PaginationInfo Pagination {get;set;}
    public FooViewModel Foo {get;set;}
    public BarViewModel Bar {get;set;}
    public HttpContext lol {get;set;}
}

Вы можете найти полезный этот вопрос моего.

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

Еще один наконечник - я бы пошел с фильтром & convention (например, по типу) на основе механизма, который заполняет данные viewdata с помощью необходимого (mvc framework может автоматическим образом связывать startList из viewData по имени или чему-то еще).

И еще один наконечник - если вы используете AutoMapper для управления моделью вида, у него есть хорошая функция - он может выровнять график объектов . Поэтому вы можете создать модель вида (которая для каждого вида), которая непосредственно имеет реквизит модели вида (которая для модели домена), независимо от того, насколько глубоко вы хотите идти (Хак сказал, что это нормально).

-121--2478559-

JSmooth - это приложение, которое обернет Jar в exe

и позволяет проверить, доступна ли правильная версия JRE в развертываемой системе на

http://jsmooth.sourceforge.net/

-121--253157-

Что касается 1): Я думаю, вы можете отметить. Там могут быть инструменты, но вы не можете сделать это со стандартными инструментами, поставляемыми с JDK, так как это разрушит независимость платформы. (См. другие ответы, содержащие ссылки на такие сторонние инструменты)

Что касается 3): Для создания программы установки используйте InnoSetup. Включите JRE в программу установки и дайте InnoSetup установить его на лету.

3
ответ дан 30 November 2019 в 07:08
поделиться

Возможно, Excelsior JET удовлетворит ваши потребности). ИМХО очень зрелый продукт.

3
ответ дан 30 November 2019 в 07:08
поделиться

JSmooth - это приложение, которое помещает ваш Jar в исполняемый файл

он также позволяет вам проверить, доступна ли правильная версия JRE в системе, которую вы развертываете на

http://jsmooth.sourceforge.net/

9
ответ дан 30 November 2019 в 07:08
поделиться

Вы не можете предотвратить декомпиляцию. Лучшее, что вы можете сделать, это усложнить или сделать более трудоемкой эту процедуру. Однако, отвечая на ваш вопрос, я полагаю, что вы можете использовать gcj для компиляции Java в EXE.

4
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: