Насколько важно хорошо знать Unix при изучении Java?

Помимо самого языка Java, вам необходимо изучить java-фреймворк. Подобно тому, как вы должны изучить структуру .net в дополнение к языку (C# / VB).

Насколько важно знать unix? Или, скорее, на каких областях unix следует сосредоточиться?

Видя, как много людей запускают приложения на основе Java (настольные / веб-версии) на ящиках unix, какие навыки unix вам нужны? Мы просто говорим о базовом перемещении по каталогам, создании файлов и т. д. Или это еще не все?

Java является кроссплатформенной, поэтому ... как "знание" unix не имеет никакого отношения к форме или форме ...

Zombies 08.01.2009 22:30

Unix! = Linux, кстати, они похожи, но разные.

wds 09.01.2009 16:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
2
1 299
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Я думаю, ваша метафора означает, что вы должны изучать не только сам язык, но и библиотеку Java.

Конечно, знание UNIX немного поможет, так как расширяет ваши общие знания, но я не думаю, что это вообще имеет прямое отношение к Java.

На самом деле, вам не нужны навыки работы с Unix непосредственно для написания приложений на основе Java. Однако, если вы хотите разрабатывать приложения на основе java для модулей unix и развертывать их там, вам необходимо хорошее рабочее понимание того, как работать и администрировать модули unix.

Но для упомянутых вами областей (перемещение по каталогам, создание файлов) вы будете использовать API Java, которые лишь изредка касаются специфичных для Unix ("\ n" vs "\ r \ n", каталоги с корнем "/" и т. д.) Информация. Когда они соприкасаются, это не то, что вам нужно знать с точки зрения программирования, это то, что вам нужно знать с точки зрения пользователя / администратора.

Для обеспечения переносимости лучше, чтобы программа на Java не использовала специфичную для Unix информацию, среди прочего, используя System.getProperty ("line.separator") вместо '\ n' и т. д. См. GetProperty из java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html

Liran Orevi 30.04.2009 11:54

Вам нужно не только знать, как перемещаться по каталогам, но и редактировать файлы с помощью grep. Вам также необходимо знать, как выполнять базовое управление процессами. Но необходимый вам уровень детализации зависит от того, что вы хотите делать в системе unix. Например. веб-разработка требует запуска веб-контейнера, такого как tomcat. Вы, вероятно, захотите изучить менеджер пакетов вашей выбранной системы.

Это зависит от вашей ОС. Вы можете заниматься разработкой на Java в Windows, и в этом случае знания Unix / Linux не требуются. Тем не менее, даже в Windows утилиты GNU / Cygwin могут быть полезны.

Не важно для самого языка.

Вы можете очень хорошо выучить java и никогда не касались unix-бокса.

Однако если вы хотите выполнить развертывание на сервере unix, вам следует знать только основы.

Пути к файлам, новые строки, разрешения и т. д., Но необходимые знания можно получить после нескольких часов набора текста в терминале.

Большая часть специфики ОС с самого начала абстрагируется от языка. Те, которые нельзя абстрагировать (например, cron), остаются позади.

Ответ принят как подходящий

Ответ, прочитанный в маркетинговых материалах Sun, заключается в том, что Java кроссплатформенный, поэтому вы этого не сделаете.

Практический ответ заключается в том, что вам нужно знать достаточно, чтобы запустить собственное приложение на платформе, на которой вы планируете его использовать. Знакомство с конфигурацией Apache или Tomcat помогает, если вы работаете с веб-разработкой, равно как и знание того, как использовать основные инструменты сетевого анализа - команды ifconfig, netstat и traceroute полезны. Инструменты доступа к файлам также необходимы для работы системы - изучите chmod и chown и то, как работают эти команды.

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

Я бы проголосовал за это, но я не хочу портить идеальную 666 репутацию плаката

willcodejavaforfood 30.04.2009 12:41

Вам действительно не нужны навыки работы с Unix для использования Java, но если вы это сделаете, у вас будет хороший набор инструментов, подходящий для любого типа разработки. Я определенно ценю возможность поиска файлов с помощью grep для всего дерева исходных текстов, использования Perl для генерации кода и так далее. Даже простой подсчет всех строк исходного кода может быть трудным в мире только с графическим интерфейсом. Знание основных инструментов командной строки Unix сделает вас лучшим разработчиком imo.

Я предполагаю, что вы говорите об обучении, а не о разработке полномасштабного проекта. Из-за JVM, который по видению должен предоставлять унифицированный API для программистов, независимо от базовой системы, программы Java предназначены для написания способом, не специфичным для базовой системы (вплоть до использования JNI и т. д. ').

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

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

Если вы используете IDE, например Затмение, с момента запуска IDE вы должны ожидать, что опыт будет почти изолирован от системы внизу.

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

Вам не нужно знать * NIX для разработки Java-приложения, возможно, если вы собираетесь запускать его на машине * NIX или если он использует что-то очень привязанное к * NIX, будет хорошо, если вы будете знать основы имена файлов и разрешения, например.

Необходимость знания * NIX связана с необходимостью развертывания приложения на сервере * NIX. Если это так, будет хорошо, если вы что-то знаете о системных переменных (например, установите JAVA_HOME), типовой структуре каталогов машины * NIX и базовом использовании (создание файлов, каталогов, удаление, символические ссылки .. .).

Я думаю, что очень хорошо знать некоторые сценарии (bash, csh, sh). В зависимости от сложности развертывания это может дать вам, например, дополнительные баллы внешний вид вашего босса.

Другие вопросы по теме