5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TeaVMを利用したJavaによるhtml5開発

Last updated at Posted at 2020-01-31

TeaVMとは

TeaVMとはJavaからJavaScript/htmlへ変換するトランスパイラです。
TeaVMを使うことによりJavaでhtml5の開発できるようになります。

似たようなツールとしてはGoogleのGWT(Google Web Toolkit)がありますが、GWTがソース(.java)からJavaScript変換するのに対して
TeaVMはByteCode(.classや.jar)からJavaScriptへ変換します。
なのでJava以外のJVM言語などからもTeaVMを利用することができます。
(公式ページにはkotlinやScalaのサンプルプロジェクトがあります)

またリフレクションなどの機能もGWTより優れています。

公式ページ

TeaVMののURL http://teavm.org/
TeavVMのソース https://github.com/konsoletyper/teavm

TeaVMを利用するにはJDKとMavenが必要になりますのでダウンロード/インストールしてください。
JDKのダウンロード
Mavenのダウンロード
すでにインストールされている場合は、必要ありません。
※JDKは8が安定するかもしれません

プロジェクトの作成

詳しくは公式HPのGetting Startedのページを参照してください。

※TeaVMの初心者はgithubから最新のソースを落としてきて使用するのはおすすめしません
 安定してなかったり、コンパイルできなかったり、テストがずっと動いてたりしますので
 初めのうちはMavenによるTeaVMプロジェクト作成を推奨します

MavenによるTeaVMプロジェクトの作成は次のように、コマンドラインで以下のコマンドを実行してください

> mvn -DarchetypeCatalog=local -DarchetypeGroupId=org.teavm -DarchetypeArtifactId=teavm-maven-webapp -DarchetypeVersion=0.6.1 archetype:generate

Mavenに指定する-DarchetypeVersionのバージョンは、
最新版は公式のGetting startedの画像の赤い囲みの数字のバージョン使用してください
古すぎたり新しすぎたりすると安定しない場合があります

バージョンの画像

コマンドを実行すねと以下の項目を聞かれるので入力してください。
groupIDはグループID、パッケージ名でいいと思います
artifactIDはプロジェクト名を指定します。
versionはそのまま
pakageもgroupIDのものが使用されるのでそのままで
最後に「Y」を入力するとプロジェクトが作成されます

バージョンの画像

しばらくするとカレントディレクトリにartifactIDで指定した名前のフォルダが作成され、その中にプロジェクトが作成されます

プロジェクトのビルド

プロジェクトが作成されたフォルダ(artifactIDで指定した名前)へ移動し

>mvn clean package

すると初回のビルドがされます。
最初は必要なリポジトリをダウロードしてくるので時間がかかります。
2回目以降はビルドに1分もかからないと思います

2回目以降のビルドは

>mvn package

でオッケーです。

生成されたJavaScript/htmlの実行

ビルドされたファイルは
target/(アーティアクトID)-(バージョン)
というフォルダに作成されます。

versionとpackageを指定しない場合は、
target/(アーティアクトID)-1.0-SNAPSHOT
というフォルダに生成されていると思います

フォルダ内のindex.htmlをブラウザで読み込めば次のような表示がそれればビルドがうまくいっています

TeaVM generated element
バージョンの画像

ファイルの読み込みなどをしなければ、直接ブラウザにhtmlを読み込ませるだけで実行できます。
ただしファイルの読み込みやXMLHttpRequestなどを使用する場合はローカルにサーバーを立てる必要があります。(CORSになるため)

実行ファイルと必要なファイル

実行に必要なファイルは次のファイルだけです。srcなどは必要ありません

index.html
teavm/classes.js
teavm/runtime.js (ない場合がある)

デバッグ情報が必要な場合は次のファイルが必要になります。

teavm/classes.js.map
teavm/classes.js.teavmdbg

編集

プロジェクトを作成すると
src/main/java/パッケージ名/Client.java
というファイルが作成されています。
実際のソースを弄っていくにはこのファイル編集していきます。

Client.javaのソース

Hellow World !!

簡単なコードの追加。
コンソールに「Hellow World !!」という文字を表示します。
mainメソッドの最後に画像のように

System.out.prinln("Hellow World !!");

という行を追加します。

HellowWorld

> mvn package

として再度パッケージのビルドをし、index.htmlを再びブラウザで読み込みます。
するとJavaScriptコンソールに「Hellow World !!」と出ているはずです

コンソール

JavaScriptコンソールはブラウザによって異なります。
Firefoxではメニュー→ツール→ウェブ開発→ウェブコンソール(またはCTRL+SHIFT+KかCTRL+SHIFT+I)
Chromeはメニュー→その他のツール→デベロッパーツール→Consoleのタブをクリック(またはCTRL+SHIFT+I)

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?