Java AppletをIDEを使わずにコマンドラインで簡単に使いたい

(この記事はQiitaからのコピーです。 本記事の投稿日はQiitaでの投稿日としています。)

ke9000氏が書いた「 Java AppletをIDE使わずにビルドしたい 」を試していたところ、一つのプロジェクトならいいが、学校の授業のように頻繁にソースコードを切り替えるときには、毎回HTMLファイルを書き換え、Classesフォルダを作り・・・っとやるのは大変なことに気づいた。
そこで、LinuxやMac等のOSに限るが、簡単に操作ができるようにしてみる。
もちろんやってることは当たり前すぎて、参考になるほどでもないが、備忘録として書いておく。
基本的に先述の記事を読んだことを前提に進めるが、一応適宜コードは書いていく。
(注: Classesフォルダに毎回コピーをしているのは、授業ではNetBeansを使用しているため、srcフォルダから元ソースファイルを動かせないためである)

フォルダ構成について

今回は、~/Javaというフォルダ内で作業する。 Java/の中にプロジェクトフォルダがあり、その中にソースコードがあるという前提で話をすすめる。

HTMLファイルを用意する

applet.html
1
2
3
4
5
6
7
8
9
<html>
<head><title>Applet Test</title></head>
<body>

<applet code="CLASS_NAME.class" width="150" height="150">
</applet>

</body>
</html>

これを**~/Java/applet.html**として保存する

シェルスクリプトを書く

applet.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh

javac $1.java
# 引数として渡された名前の.javaファイルをコンパイル
 
if [ -e $1.html ]; then
    :
else
    cat <Javaフォルダのパス>/applet.html |  sed "s/CLASS_NAME/$1/" > $1.html
fi
# 先程作ったhtmlファイルをベースに、「CLASS_NAME」をそのときに使うファイルに変更したものを作る。あったら作らない。

mkdir Classes 2>/dev/null
# Classesフォルダがなかったら作る

cp *.class Classes
# コンパイルでできた.classファイルをClassesにコピー/上書きコピー

appletviewer $1.html
# Appletを起動

mkdirのところはifで分岐させても良かったが、エラーは単純に「すでにあるから作れないよ!」なので、表示させなければそれでいいということでこうした。
ちなみにapplet.htmlとapplet.shは同じディレクトリにいることを前提としている

エイリアスに登録する

今作ったシェルスクリプトを、.javaフォルダのあるところで簡単に実行できるようにbashrcに書く

.bashrc
1
alias applet='<applet.shのパス>/applet.sh'

使ってみる

アプレットを使用したプログラムのソースコード(hoge.java)の位置まで移動して、
applet hoge(.javaはいらない)
で、コンパイルから指定フォルダまでの移動、起動までやってくれる

以上。

元記事でも言ってるけど、JavaAppletって非推奨なんじゃないの?

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。