このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Java

発言者:Harumi
( Date Saturday, April 20, 1996 15:03:24 )


「動く絵」で皆さんに親切に教えてもらったのに気を良くして
また素人からの質問です。

Javaについて全く理解していませんが、基本的にMacHTTPをサーバーにして
appletを送り出せるんですか。 sample applet(たとえばTickerTape
のような)をコピーしたんですが、instructionに,

「source code を自分のdirectoryにコピーし、それをexcecutableにする
ためにcompileせよ」

と書いてあるんですが、いったいcompileって何ですか?
私に出来ることでしょうか。 具体的に何をすればよいのか(あるいは初心者
には無理なのか、あるいは何を読んで勉強すればよいのか)教えて頂ける
とありがたいです。

現段階で初心者がjavaを使うのはまだ早い(java対応のbrowserを使っている
人がそんなにたくさんいるとは思えないし)というのは分かってますけど。
好奇心だけは旺盛なもので。よろしくおねがいします。




→  TickerTape

吉本伸一 さんからのコメント
( Saturday, April 20, 1996 20:34:49 )

>いったいcompileって何ですか?

JAVAってインタープリターじゃありませんから、Cのようにコンパイル
してから走らせる必要があります。ということでcompilerが必要になり
ますが、JAVAのページに行けばMac用のコンパイラ等が置いてあるんじゃ
ないですか?(あまりJAVAに詳しくないんで、詳しい方よろしく)
もしくは、Roasterのような市販の開発環境を購入してもよいですが。

JAVAってC++のサブセットみたいなものですから、C++をやっていた人
なんかは割と取っつきやすいと聞きますが、APIが山ほどあって、素人
にはなかなか手を出しにくそうですね。

とにかく今は本屋に行けば山ほどJAVAの本が出ていますから、まずはど
れか一冊読んでみて、概要を掴まれた方が良いと思いますが。

よしもと

ショージ@ハートランド さんからのコメント
( Monday, April 22, 1996 09:21:37 )

>もしくは、Roasterのような市販の開発環境を購入してもよいですが。

 今月号のMACLIFEにROASTERのお試し版が付いていましたよ。これで簡単な
動作は確認できるんじゃないでしょうか?

 興味があってSunから出ているMacintosh用のJDKでプログラミングしてみま
したがCをやった頃よりはとっつきにくくなかった気がしましたよ。今はどん
な言語でもCライクになっていて見た目はなんとなく似ていますよね。

 Java関連の書籍も何冊か購入しましたがお薦めはやはり翔泳社の「Java入
門」ですね。

 僕はどの本を買うか迷ったらオーム社か翔泳社しか買わないという偏見の
持ち主ですから(^_^;)もしかしたらもっといい本があるかもしれません。

ショージ
show@heartland.co.jp

Harumi さんからのコメント
( Monday, April 22, 1996 13:13:21 )

ショージさん (あるいは他の方でもかまいませんが)

1つpracticalな質問をさせてください。
MacJDKのなかにあるSample Applets(たとえばScrollingImagesというやつ)
をそのまま使いたいという時はどうしたらよいのですか?

Applet viewerで見るとちゃんと動いているんですが、自分のHDのなかで
Netscape (Atlas)を使ってexample1.htmlを開けるとApplet can't start:
exception:java.lang.NullPointer Exceptionというエラーがでます。
私のサーバーのMacHTTPの中にこのサンプルフォルダーを突っ込んで
外からアクセスするとApplet can't start:class Image Tape not found
というエラーが出ます。

compileという作業はxxx.javaというファイルをxxx.classというファイルに
翻訳することだと聞きましたが、すでにxxx.classというファイルがsampleの
中にある訳だからもうcompileをする必要はないわけですよね。
javaを動かすのはxxx.classというファイルがサーバーの中にあるだけでは
ダメなんですか? Applet viewerでは見れるのにjava対応のbrowserでは
どうして見れないんですか?

本を買って基本的なことを勉強したいのは山々なんですが、アメリカに住んで
いるので日本の本はほとんど手に入らないし、分厚い本を英語で読む気にも
ならないので助けていただけるとありがたいです。自分でprogrammingする
なんてことはとりあえず考えていませんが、せめて人が作った物を利用(改変)
するくらいのことはできるようになりたいと思ってますので。
よろしくお願いします。

鈴木春巳
suzukih@helix.nih.gov

ショージ@ハートランド さんからのコメント
( Monday, April 22, 1996 20:15:09 )

サーバのMIMEタイプの設定はされましたか?

 田中先生のページに説明があるのでそちらを見てみましょう。

ショージ
show@heartland.co.jp

→  WebStarの設定について

田中求之 さんからのコメント
( Monday, April 22, 1996 20:59:10 )

MIME の設定に関しては、StarNine が追加用の一覧ページを設けましたので
それもチェックなさるとよいですよ。

→  Additional Suffix Mapping

harumi さんからのコメント
( Tuesday, April 23, 1996 11:39:37 )

動きましたよ! 感激です。
写真を自分のやつに変えて自分のページに張り付けました。
ショージさん、田中さん、親切に教えて下さりどうもありがとうございます。

迷惑ついでにもう一つだけ質問させてください。
最初の質問にに書いたTickerTapeというappletですが(はっきりいってcool
です)source codeをsimple textにコピーしてTickerTape.javaという名前で
セーブし、これをMacJDKのjava compilerでコンパイルしようとしたんですが
何回やっても同じエラー、

TickerTape.java,Line15:Warning:Public class TickerTape must be
defined in a file called "TickerTape.java".
>>Public class TickerTape extends Applet implement Runnable {

が出ます。サンプル用のコードなのにどうしてコンパイルできないんで
しょうか。



→  TickerTape

ショージ@ハートランド さんからのコメント
( Tuesday, April 23, 1996 17:38:07 )

はい、元のソースが悪いんです(^_^;)。

 Javaのコメントは/*から*/までですが、ソースの頭のコメントは*だけに
なっていますね。ですから1行目を以下の様に「/」を一つ追加してやりま
す。

   /* TickerTape - Ticker tape program written in java

 これでソースをJava Compilerにドラッグアンドドロップすればプログラ
ムは正常にコンパイルできるでしょう。うちで今試してみたらTickerTape.
classというファイルが出来上がっていました。

 今から試してみます。

 そうそう、忘れていましたがページをセーブしたときに改行コードがLFに
なっていますのでJeditかなにかでCRにしてやった方がソースは読みやすい
ですよ。

 取り急ぎご報告まで・・・。

ショージ
show@heartland.co.jp

ショージ@ハートランド さんからのコメント
( Wednesday, April 24, 1996 09:43:02 )

というわけで。動かしてみました。

 TickerTape.javaはお得意のグラフィックバナーですね。電光掲示板の
ようにスクロールしながら文字を表示するという奴です。それがクリッカ
ブルになっていて、表示される任意の文字列をクリックするとメールを出
したりリンクが出来る様になっていると言うものです。

 もちろん2バイト文字も出力できますので、皆さんも実験してみてはい
かがでしょうか?

ショージ
show@heartland.co.jp

Harumi さんからのコメント
( Wednesday, April 24, 1996 11:18:37 )

ショージさん。さすがですね。感謝感激です。

素人にとってはゴタクや理屈よりもまず動かすことが大切なんです。
いろんなことをやっても動かないと、もうやる気を失ってしまうんですよね。
動けば楽しいからもう少し突っ込んで考えたり勉強したりする気も出るという
もんです。

このコーナーには本当にお世話になってます。特に素人の低級な質問にも
親切に答えてくれる皆さんの寛大な態度は本当にありがたいです。
今後ともよろしく。

鈴木春巳

ショージ@ハートランド さんからのコメント
( Wednesday, April 24, 1996 18:08:06 )

お役に立てて光栄です。

 私も好奇心旺盛な方ですので皆さんから頂いた情報を元にいろいろなことを
試すのが楽しくてやっています。これからも面白そうなものがあったら、ここ
にお寄せ下さい。出来る限り毎日のぞく様にしています。

 田中先生がこの場所を提供して下さったおかげで私のスキルもかなりあがっ
てきたようです。先生に初めてお会いした2月末とは比べ物にならないほどの
力が付いてきたと思います。本当にありがとうございます。

ショージ
show@heartland.co.jp


田中求之 さんからのコメント
( Wednesday, April 24, 1996 21:02:06 )

この場所をうまく利用してもらえば、それで私は嬉しいんですよ。

Web でいかに「コミュニケーションの場を提供するか」っていうのが、
このところの私の最も関心があることですしね。


しかし、Java やら Shockwave って、凄いとは思うのだけど、ブラウザーを
動かすのにとんでもなくメモリーがいりますよね。あれ、しょうがないんでしょうが
なんとかならないかなぁ。

また、ブラウザー自体も大きいですよね(サーバーの方は、WebSTAR ですら 470K
なのに)。

とはいえ、実は Java には非常に関心はあるんですよ。でも、根が HyperTalk の
人間には、まだちょっと敷居が高いかなってところです。

アメリカで UNIX (AIX) をつんだマックのサーバーマシンの発表がありましたが、
あれ、OS が UNIX なのに、AppleScript を搭載しているんですよ。そんなもんで、
今は Java より、こっちの AS on UNIX の方が気になっています (^_^;;

ショージ@ハートランド さんからのコメント
( Friday, April 26, 1996 18:20:40 )

もしやと思い、前述のTickerTape.classとFrontierで以下のようなものを
書いてみました。(TickerTape.ftml)

<APPLET CODE="TickerTape.class" WIDTH=200 HEIGHT=20>
<PARAM NAME=count VALUE=8>
<PARAM NAME=text0 VALUE="あなたは<!--#counter(scriptName)-->人目のアクセスになります。">
<PARAM NAME=text1 VALUE="現在の時刻は<!--#string.timeString ()-->です。">
<PARAM NAME=delay VALUE=10>
<PARAM NAME=size  VALUE=14>
</APPLET>

何の事はないスクリプトですが、Javaで引数を受け付けるようなものはSSI(
Server Side Include)と連携することでリアルタイムな情報を提供できる
のではないでしょうか?

 あまり面白くないですけど、他の方のアイデアを引き出させていただく
ということで・・・。

ショージ
show@heartland.co.jp


田中求之 さんからのコメント
( Friday, April 26, 1996 18:27:00 )

なるほど!

SSI を使ってパラメーターを動的に変化させるというわけですね。
これだったら、CGI によるページでも使えるテクニックですよね。


田中求之 さんからのコメント
( Friday, April 26, 1996 18:29:34 )

SSI だけではなくて、NetCloak を使って、Domain に jp が入っている人には
日本語で、そうでなければ英語でメッセージを出すっていうのもできますね。


小暮正人 さんからのコメント
( Monday, April 29, 1996 15:51:36 )

みなさん、初めまして! 現在修士に在籍している
者です。WWW上でアンケートシステムを作成して
それを解析するaplletを作ろうと思い現在勉強して
おります。アンケートシステムのことを調べていた
ら、このページにたどり着きました。Javaの
コメントも読めてLuckyです
いろいろとお伺いすることもあるかと思いますが、
よろしくお願いします! 

Java & Tango さんからのコメント
( Sunday, May 12, 1996 01:30:59 )

MacWeek (5/13) に記事が出ていたのですが、今週開かれる WWDC で、Natural
Intelligence は、Java を使って SQL サーバにアクセスするための機能を
追加したものを出すようです。 Roaster から Tango にアクセスするもののよう
ですが、詳しいことは分かりません。

Java -> SQL (ODBC) っていうのは、かなりニーズがあるだろうなぁ。

Java の開発環境も、WWDC でいっせいに華開くようですね。

Harumi さんからのコメント
( Tuesday, May 21, 1996 11:04:50 )

まだこのコーナーが残っていたので、また質問させてください。
Macromedia のページからBanners.classと言うJava appletをダウンロード
してきてMacHTTPのserverから送り出してうまく動いているのですが
(これはなかなか凝っている)、同じものをUNIXのshell account
(だと思いますが:無料でホームページを開かせてくれるサーバー/
www.geocities.com)に入れて試したら動きませんでした。もちろん、
そこのサーバーは.classファイルをサポートしていると書いてあります。
Unix用のBanners.classというのもあったのでそれも試してみましたが
だめでした。ファイルのtransferはAnarchieを使いました。(Binaryとか
raw dataとかよくわからないので、自動的に送ってくれるAnarchieを
愛用してます)。
どこがいけないんでしょうか? そのサーバーのadministratorにも質問
メールを送ったんですが返事が来る気配がないもので。
そもそもmacをサーバーにするときはMac用に、Unixを
サーバーにするときはUnix用にソースコードをコンパイルしなければ
ならないんですか? Javaってplatformに関係なく動くというのでは
なかったでしたっけ。


→  Macromedia/ Banners applet

田中求之 さんからのコメント
( Tuesday, May 21, 1996 13:56:15 )

他機種へのデータ転送の場合は、ファイル転送の際には RAW data を使うという
のが原則なのですが、これで試してみてもらえますか?

私自身は Java も shockwave も使っていないので、詳しいことは分からない
のですが。

Harumi さんからのコメント
( Friday, May 24, 1996 13:00:51 )

やっとFetchでraw dataを送る方法が分かりました。
さっそく、banners.class ファイルをraw dataで送り
ました。でもJavaは動きませんでした。sound file (MIDI)
はこれでちゃんと転送できたので、転送そのものはraw data で
出来ていると思います。

ところで、前の質問の繰り返しですが、banners.class 
ファイルはUnix用とMac用とではcompileが違うんですか。
Unixのサーバーを使う場合はUnix用にcompileされたものを
使わないとダメなんですか? 実際、Unix用と Mac用の2つを
試してみましたが全く動きませんでした。誰か教えて!