Страницы

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

пятница, 20 декабря 2019 г.

Написал программу (тестовая задача) от потенциального работодателя. Как её отправить?

#java #linux #intellij_idea #debian #jar


Java, Intellij IDEA

Написал программу.
На вход даются файлы: *.tsv, *.xml
На выходе получить *.txt вариант таблицы

Полтора дня писал программу.
Когда запускаю итоговый вариант в IDE через "Edit configuration...", всё замечательно
компилируется и выдаётся тот самый заветный файл.тхт.

Но крайнее требование в ТЗ, чтобы программа выдавала файл посредством вызова команды
в терминале типа:

java Name.class file.xml file.tsv result.txt


И вот тут я завис окончательно, потому что из директории ./out/../Name.class эта
команда выдаёт

Could not find or load main class Name.class


Потеряв надежду (было много попыток и гугла ~10-15 минут), решил запилить jar файл
и тупо отправить его HRу.

Но чего-то передумал и решил написать сюда.
Git я знаю на уровне
init, commit, status, add
т.е. только на уровне сохранить у себя.
Пытался

git add --all


но он оказывается не хочет добавлять папки (онли файлы)

fatal: CRLF будет заменен на LF в settings.xml.


Напишите пожалуйста:


Откуда (директория) всё-таки нужно запускать java Name.class... и что перед этим
может нужно сделать в IDEA (экспортировать/импортировать/...)?
Каким путём отправить файл HRу (общались по почте)?


PS: ноутбук к нему не понесу
PPS: у меня стоит Debian
    


Ответы

Ответ 1



Не обязательно собирать jar для запуска программы. По сути jar является лишь архивом, содержащим в себе все скомпилированные файлы (с расширением .class), а также файл манифеста, в котором помимо всего прочего указано, с какого класса начать запуск программы (в каком из классов имеется нужный метод main). Как запустить jar уже описывали выше. А для того, чтобы запустить программу не из пакета, а ту, которая просто скомпилирована в виде файла .class необходима следующая команда: java {ClassName} {arguments} где ClassName - полный путь до класса, включая имя пакета, если он есть. Кроме того, скомпилированный файл, соответствующий указанному классу должен быть расположен в папке, соответствующей пакету: например, если есть файл Test1.class (с классом Test1 без пакета) - строка запуска будет java Test1 из той же папки; если есть файл Test2.class (соответственно с классом Test2 и указанием пакета org.sample) - запуск будет осуществляться командой java org.sample.Test2, а файл Test2.class должен лежать в папке org/sample относительно места, откуда производится запуск. Надеюсь, это будет полезно.

Ответ 2



Собираем артефакт! Затем прописываем java -jar Name.jar file.xml file.tsv res.txt Огромное спасибо, Lex.

Ответ 3



Если плохо знаеш Git, то можна закинуть проект на GitHub через Intellij IDEA. Вот тут подробно расписано: https://www.javacodegeeks.com/2014/04/how-to-add-an-intellij-project-to-github.html

Комментариев нет:

Отправить комментарий