1
1

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 5 years have passed since last update.

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

Last updated at Posted at 2018-10-11

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

1. フォルダ構成について

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

2. HTMLファイルを用意する

applet.html
<html>
<head><title>Applet Test</title></head>
<body>

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

</body>
</html>

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

3. シェルスクリプトを書く

applet.sh
# !/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は同じディレクトリにいることを前提としている

4. エイリアスに登録する

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

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

5. 使ってみる

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

以上。

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

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?