Страницы

Поиск по вопросам

Показаны сообщения с ярлыком exe. Показать все сообщения
Показаны сообщения с ярлыком exe. Показать все сообщения

суббота, 1 февраля 2020 г.

Можно ли сделать исполняемый файл приложения, написанного на java с расширением не jar, а exe?

#java #javafx #gui #jar #exe


Я создал приложение на языке java, но проблема в том, что после создания исполняемого
jar файла, я могу его запустить только со специальным программным обеспечением, соответственно
если кто-то попытается его запустить с другого компьютера, у него ничего не выйдет.
Как сделать исполняемый файл с расширением exe?
    


Ответы

Ответ 1



Для того, чтобы преобразовать jar в exe, нужно скачать Launch4j, установить путь к начальному файлу и конечному результату (с нужным расширением) Нажать на вкладку JRE, в пункте Min JRE version написать 1.6.0_22 После чего нажать на шестерёнку, вбить имя доп файла и нажать save

Ответ 2



Если вы используете IntelliJ тогда в Project Structure -> Artifacts -> выберите Native Bundle: All далее выберите во вкладке Build -> Build Artifact -> имя приложения -> Build *.exe файл вы найдете тут: USER\IdeaProjects\projectname\out\artifacts\projectname\bundles\projectname -> там будет находится ваш .exe файл.

суббота, 11 января 2020 г.

Как сделать исполняемый файл(exe) из своей программы написаной на java, не требующий от пользователя установленной java? [дубликат]

#java #exe


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Сборка приложения из JAR в EXE с JRE
                                
                                    (3 ответа)
                                
                        
                                Закрыт 2 года назад.
            
                    
Вообщем хочу сделать свое приложение запускаемым, на компьютере где ничего не установлено.
Чтобы программа работала вообще на (чистой) windows, и не требовала от юзера, чтобы
он устанавливал дополнитеьлное ПО.
    


Ответы

Ответ 1



руками можно сделать командный файл и приложение не будет требовать установленной java, но jre необходимо положить например так: структура папок: [общая папка приложения] ├[папка с jre] ├[папка с jar] └start.bat код bat файла: [папка с jre]\bin\java -jar [папка с jar]\MyJar.jar так же в intellij idea приложение javafx можно скомпилировать в запускаемый exe

Ответ 2



Воспользуйтесь утилитой https://www.excelsiorjet.com/# Это довольно удобная программа, которая позволит вам создать инсталятор для вашего приложения, и позволит запускать его без наличия jre, доп. библиотек и т.д. на компьютере. Там есть еще пару доп. фишек, вроде защиты от reverse engineering и т.д. Доступна триальная версия на 30 дней.

понедельник, 6 января 2020 г.

Delphi XE2: «Лишние» строки в исполняемом файле

#delphi #exe #delphi_xe2 #executable


Скомпилировал программу в режиме Release. Вся отладочная информация при компиляции
отключена.
Запустил программу, открыл ее свойства в Process Explorer
На закладке Strings вижу, что Process Explorer нашел много строк, которые являются
названиями модулей Delphi, названиями классов, названиями процедур и функций.

Подскажите пожалуйста, как можно удалить из релизного exe-шника все лишние данные???
    


Ответы

Ответ 1



1) В dpr файле между ключевым словом program и разделом uses напишите: program XXX; {$WEAKLINKRTTI ON} // если вам не нужны новые возможности RTTI! {$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])} // если вам не нужны новые возможности RTTI! uses ... 2) В dpr файле после раздела uses можно еще добавить: {$IFNDEF DEBUG} {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} // Удаление из exe таблицы релокаций. {$SetPEFlags IMAGE_FILE_DEBUG_STRIPPED} // Удаление из ехе Debug информации {$SetPEFlags IMAGE_FILE_LINE_NUMS_STRIPPED} // Удаление из exe информации о номерах строк {$SetPEFlags IMAGE_FILE_LOCAL_SYMS_STRIPPED} // Удаление local symbols {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} //При запуске exe с компакта, флэшки, других извлекаемых устройств, считать exe в свап и запустить оттуда. Полезно, если нужно запустить программу с компакта, а потом попросить вставить другой... {$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP} // Аналогично предыдущей, только для сетевых дисков {$ENDIF} При этом в uses должен присутствовать модуль Windows. Это значительно уменьшит размер исполняемого файла и уберет "лишнюю" информацию из него.

Ответ 2



Сомневаюсь, что эти данные лишние. Delphi при сборке обычно прикомпилирует некоторые "свои" модули к программе. Это можно отключить в настройках компилятора. Но, тогда придётся всегда "таскать" с программой все необходимые компоненты в виде .bpl включая те же кнопки и т.д. (смотря какие модули отключите) Вообще, релиз - это максимум что может дать компилятор. Большей экономии размера можно достичь, например, как уже говорилось, вынеся всё из экзешника ("таская" .bpl) или отказавшись от VCL (FireMonkey) в пользу чистого WinAPI (если это действительно оправдано).

суббота, 14 декабря 2019 г.

Зависает exe после компиляции С#

#c_sharp #visual_studio #компиляция #exe


Всем привет. Сегодня впервые столкнулся с проблемой, и не могу понять, в чем дело.
В Visual Studio 2015 скомпилил программу, все запускается нормально. Но из папки
проекта - никак. Тупо висит в процессах. Пробовал менять версии .net, менять разрядность
систем для запуска - 0 эмоций. Просто висит в процессах и все. При запуске (на F5)
из среды - запускается и работает отлично. В чем может быть проблема? Может, сталкивался
кто? Заранее спасибо.

P.S - все библиотеки стандартные, новых не подключал. 
    


Ответы

Ответ 1



Если антивирус AVAST - пробуйте отключить или занести каталог с файлом в исключения.

пятница, 12 июля 2019 г.

Как работает кроссплатформенность в .NET Core?

Как работает кроссплатформенность в .NET Core? Тут расчитано на то что разработчик на Windows скомпилирует dll и пользователи будет запускать DLL, через dotnet program.dll? Или я чего то не понимаю? (Я знаю что можно скомпилириовать exe, но по умолчанию компилируется dll, почему?)


Ответ

.NET Core пока по сути рассчитан только на серверные приложения: либо веб-бэкенд, либо сервисы. Поэтому сейчас единственным форматом файлов является dll. По этой же причине "пользователи", которые будут их запускать -- это разработчики/админы/девопсы/автоматизация. Эти "пользователи" в любом случае не запускают такие приложения по двойному клику мышкой. Плюс такой подход позволил Майкрософт все сделать самим, со стороны ОС ничего не требуется.
Возможно, когда (и если) допилят десктопный кроссплатформенный UI, придумают более дружелюбный запуск (хотя тут нужна поддержка со стороны ОС).

четверг, 21 марта 2019 г.

Нужны ли переменные среды для запуска java приложений?

Борюсь с проблемой распространения написанного на java приложения на компьютеры, не имеющие установленной java.
К сожалению, exe-приложения, как бы я их ни делал, получаются крайне нестабильными:
IntelliJ IDEA (exe из bundle полученного artifact даже у меня не всегда запускается) launch4j (javaw.exe мелькает в процессах лишь на секунду; jre находится в папке с приложением, это указано при создании в launch4j) etc
И я решил, что проще вынудить пользователей установить java, чем мучиться с упаковкой и прочим.

Появляется логичный вопрос: достаточно ли скачивания и установки Java (java.com/download) чтобы приложение работало стабильно и без любых ошибок, несмотря на то, jar это или exe, полученный любым из способов? Или нужно что-то ещё настраивать, устанавливать переменные среды и прочее?
Если это необходимо, придётся это автоматизировать, не все юзвери в состоянии подобное сделать :)
Если я мыслю крайне неправильно, или допускаю ошибки, из-за которых приложения становятся нестабильными и не работают, прошу указать на это и, если возможно, показать, как сделать это правильно (хотя, не знаю, как я мог допустить ошибку при создании exe через launch4j, нажав всего две кнопки).
Также, если есть более простые способы распространить java-приложение, буду рад узнать.

UPDATE: Сначала просто скинул jar из bundle человеку, у которого стоит java последней версии на компьютере, он тоже не запустился, потом собрал artifact-jar в IDEA, полученный файл тоже скинул - эффект такой же, как и с exe-шником: javaw.exe мелькает в процессах на секунду, и всё, программа не запускается. Так происходит, где бы не лежал файл. В чём проблема? Что я делаю не так?


Ответ

Для запуска написанных на Java приложений на других компьютерах, где установлена Java, не нужны переменные среды. (проверено) Скачивания и установки Java с java.com/download вполне достаточно для работы приложения. Для себя выявил два возможных пути удобного распространения приложения: если не вынуждать пользователя устанавливать Java, можно чтобы один раз он скачал папку с jre (путь до которой указывается, например, при создании exe из jar с помощью launch4j; либо можно предоставить пользователю папку с jre и запускать jar файл с помощью jre/bin/java -jar app.jar - спасибо за наводку товарищу Regent), и, впоследствии, чтобы обновлять программу у пользователя, можно просто предоставлять ему jar или exe файл, чтобы он помещал его с заменой в бывшую директорию приложения. Если же у пользователя установлена Java, нет никакой необходимости в дополнительном предоставлении чего-либо, достаточно исполняемого файла. Конкретно по моей проблеме: javaw.exe запускался лишь на секунду, потому что программа работала с ошибкой (в коде я указал абсолютный путь до иконки программы, и поэтому была самая тривиальная ошибка Can't read input file, но у меня на компьютере проблем, естественно, не было; Спасибо товарищу Regent, натолкнул на мысль о возможной ошибке).

вторник, 13 ноября 2018 г.

Зависает exe после компиляции С#

Всем привет. Сегодня впервые столкнулся с проблемой, и не могу понять, в чем дело. В Visual Studio 2015 скомпилил программу, все запускается нормально. Но из папки проекта - никак. Тупо висит в процессах. Пробовал менять версии .net, менять разрядность систем для запуска - 0 эмоций. Просто висит в процессах и все. При запуске (на F5) из среды - запускается и работает отлично. В чем может быть проблема? Может, сталкивался кто? Заранее спасибо.
P.S - все библиотеки стандартные, новых не подключал.


Ответ

Если антивирус AVAST - пробуйте отключить или занести каталог с файлом в исключения.