2010-03-15 3 views
3

Так что я должен отправить проект java кому-то вне нашей компании, у которого нет опыта работы с java, и им нужно его скомпилировать. Есть ли простой способ сделать это в командной строке Windows, которая не требует записи списков файлов?Простая командная строка Java compile

Лично я думаю, что Javac должен быть достаточно умны, чтобы справиться с

javac * 

, когда в папке только под корень иерархии пакетов. Есть ли что-нибудь в этом футбольном поле?

Редактировать: Структура исходных папок сложна и не является отдельным классом записи, поэтому некоторые из упомянутых идей пока не сработают. Спасибо хоть! Подумайте 9 уровней с кодом на многих уровнях.

+3

Если они не могут использовать Java, которые не просто дают им уже скомпилированную версию? – skaffman

ответ

5

Из папки, представляющей основу вашей иерархии пакетов, предполагая, что ваш класс точка входа называется Main, в пакете с именем приложения,

javac -classpath . app/Main.java 

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

Если, как вы говорите, у вас есть класс «более чем одной записи», вам нужно будет хотя бы идентифицировать все те классы верхнего уровня из иерархии зависимостей, которые могут быть указаны в качестве дополнительных параметров для javac, указав пакеты как они происходят. Как и, предполагая, что вам также нужно начать с other.Entry

javac -classpath . app/Main.java other/Entry.java 

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

5

Предоставьте им с Ant скрипт, который делает сборку с правильными библиотек на пути к классам и т.д. Скрипт может также выполнять другие задачи, такие как строительство баночки, и т.д.

Это требует, чтобы этот человек скачивает и устанавливает Муравей, но это не сложно. (И нет ничего, что помешало бы вам предоставить им соответствующий Ant-дистрибутив для установки. Или даже отправить им ZIP-файл дистрибутива с копией Ant «preinstalled» в дереве.)

Предоставление сценария Ant-скрипта что вы избегаете их попадания в ловушки для новичков Java, например, забываете установить путь к классу, находясь в неправильном каталоге, забывая перекомпилировать зависимые файлы и так далее. Плюс, он более «профессионал».

3

javac BaseProgram.java будет скомпилировать BaseProgram.java из текущего каталога и всех классов, которые он ссылается, которые доступны в исходном коде, в том же дереве каталогов.

Если BaseProgram ссылается на Class1 и Class2, и они доступны в Class1.java и Class2.java в том же каталоге, то они тоже будут скомпилированы. Аналогично, если они находятся в пакете, и каталог пакетов доступен, они будут скомпилированы.

2

Вы можете создать файл со списком всех классов, которые вы хотите скомпилировать (извлеченный со страницы человека JAVAC) -

Пример - Два Arg Файлы Вы можете создать два аргумента файлы - один для JAVAC варианты и другой для исходных файлов- названий: (обратите внимание на следующие списки не имеют продолжение строки символов.)

Create a file named options containing: 

      -d classes 
      -g 
      -sourcepath /java/pubs/ws/1.3/src/share/classes 

    Create a file named classes containing: 

      MyClass1.java 
      MyClass2.java 
      MyClass3.java 

    You would then run javac with: 

      % javac @options @classes 

Или вы можете использовать * .java в командной строке, например.

javac greetings/*.java 

(Опять же из человек JAVAC)

Или почему вы не просто компилировать источник в банке, что ваш клиент может работать, используя их JRE - особенно учитывая, что они не являются Java здравого смысла?

Смежные вопросы