2011-06-03 4 views
2

Я написал небольшое приложение Java для одной из моих домашних заданий. проблема заключается в том, что учитель не может установить JRE. что я хочу id для компиляции java-файла в файл exe окна, чтобы учитель мог запустить его без установленной JRE.с помощью cygwin скомпилировать java-файл для вложения собственного кода

Я использую инструмент gcj в cygwin, но для приложения вывода требуется cygwin1.dll для запуска. как я могу избежать этого, IE пакет все вещи приложения для одного файла, поэтому учителю не нужно ничего устанавливать.

ответ

1

Используйте MinGW вместо Cygwin.

И подготовьтесь к исполнению 10-MiB.

+0

MinGW не имеет Java-компилятора (отсюда бит «Min»).Вы можете получить его из портов, но вы будете строить из источника. – paxdiablo

+1

@paxdiablo: Это неверно, [у него есть * компилятор Java] (http://www.mingw.org/wiki/Compile_with_gcj). (См. [Здесь] (http://sourceforge.net/projects/mingw/files/MinGW/BaseSystem/GCC/Version4/Previous%20Release%20gcc-4.4.0/) для загрузки.) И он работает хорошо, если только вы хотите делать вещи GUI (Swing и т. д.), и в этом случае это не работает. – Mehrdad

+0

Это не последние сборки (любые из 4.5): см. Http://stackoverflow.com/questions/5001661/mingw-gcj-for-windows/5001759#5001759 - как я отметил в этом ответе, вы _can_ go обратно в поток 4.4. Это, вероятно, не так уж плохо, если вам действительно нужна поддержка Java. – paxdiablo

1

Почему бы вам просто не попросить вашего учителя установить JRE, или если у вас есть? Если вы используете , позвоните, чтобы использовать Java, тогда я уверен, что учителю будет требуется, чтобы иметь инструменты для правильной оценки вашей домашней работы.

Если вы не были разрешено использовать Java, то тогда, о чем вы думали?

+0

Может быть, он учитель математики, а не учитель, связанный с программным обеспечением. – Enrique

+1

@ Энрике, который, надеюсь, не имеет значения. Если преподаватель явно разрешил использовать определенные инструменты, их обязанность заключается в предоставлении среды оценки. Не делать этого (по крайней мере, когда я поступил в университет, который, правда, был недавно) был основанием для дисциплинарных мер. В любом случае, просьба - это правильная вещь. Он ставит учителя на заметку и позволяет ученику переработать, если он не будет учителем. – paxdiablo

+0

Да, это ситуация, это курс алгоритмов вычислений, и учителю действительно все равно, о программе, она не может читать это как C++ или java, так как я изучаю java, поэтому я выбираю пойдите с java. – danny

0

Приложение, похоже, нуждается в cygwin1.dll для запуска.

Доставка в .exe с кластером .dll файлов является нормой на Windows.

Если вы используете Microsoft Visual Studio, ваша программа также должна быть отправлена ​​с некоторыми библиотеками из Распространяемого времени выполнения Visual Studio. (Если вы не свяжете его статически.) Большинство основных приложений в Windows имеют каталоги установки, заполненные файлами dll, и не будут работать без них.

В середине 2016 года проект Cygwin изменил лицензирование с GPL на LGPL. Это означает, что вы можете связывать программы с cygwin1.dll и распространять их, даже если эти программы имеют лицензию, которая несовместима с обычным GPL, например, закрытые, не распространяемые свободно распространяемые, запатентованные программы. (Если вы в противном случае согласны с LGPL относительно того, как вы, конечно, перераспределяете cygwin1.dll).

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

Единственный способ не устанавливать ничего - это не иметь файл вообще. Если есть один файл, он должен быть помещен где-то, и это соответствует определению установки. В Windows, если у вас есть файл .exe, который зависит от .dll, все, что вам нужно, это то, что они помещаются в один каталог. Это требование может быть выполнено так же легко, как путем помещения их в файл .zip, если программа слишком неважная, чтобы гарантировать разработку полномасштабного установщика.

Ваш учитель распаковывает ваш файл .zip на рабочий стол или в каталог «Загрузки». Должна появиться папка, а в этой папке - ваша программа и dll. Программа может быть вызвана и загружает dll; без проблем.