仕事でJavaを使うことになったのですが、プロジェクト員一同Java初心者で、必死にJavaを勉強していますが、以下のことで困っています。申し訳ありません。助けてください。
UNIXサーバ側の設定とかをいじるプログラムがあるのですが、それをアプレットにして、SEさんがリモートからでも操作出来るようにしろ、と言われました。
とりあえず、Javaアプレットからサーバ側(アプレットのクラスが置いてあるのと同じマシン)のCプログラムを起動し、その結果を受け取るようにしたいのですが、Java経験者に相談したら「アプレットにはセキュリティ上の問題があるのでCGIかServletを使わないと出来ない」と言われました。
では…とServletの勉強を初め、サーバー側にServletEngineをいれてみたのですが、
ServletはHTTPポートと違うポート(8000番とか)を開けてそこにアクセスしなくてはいけないようにみえます。それならクライアント側プログラムをアプレットにし、サーバ側プログラムとSocket通信で結び、サーバ側プログラムがCプログラムを起動、としたほうが楽そうですが、ひとつしかポートを開きたくないと言われたのです。
もしかして「アプレット+Servlet が アプレット+CGI相当」じゃなく「Servlet が アプレット+CGI相当」なのでServlet用のポートだけ開けとけばいいとかいうことでしょうか?
とか思っていたら、JNIでC言語のメソッドをJavaメソッド扱いするとかいう話も小耳に挟みました。それでできるのかしら?
・webポートだけを開いて
・サーバ側のCプログラムを起動してその結果を受け取る
・クライアントのマシンにあらかじめインストールしなくても、ブラウザからアクセスすると操作が対話的に出来るような
ものを簡単に作ろうとしたら、一体何を勉強するべきなのでしょうか…。
Applet+CGI? Applet+Servlet? RMI? JNI…?
助けてください…(TT)
No.1
- 回答日時:
ありがとうございます。
今みてみました。
これはTextAreaとかのGUI画面もつためにApplet、Servletの通信してるのですよね…?やっぱりServletではGUIだせないのでしょうね…。
No.2
- 回答日時:
私もJAVAアプレット&CGIで色々やっています。
今回のご質問では、どこまで何をするか?によるかと思います。
リアルに近い形でサーバとクライアントで情報のやり取りをやるのであれば、サーブレットを勉強すれば良いかと思いますが。。。どうですか?
ご存じの通り、サーブレットはサーバー側で起動するアプレットの様なものですのでサーバー側で色々設定ができる様になっていて、他のソフトウエアとの親和性もアプレットに比べて緩和されています。
アプレットは、クライアントマシンでのセキュリティーに大きく依存してしまうので色々できない事があります。
私は今、JAVAで占いやアンケートなどを行わせてその結果をサーバに保存だけしたいので、アプレット&CGIで色々やっています。
似たような悩みを最初は抱えておりましたが、CGIをC言語で開発しコンパイルした実行コードをサーバ上で動作させてしまうのが一番簡単では無いでしょうか?
但し、サーバーは自分で管理し設定しなければなりません。
そして、DLLなどで共通の動的ライブラリーも作ったり二重起動せずスレッドなどで対応できるソフトウエアにしておけば、メモリも少なく、起動も早いソフトになります。(その分デバックし難くなりますが・・・)
ご参考まででした。
ありがとうございます。
CGIのほうが簡単ですか…。CGIのほうがいい気がしてきました。
サーバの管理設定はCGIを使ったときもServletを使ったときもいっしょですよね…?たぶん…
共通のライブラリ…?
スレッド対応…?ってCGIってアクセスごとにプロセス立ちあがるのですよね…?ごめんなさい。なんかイメージがつかめませんでした。(TT)
No.3ベストアンサー
- 回答日時:
ちゃんと、設定すればwebポートだけ開けられます。
Cのプログラムは、コマンドラインで動くものですか?
コマンドラインで動作する時は、
サーブレットだけで、実装します。Cのプログラムは、RunTimeExec(だったかな)をしようして、コマンドを起動します。
Cのプログラムがライブラリーの時は、
RunTimeExecの変わりにJNIを使用します。
アプレットは、使用しない方が、いいでしょう。
ありがとうございます。
ServletEngineのインストールと設定時にポート80を指定すればよいのでしょうか?やってみます。(^ ^)
CはライブラリなのでRuntime.getRuntime().execではなくJNIを使ったほうがよいのですね…。JNIの勉強もしなければ…(^_^;)
アプレット使用しないほうがよいのはなぜですか…?クライアントに表示側はGUI画面を持っているので、GUIイメージはアプレットにしたほうがよいのかと思ったのですが、ServletにGUIの表示させたほうがいいのでしょうか?
ServletでGUIは出せないのかと何故か思いこんでたのですが、違うのでしょうか…。
あ、サーバ側にGUIおけるのだったら、ひょっとしてサーバ側にSwing置いたらSwing使った画面とかにしても大丈夫?…そんなわけないか。クライアント側はどーやって解釈するのだ(一人つっこみ)
なんか頑張ってみます…。
No.4
- 回答日時:
GUIですが、
HTMLとJavaScriptで実現できそうなので
アプレットを使用する時は、NNとIEでは、動作が多少違うので、
Java-PlugInをブラウザーに組み込まないといけません。
なるほど!ありがとうございました。
自分で勝手に変な解釈して勝手に混乱してたみたいです。ごめんなさい。
そうか、ダイアログとかだすくらいならJavaScriptで実現すれば、Servletに作らせるHTML文の中にJavaScriptのコードを組み込めばいいのですものね…。そういう使い方があるのですね!
お答えありがとうございました(^ ^)
No.5
- 回答日時:
nobi2000さんのarataさんへのお礼に関して一言。
ちょっと認識がずれていませんか?
もともとGUIを表示するのはClient(Applet)のはず
だからservletでGUIは必要無いと思うのですが...
nobi2000さんの質問から察するに
appletから設定のためのコマンドをservletに送る(applet-servlet通信)
servletがCのプログラムを実行(Runtime.exec)
servletが実行結果を受け取る
appletがその情報を受け取り表示する
と言う手順になりそうなのですが...
参考になれば幸いです
ありがとうございます。
自分がものすごく根本的に間違ってたことに気づいて恥ずかしいです。ご指摘ありがとうございます。(__)
Servlet→Server側で動く
Applet→Cliant側で動く
とわかっているつもりで全然わかっていませんでした。
「servletでGUI」って
サーバー側で「出せ!」と命令すれば、画像だけクライアント側に現れると解釈していたということですよね。
NO.#3 hogehoeさんのお答えを見て、
(hogehoeさんは「HTMLとJavaScriptで代用すればよい」という意味で「Appletを使わないほうが」とおっしゃったのに)
「Appletを使わなくてもGUI出せるからApplet使わないほうが」の意と勘違いしたのですが、
arataさんに教えていただいたURLをみて
先ほどの(Appletを使わなくてもGUI出せるから~)解釈は勘違いでは?とうすうす気づいたのに自信が持てなかったので書いたのですが、考えが足りない発言でした。
でもその勘違いを丁寧に正してくださって嬉しいです。
参考の手順をみてもやもやしていた気持ちがクリアになりました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング プログラマの仕事内容 4 2022/08/13 00:34
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- オンラインゲーム とても急いでいます。Minecraft Java版についてです。 MinecraftのJava版でマ 1 2023/03/15 21:19
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- サーバー 無料のレンタルサーバで、スクレイピング(?)はできますか? 2 2022/05/07 10:09
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
The requested resource is no...
-
javaが起動しない
-
リモートからTomcatにアクセス...
-
EclipseからTomcatを起動できない
-
スタンドアロンJavaプログラム(...
-
tomcatの再起動とApacheの設定...
-
Tomcatでwarファイルの展開に失...
-
apache+tomcatの起動手順
-
Tomcatは起動しますが初期index...
-
JavaServletデバッグってどうや...
-
TOMCATのstartup.batによる起動...
-
apache + tomcat でtomcatが起...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
Eclipseのアンインストールの仕方
-
JAVAにのeclipseに関する質問で...
-
Eclipse(JAVA)のデバッグで他...
-
javaが文字コードの影響でコン...
-
正しいURL指定しているにもかか...
-
split関数で区切り文字がない場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Tomcatは起動しますが初期index...
-
Tomcatプロジェクトの.properti...
-
apache+tomcatの起動手順
-
「ファイルが見つかりません D...
-
javaが起動しない
-
The requested resource is no...
-
リモートからTomcatにアクセス...
-
EclipseからTomcatを起動できない
-
Tomcatに-Dオプションを読込ま...
-
javaサーブレットから別サーバ...
-
スタンドアロンJavaプログラム(...
-
apache + tomcat でtomcatが起...
-
Eclipse + JBOSS でのデバッグ
-
Tomcatでwarファイルの展開に失...
-
EclipseからTomcatを起動した際...
-
Tomcatは2、3日に1回再起動...
-
tomcatをサービスで登録すると...
-
jspで無限ループ
-
JavaServletデバッグってどうや...
-
tomcatをプロジェクト毎に起動...
おすすめ情報