Как запустить java-банку с настройкой имени или id в cmd? [Дубликат]

Это происходит со мной, когда мой контроллер представления первоначально имел .xib-файл, но теперь он создан программно.

Даже несмотря на то, что я удалил файл .xib из этого проекта. Пользователи iPhone / iPad могут содержать файлы .xib для этого диспетчера представлений.

Попытка загрузить файл .xib обычно вызывает этот сбой:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x18afe0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key welcomeLabel.'

Решение при его создании программно может это:

-(void)loadView {
    // Ensure that we don't load an .xib file for this viewcontroller
    self.view = [UIView new];
}
16
задан Tom 24 May 2015 в 20:53
поделиться

4 ответа

Это кажется довольно старым, и на самом деле не стоит усилий, но это может быть и то, что вы ищете: Java exe Maker .

2
ответ дан InsidiarumCrassescit 21 August 2018 в 07:20
поделиться

Если вы хотите запустить свое собственное решение, вам захочется взглянуть на JNI и Invocation API , в частности JNI_CreateJavaVM(), который используется для создания виртуальной машины, найти основной метод GetStaticMethodID() и вызвать его с помощью CallStaticVoidMethod.

Это то, что делают внутри java.exe, javaw.exe и множество других локальных пусковых установок. Некоторые примеры включают в себя:

Если вы хотите не захотеть интегрировать собственную систему сборки с вашей системой сборки java, то стоит создать статический launcher.exe, и рассматривать его как статический двоичный блок. Затем во время сборки java измените двоичный блок с помощью java, чтобы обновить VERSIONINFO , значок и заставку. Пример такого подхода можно увидеть в IntelliJ LauncherGeneratorMain.java

7
ответ дан Jörn Hees 21 August 2018 в 07:20
поделиться
  • 1
    Добро пожаловать в stackoverflow. Я исправил ссылки в вашем ответе, возможно, посмотрю на это: stackoverflow.com/editing-help#basic-links – Jörn Hees 5 June 2015 в 15:41
  • 2
    @ JörnHees Спасибо. Хорошо осведомленный о синтаксисе; публикация нескольких ссылок требует репутации, которой нет у учетных записей anon. – user4978670 8 June 2015 в 21:00

Если вы можете себе это позволить, JSmooth , похоже, делает то, что вам нужно. Последнее выпущено в 2007 году. Заметка о ее лицензии, взятой из самого приложения:

Сгенерированный исполняемый файл (пусковые установки, созданные JSmooth) находятся под LGPL с «исключением во время выполнения», аналогичным исключению лицензии gcc: не требуется, чтобы вы распространяли с ним исходный код, и что вы публикуете уведомление о jsmooth.

При использовании JSmooth существует раздел с надписью «Скелет», который позволяет вам выбрать некоторые предварительные Определенные параметры. Один из них - «Windowed Wrapper», который подходит для приложений GUI, описанных ниже:

Этот скелет обертывает приложения GUI.

  • Нет консольных входов / выходов отображается
  • Если виртуальная машина Java не найдена, она может отображать настраиваемый URL (обычно на странице загрузки java).

Аргументы могут быть переданы в (либо использовать механизм аргументов JSmooth по умолчанию, либо создать ярлык с аргументами).

Важным в этом скелете является проверка опции «Запустить java-приложение в процессе exe», которое приводит к запуску JVM в том же процессе, что и exe wrapper. Это означает, что в диспетчере задач Windows отображается только exe, в отличие от exe и java-процесса.

Альтернативой является создание собственной оболочки. См. этот справочник Oracle о том, как вызвать JVM из собственного приложения.

4
ответ дан manouti 21 August 2018 в 07:20
поделиться

Я сделал аналогичные вещи с WinRun4J , насколько я помню, он может быть коммерчески использован, потому что он лицензирован CPL. Проверено это сегодня: настройки имя процесса все еще работает (изначально это делалось на XP) с Windows 7.

Согласно веб-сайту, вы просто создаете ini-файл, который сообщает WinRun4J, что запускать:

main.class=org.something.MyMainClass
classpath.1=*.jar

(есть еще много параметров, вы можете установить, где JRE можно найти и многое другое)

На втором шаге вы копируете файл winrun4j.exe в то, что подходит вашему приложению:

copy winrun4j.exe yourapplication.exe

(Существует версия для Windows x64 тоже)

Затем у вас есть RCEDIT (поставляется с WinRun4j), добавьте ini в exe:

rcedit /N yourapplication.exe yourapplication.ini
3
ответ дан Marged 21 August 2018 в 07:20
поделиться
Другие вопросы по тегам:

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