私は、JVMの動作を理解し、Javaプログラミング言語で正しく動作するように、オペレーティングシステムに依存しないJavaコンパイルにとって重要なJVMの量を詳細に調べています。JavaはJVMを使用しないソースコードをコンパイルできますか?
答えて
JVMはコードをコンパイルせず、解釈します。
Javaは、解釈された言語とコンパイルされた言語の両方です。 Javaコンパイラ「Javac」は、プラットフォームに依存しないバイトコードを生成します。このバイトコードはgenericと言うことができます。つまり、各プラットフォームに固有のマシンレベルの詳細は含まれていません。 このバイトコードの命令は、CPUによって直接実行することはできません。 したがって、コードを解釈し、実行可能なCPUレベルの命令を与えることができる他の「プログラム」が必要です。このプログラムは「JVM」(Java仮想マシン)です。 JVMはプラットフォーム固有のものです。
JVM
は、Javaコードのコンパイルとは関係ありません。 JVM
は、すでにコンパイルされたコードを実行する責任があります。 JDK
に含まれているjavac
コンパイラや、ほとんどのIDEの統合コンパイラなど、Javaコードをコンパイルするためのソフトウェアがたくさんあり、gradle
やant
などのコンパイルツールがあります。
'別のコンパイルツール 'javac'がJavaで書かれていますが、あなたの答えは正しくありません。 – EJP
それは私のところで文章のようなものでした。答えを編集しました。 –
他のものはここでも間違っています。 'gradle'と' ant'は別々のコンパイルツールではなく、 'javac'に依存し、依存関係解決と管理を追加します。広く使われている最新のJavaコンパイラは、実際にJVM上で実行されます。 –
プライマリコンパイラJavacを使用している場合は、JVMが必要です。
JVMはコンパイルには影響しません。コンパイルには影響しません.Javaプログラムを実行するためにはプライマリコンパイラが実際にはJavaプログラムそのものであり、JVMが必要であるだけです。理論的に
は、コンパイラでは、Javaコードをコンパイルする必要がある唯一のものです。実際には、the JVM knows nothing of the Java programming language、コンパイラから生成されたバイトコードのみ。 JVMを使用すると、Javaプログラムを実行できますが、コンパイル処理には影響しません。
でも、Javaの主要なコンパイラはJavaで書かれていました。 プライマリコンパイラを実行するには、JVMが必要です。
異なる言語で書かれたコンパイラを使用した場合、JVMでコードをコンパイルする必要はありません。
- 1. Azure Azul JVMのソースコードはパブリックリポジトリで利用できますか?
- 2. Java finalメソッドは静的バインディングを使用しますが、JVMはコンパイル時に "invokevirtual"命令を使用します
- 3. Javaソースコードを使用して単純なTalendジョブを作成できますか?
- 4. プログラムでJavaソースコードをメモリ内でコンパイルすることはできますか?
- 5. cmdでjavacを使用して.javaファイルをコンパイルできない
- 6. (CLI)のAnt v1.9.4でJava-8ソースコードをコンパイルできません
- 7. LinuxでJavaソースコードをコンパイルする
- 8. NDKツールを使用してソースコードでライブラリをコンパイルするには?
- 9. Java内からJVMを実行してJavaソースファイルをコンパイルします
- 10. QtソースコードなしでQt3Dをコンパイルする
- 11. Maven Javaプロジェクトをコンパイルすることはできますか?エラーのあるJavaファイルは無視し、エラーのないJavaファイルはコンパイルできますか?
- 12. JVMに強制的にネイティブ・メソッドをコンパイルできますか?
- 13. Ubuntuを使用してJavaアプリケーションをコンパイルできないのはなぜですか?
- 14. Java 7コードをJava 7 JVMで実行するようにコンパイルできますか?
- 15. JavaでJSONを使用してソースコードを送信するには?
- 16. C/C++ソースコードとライブラリをJavaでどのように使用できますか?
- 17. grails/java 8をビルドしてtomcat 7/JVM 7にコンパイルしますか?
- 18. JavaではなぜArrays.copyOfのソースコードが反射を使用するのですか?
- 19. Javaアノテーションを使用してコンパイル時のチェックを定義できますか?
- 20. Java:ソースコードの巨大な巨獣をコンパイルする方法
- 21. JVMなしのJava
- 22. RuntimeException:コンパイル不可能なソースコードです。 Java(NetBeans)
- 23. sconsの使い方異なるフォルダのソースコードをコンパイルする
- 24. Powershellを使用してtomcat servlet-api.jarでjavaをコンパイルします
- 25. アプリケーションサーバーまたはJVMをアップグレードする場合は、Javaコードを再コンパイルしますか?
- 26. Emabarcadero C++を使用してCソースコードをコンパイルするにはどうすればよいですか?
- 27. gradleはkotlinクラスを使用してJavaクラスをコンパイルできません
- 28. なぜSpringのソースコードはリンクリストをあまり使用していますか
- 29. c/C++の混在ソースコードをコンパイルすることはできますか?
- 30. OpenMPIでOpenMPを使用してMPIプログラムをコンパイルできない
コンパイル済みコードを実行するにはJVMが必要です。コンパイラはコードをコンパイルするために必要な唯一のものですが、JVMはコンパイルとは関係ありません。次に、コンパイラはJavaで書かれているので、コンパイラを実行するにはJVMが必要です。 –
必要に応じて、JavaコンパイラをC言語で記述することができます。 Javaは気にしません。 –
JavaコンパイラはJavaで書かれているので重要です。そうである必要はありませんが、そうです。 – EJP