#java #linux #windows
#java #linux #Windows
Вопрос:
Я разрабатываю приложение и задаюсь вопросом, что может привести к зависимости приложения от платформы. Например, используя Windows path в приложении, сделайте его приложением, которое запускается только в Windows.
Комментарии:
1. Я бы добавил, полагаясь на непереносимые внешние библиотеки.
Ответ №1:
Есть много вещей, которые могут привести вас к этому:
- использование JNI для выполнения собственных вызовов специфичных функций ОС (например: чтение / запись значений в реестр Windows)
- полагаться на библиотеки … которые делают такие собственные вызовы для вас
Более утонченная версия того же самого, особенно в контексте программирования с графическим интерфейсом:
- использование определенных (нестандартных) шрифтов
- полагаться на plaf специфичные для ОС
Как вы написали в вопросе:
- «внешние» идентификаторы, которые работают только в зависимости от платформы, например: пути к файлам
Хорошая новость здесь: все это довольно явно. Вы должны написать свой код определенным образом, чтобы стать зависимым от платформы.
Что намного сложнее, но, к счастью, менее распространено: написание корректного кода Java … это, в конце концов, зависит от конкретных деталей реализации базовой JVM. Например, потоки сопоставляются с потоками, предоставляемыми вашей операционной системой. Итак, теоретически, есть шанс написать java-код, который ведет себя по-разному на разных платформах.
Также обратите внимание, что на самом деле существуют различные реализации JVM, которые важны в современном деловом мире. Что снова может привести к различному поведению во время выполнения.
Короче говоря: не волнуйтесь слишком сильно. Если вы следуете стандартным рекомендациям (например: избегая полностью жестко заданных имен абсолютных путей), то у вашего проекта «среднего размера» не должно быть проблем с платформой. Но как только вы начинаете говорить о действительно больших, сложных приложениях, все может измениться многими тонкими способами.
Комментарии:
1. спасибо за четкий ответ. Знаете ли вы какую-нибудь статью о зависимости на основе потоков?
2. Этот информационный бюллетень здесь javaspecialists.eu … содержит множество очень подробных статей о потоковой обработке и внутренних компонентах jvm, возможно, это хорошая отправная точка. Но помимо этого, я могу указать только на Google …