Я новичок в Java, кто-то разъясняет мои сомнения в независимости платформы, я знаю, что Java - независимый от платформы язык, а JVM зависит от платформы, но является платформой Java Compiler Platform независимой?Является ли Javac независимым от платформы
ответ
Есть четыре элемента, участвующие в вашем вопросе:
- Исходный код Java для вашей программы
- Javac компилятор
- Байткода, что компилятор генерирует при компиляции исходного кода
- Виртуальная машина Java (JVM), которая запускает байт-код для запуска вашей программы. (Это программа, которая запускается при вводе
java MyMainClass
.)
Элементы 1 и 3 не зависят от платформы (если ваша программа не использует внешние библиотеки, зависящие от платформы). Элементы 2 и 4 зависят от платформы (то есть каждая платформа - Windows, Linux, Mac и т. Д.) Использует свою собственную версию javac и JVM).
В результате вы можете скомпилировать свою Java-программу на любой платформе, которая запускает javac, а затем выполнить программу на той же платформе или на любой другой платформе с JVM.
javac
Нет, не зависит от платформы, каждая платформа имеет свой собственный исполняемый форму javac
т.е. вы не можете скопировать Linux JDK для окон и ожидать, что она работает
@AnandMishra - Тогда, пожалуйста, поддержите ответ. Улучшение с комментарием лучше. – TheLostMind
Спасибо @Jigar Joshi за ответ. – Linguistic
downvoter оставить причину здесь –
Технически виртуальная машина не независимой от платформы, в той мере, в какой вы должны загружать определенные версии платформы этих платформ. Компилятор java создает байт-код (.class-файлы), который является независимым от платформы.
Компилятор java (реализация) Java не является независимым от платформы. Он компилирует исходный код на platform-independent bytecode, который выполняется зависит от платформы JVM.
В windows javac
похоже, находится в формате .exe
, что подразумевает, что оно зависит от платформы. На каждой платформе есть другой java-компилятор.
- 1. Есть ли недостатки для языка, который является независимым от платформы?
- 2. String.getBytes («UTF-8») не является независимым от платформы?
- 3. Является ли метод setTimeZone независимым от устройства?
- 4. Является ли OpenGL-процессором независимым?
- 5. В QT, как получить строку, заканчивающуюся независимым от платформы способом?
- 6. Как использовать функцию набора узлов независимым от платформы способом?
- 7. Каковы подходы и компромиссы, связанные с независимым от платформы представлением?
- 8. Является ли asn.1 кодом endianess независимым?
- 9. Насколько общий сервлет является независимым от протокола?
- 10. Все символы Whitespace? Является ли он независимым от языка?
- 11. Является ли обучающий трек ASP.NET 3.5 независимым от ASP.NET 2?
- 12. Является ли каждый экземпляр класса Tk() независимым от другого?
- 13. Является ли java-байтовый код независимым от ЦП или не зависит от ОС?
- 14. Является ли javac также встроенным?
- 15. Почему C не был независимым от платформы языком?
- 16. Является ли «сообщение» исключения культурно независимым?
- 17. Является ли Cython/Jython независимым языком?
- 18. Независимо от платформы Eclipse?
- 19. Как получить путь к каталогу, учитывая имя файла в Lua, которое является независимым от платформы
- 20. Является ли javac компилятором oracle java?
- 21. Cordova платформы добавить андроид JAVAC ошибки
- 22. Является ли файл классов, созданный javac, неизменным?
- 23. Является ли javac оптимизацией объектных файлов (* .class)?
- 24. Является Runtime.getRuntime(). Exec() независимой от платформы?
- 25. Является ли добавление зависимости от платформы Apple, увеличивающей размер приложения?
- 26. Является ли отображение карты всегда отличным от платформы как услуги?
- 27. Является ли java Runtime.exec (String []) независимой от платформы?
- 28. Является ли OpenGL тем же, независимо от платформы?
- 29. Насколько умным является javac?
- 30. Определение независимого от платформы приложения
Спасибо @Ted Hopp Очистить объяснение – Linguistic