JVM言語とは、JVM(Java Virtual Machine、Java仮想マシン、Javaプラットフォーム)上で動作するプログラムを生成する為のプログラミング言語の総称である。超平たくいうと「Java言語グループ」である。
Java仮想マシンは、バイトコードと呼ばれる中間コードに基づいて動作する。バイトコードを生成する言語の代表はJavaであるが、バイトコードそのものはJavaを前提としているものの厳密にJava専用というものではないため、他言語でもバイトコードに変換すればJava仮想マシン上で動作させることができる。
実際にScala, Groovy, Kotlinといった様々な言語でバイトコードに変換するコンパイラが存在する。既存の他言語をJava仮想マシン用に実装したものとしてはLisp方言であるClojureのほか、RubyやPythonのインタプリタとしてそれぞれJRubyやJythonがある。
マイナーなところでは、Haskellの実装としてFregeやEtaといったものも存在する。
Java自身もJava仮想マシン上で実行されるので、JVM言語と呼べる[1]はずだが、JVM言語がJava仮想マシン上で動作するように設計された言語であるのに対し、Javaについては、Java仮想マシンがJavaを効率よく動作させるように設計されるという逆の主従関係となっているため、文脈によっては(Java互換言語といった意味で)JVM言語とひと括りにしたときにJavaがJVM言語に含まれていない[2]こともある。
> java メイン・クラス
> for %A in (scalac) do java "--class-path=%~dp$path:A..\lib\scala-library.jar;." メイン・クラス
> java "--class-path=$(Join-Path (Get-Command scalac | Get-Item).DirectoryName ..\lib\scala-library.jar);." メイン・クラス
$ java "--class-path=$(dirname "`which scalac`")/../lib/scala-library.jar:." メイン・クラス
> for %A in (kotlinc) do java "--class-path=%~dp$path:A..\lib\kotlin-runtime.jar;." メイン・クラス
> java "--class-path=$(Join-Path (Get-Command kotlinc | Get-Item).DirectoryName ..\lib\kotlin-runtime.jar);." メイン・クラス
$ java "--class-path=$(dirname "`which kotlinc`")/../lib/kotlin-runtime.jar:." メイン・クラス
> javac "ソース・ファイル.java"
> jar --create --main-class=メイン・クラス "--file=アーカイブ・ファイル.jar" *.class
> scalac -d "アーカイブ・ファイル.jar" "ソース・ファイル.scala"
> for %A in (scalac) do jar --extract "--file=%~dp$path:A..\lib\scala-library.jar" scala
> jar --update "--file=アーカイブ・ファイル.jar" scala
> scalac -d "アーカイブ・ファイル.jar" "ソース・ファイル.scala"
> jar --extract "--file=$(Join-Path (Get-Command scalac | Get-Item).DirectoryName ..\lib\scala-library.jar)" scala
> jar --update "--file=アーカイブ・ファイル.jar" scala
$ scalac -d "アーカイブ・ファイル.jar" "ソース・ファイル.scala"
$ jar --extract "--file=$(dirname "`which scalac`")/../lib/scala-library.jar" scala
$ jar --update "--file=アーカイブ・ファイル.jar" scala
> kotlinc -include-runtime -d "アーカイブ・ファイル.jar" "ソース・ファイル.kt"
> java -jar "アーカイブ・ファイル.jar"
掲示板
急上昇ワード改
最終更新:2024/04/24(水) 18:00
最終更新:2024/04/24(水) 18:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。