JVM言語単語

2件
ジェーブイエムゲンゴ
2.5千文字の記事
  • 0
  • 0pt
掲示板へ

JVM言語とは、JVMJava Virtual MachineJava仮想マシンJavaラットフォーム)上で動作するプログラムを生成する為のプログラミング言語の総称である。たくいうと「Javaグループ」である。

概要

Java仮想マシンは、バイトコードと呼ばれる中間コードに基づいて動作する。バイトコードを生成する言の代表はJavaであるが、バイトコードそのものはJavaを前提としているものの厳密にJava専用というものではないため、他言でもバイトコードに変換すればJava仮想マシン上で動作させることができる。

実際にScala, Groovy, Kotlinといった様々な言バイトコードに変換するコンパイラが存在する。既存の他言Java仮想マシン用に実装したものとしてはLisp方言であるClojureのほか、RubyPythonインタプリタとしてそれぞれJRubyexitJythonexitがある。

マイナーなところでは、Haskell実装としてFregeexitEtaexitといったものも存在する。

Java自身もJava仮想マシン上で実行されるので、JVM言語と呼べる[1]はずだが、JVM言語がJava仮想マシン上で動作するように設計された言であるのに対し、Javaについては、Java仮想マシンJavaを効率よく動作させるように設計されるという逆の従関係となっているため、文脈によっては(Java互換言といった意味で)JVM言語とひと括りにしたときにJavaがJVM言語に含まれていない[2]こともある。

特性

JVM上で動作する

既存のJavaライブラリが利用可能

コンパイラが生成するバイトコード(拡張子.class)は、Javaインタプリタ(CUIのjavaコマンド)で実行可能

Javaの場合


> java メインクラス

Scalaの場合(上: Windows コマンドプロンプト、中: Windows PowerShell、下: Unix Bash)


> 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:." メインクラス

Kotlinの場合(上: Windows コマンドプロンプト、中: Windows PowerShell、下: Unix Bash)


> 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:." メインクラス

実行可能JARファイルが生成可能

Javaの場合


> javac "ソースファイル.java"

> jar --create --main-class=メインクラス "--file=アーカイブファイル.jar" *.class

Scalaの場合(上: Windows コマンドプロンプト、中: Windows PowerShell、下: Unix Bash)


> 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

Kotlinの場合


> kotlinc -include-runtime -d "アーカイブファイル.jar" "ソースファイル.kt"

実行


> java -jar "アーカイブファイル.jar"

関連動画

関連商品

関連項目

外部リンク

脚注

  1. *現にJetBrains社(Kotlin開発元)の統合開発環境「IntelliJ Idea」の公式サイトexit等では、JavaをJVM言語の一つと位置付けている。
  2. *明示的にJavaを含まないJVM言語をす表現として、「Java代替」「Better Java」「AltJava」等がある。

【スポンサーリンク】

  • 0
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

松山あおい (単) 記事と一緒に動画もおすすめ!
提供: しーゆーくん
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

JVM言語

1 ななしのよっしん
2018/11/10(土) 15:31:06 ID: FBRBqRR/+y
Javaなりすまして Java仮想マシンを乗っ取るわるいげんご
👍
高評価
0
👎
低評価
0
2 ななしのよっしん
2021/10/10(日) 12:13:00 ID: kUetGgGBEY
KYM空目した
👍
高評価
0
👎
低評価
0

スマホで作られた新規記事

こちらの記事に加筆・修正してみませんか?

画面遷移確認のための記事 健康優良児 あらそう

ニコニコニューストピックス