JAVAアプレットの場合は、HTML上で実行するときに
目的のクラスファイルを<applet>タグで囲んで実行しますが、
これがJavaアプリケーションの場合、HTML上から
Javaアプリケーションを実行することは可能なのでしょうか?
また可能な場合は、どのようにしてJavaアプリケーションを
実行すればよろしいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

サーバーサイドでのJavaアプリケーションについて補足します。



対象のJavaアプリケーションがウィンドウを持たない、いわゆるコンソールアプリケーションであれば、CGIで動かすC/C++やPerlのプログラムと同様に動作可能です。もちろん、サーバーでJVM等の設定をしておく必要があります。

Servletは、Servletクラスを継承する形で作成する必要があるのと、結果の出力先が、標準出力ではないため、ここも修正する必要があります。
    • good
    • 0

HTML上からJavaアプリケーションを呼ぶことは出来ません。

しかしFrameを表示することは可能です。
いままでmainで行ってきたことをアプレットの場合initもしくはstartで行えばFrameが表示されると思います。
(的が外れていましたら補足していただけたら嬉しいです)
    • good
    • 0

この場合、Javaアプリケーションを実行するのはどちらで実行する予定なのでしょうか?



 クライアント側にダウンロードしてから実行させるのは、通常利用の場合には無理だと思って下さい。大抵の場合ダウンロードダイアログが開いて、ダウンロードを初めて、ユーザに実行してもらうしかありません。

 サーバサイドでJavaアプリケーションを動かす方法は、詳しくないので....。サーブレット等々を使えば出来るって話を聞きます。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavascriptからjavaを呼び出したい

javascriptの勉強中です。
javascriptでajaxを用いてjavaのメソッドにアクセスし、結果をjavascriptに返す、という実装をしたいのですが上手く行きません。

流れとしては以下のようなものを想定しています。

js
/project/WebContent/js/testJS.js(画面の値を引数としてtestJavaクラスのtestMethodメソッドを呼び出す)

java
/project/src/java/jp/co/application/util/testJava.java(受け取った引数の値をtestDAOクラスのtestDAOMethodメソッドに渡す)

java
/project/src/java/jp/co/application/dao/testDAO.java(受け取った値を用いてDBにアクセスし、結果をjsに返す)

まず技術的に、同じプロジェクト内のjavaメソッドをjs上で呼び出し、結果を受け取るということは可能なのでしょうか。
ご教示お願いします。

Aベストアンサー

#3 です。

> 「javaを使わない」という条件だと、XMLのリクエストのみで実現は可能でしょうか。
DB上にあるデータを全てXML化して置いておけば出来なくはありません。
ただ、その場合は静的データ(XML)で管理することになるので、DBを使用する意味がなくなると思うのですが…。

DBを利用するならサーバサイドスクリプトの存在は必須です。

1. DBの内容をサーバ意サイドスクリプトで出力
2. 出力データを JavaScript で受け取り、カレンダーに描画する

このような処理が必要になります。
出力データのフォーマットは JSON, XML 何でも良いですが、JavaScript で認識しやすいデータが望ましいですね。
DBデータがあらかじめキャッシュして置ける内容なら初めからJavaScriptに全データをObjectとして渡しておくのが理想だと思います。
月が変化する毎にリクエストを発行する必要がなくなりますので、コードを単純化できます。
その場合は、カレンダーを出力するHTMLをサーバサイドスクリプトで書いて、JSONを出力しておくのが楽な実装ですね。

# Re: mifu223さん

#3 です。

> 「javaを使わない」という条件だと、XMLのリクエストのみで実現は可能でしょうか。
DB上にあるデータを全てXML化して置いておけば出来なくはありません。
ただ、その場合は静的データ(XML)で管理することになるので、DBを使用する意味がなくなると思うのですが…。

DBを利用するならサーバサイドスクリプトの存在は必須です。

1. DBの内容をサーバ意サイドスクリプトで出力
2. 出力データを JavaScript で受け取り、カレンダーに描画する

このような処理が必要になります。
出力データのフォーマッ...続きを読む

Qjavaでhtmlファイルを開く方法

通常は、下記のような記述をすれば、html.htmlファイルを開けると思うのですが開けせん。どうすれば、開くことができますか?

また、ディスクトップで実行しているのですが、Javaファイルと同じディレクトリ(デスクトップ)にあるhtml.htmlファイルを開くことはできないのしょうか?
相対パスで記述するとエラーになります。

初歩的な質問かもしれませんが、ご教示、宜しくお願い致します。

String[] cmd = {"C:\\html.html"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

Aベストアンサー

Windowsをご利用の場合、下のような記述で関連付け起動ができます。

try {
//絶対パスの例
String cmd = "C:\\html.html";
Runtime.getRuntime().exec("cmd /c start " + cmd);
//相対パスの例
File file = new File("html.html");
cmd = file.getAbsolutePath();
Runtime.getRuntime().exec("cmd /c start " + cmd);
} catch (IOException e) {
e.printStackTrace();
}

Javaの基本APIで関連付け起動を行う方法は、おそらくありません。私が不勉強なだけかもしれませんが。
もしもこれ以上細やかな動作が必要でしたら、JNIを使うかShellExecute API を利用するアプリケーションをC言語などで作成することをご検討ください。
ちなみに、下の例で起動する場合
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE C:\\html.html"}を
{"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", "C:\\html.html"}
に変えればうまくいくと思います。

Windowsをご利用の場合、下のような記述で関連付け起動ができます。

try {
//絶対パスの例
String cmd = "C:\\html.html";
Runtime.getRuntime().exec("cmd /c start " + cmd);
//相対パスの例
File file = new File("html.html");
cmd = file.getAbsolutePath();
Runtime.getRuntime().exec("cmd /c start " + cmd);
} catch (IOException e) {
e.printStackTrace();
}

Javaの基本APIで関連付け起動を行う方法は、おそらくありません。私が不勉強なだけかもしれませんが。
もしもこれ以上細やか...続きを読む

QJavaScriptからJAVAクラスを呼び出す

JavaScriptからJavaクラスのメソッドやコンストラクタを呼び出す事ってできるのでしょうか?

今、行おうとしているのが、テキストにて入力した後に日付編集(4200812 → H20. 8. 12に変換)処理を行うというものです。
初期表示時は、Javaクラスで変換して表示させるので、大丈夫なのですが、どうしても入力したタイミングで変換させるには、JavaScriptを使用しなければなりません。
そこで、JavaScriptに元号情報やJavaで記述した制御などを記載すればできると思いますが、面倒臭いので、JavaScriptからJavaクラスのメソッドが実行できればなと思います。

そのような事はできるのでしょうか??

JDKは1.6です。

Aベストアンサー

まず、以下のことは理解しているでしょうか?
 Java:サーバ側の処理
 JavaScript:クライアント側の処理(ブラウザで処理される)

画面の読み込みが終わった段階で、すでにサーバ側の処理は終了しています。
画面操作からサーバ処理を起動するには、
何らかのサーバへ何らかのリクエストをしないとだめかなと。

例えば、テキストボックスのonchangeのタイミングで日付データを送信すれば、
その日付データをサーバ側で処理できますね。
方法としては、同じ画面をリロードさせるようにしたりとか、Ajaxを使ったりするとか。
(送信タイミングとしては、あまりよくないような気もしますが)

でも変換するだけだったら、JavaScriptでやってしまってもいいかもしれませんね。
こちらの方が面倒ではないような気がします。

Qhtml上で、バッチやexeファイルの起動をしたい

わけあって、学校(養護学校)初心者向けにhtmlでメニューを作っています。
さて、スタートボタンやディスクトップにショートカットを使わず、htmlの中からバッチファイルやexeファイルを起動できるでしょうか?

もし可能ならば、教えてください。OSはWindows XPで起動したいファイルはexeファイルとバッチファイルです。
よろしくお願いします。

Aベストアンサー

<html><head></head>
<body>
<a href="file:///c:/windows/system32/calc.exe">電卓</a>
</body>
</html>

QHTMLファイル同士での値渡し

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。

Aベストアンサー

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

QJSPからクラス(サーブレット)を呼び出す方法

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動きました。

【フォルダ構成 (Tomcat 6.0\webappsの直下) 】

javaroad
---------- index.jsp
---------- WEB-INF
-------------------- web.xml
-------------------- classes
---------------------------- HelloServlet.class

【index.jsp】
<%@ page contentType="text/html;charset=Shift_JIS" %>
<jsp:useBean id="GSBean" class="Testaaa.GetSetBean" />
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<form method="post" action="/Hello">
<input type="text" name="name1" maxlength="10" style="ime-mode: disabled">
<jsp:setProperty name="GSBean" property="userID" param="name1" />
<br><br>
<input type="submit" value="submit">
</form>
</body>
</html>

【web.xml】
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>

</web-app>

【HelloServlet.class】
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println(new java.util.Date());
out.println("</BODY>");
out.println("</HTML>");
}

以下試して駄目だったパスの一覧です。
<form method="post" action="Hello">
<form method="post" action="/Hello">
<form method="post" action="../servlet/Hello">
<form method="post" action="HelloServlet">
<form method="post" action="/HelloServlet">
<form method="post" action="../servlet/HelloServlet">
<form method="post" action="WEB-INF\classes/HelloServlet">
<form method="post" action="http://localhost:8080/javaroad/Hello">

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動...続きを読む

Aベストアンサー

<form method="get" action="Hello">

ではないでしょうか。

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QJAVAプログラムをWEB表示させるには・・・

import java.awt.*;
import javax.swing.*;

class Test {
public static void main(String args[]) {


Frame frm = new Frame("テスト");
frm.setLayout(null);
frm.setSize(new Dimension(450,550));
frm.setVisible(true);

JFormattedTextField[] array = new JFormattedTextField[45];
for(int i = 0 ;i < array.length ; i++){
array[i] = new JFormattedTextField ();
frm.add(array[i]);
array[i].setSize(65, 22);
array[i].setLocation(121+(i%3)*66, 130+(i/3)*22);
}
}
}

フレームにいくつかのテキストを入れただけの簡単なプログラムなのですが、これをJSPでWEB表示させたいのですが・・・・なかなかうまくいかなく困ってます。色々サイトを見ているのですが、解説だとわかりにくく、サンプルコードを載せてるところを探しているのですが、それも見つかりません。JAVAプログラムをJSPでWEB表示させるには、どのような方法があるのか教えていただけないでしょうか?よろしくお願いします。

import java.awt.*;
import javax.swing.*;

class Test {
public static void main(String args[]) {


Frame frm = new Frame("テスト");
frm.setLayout(null);
frm.setSize(new Dimension(450,550));
frm.setVisible(true);

JFormattedTextField[] array = new JFormattedTextField[45];
for(int i = 0 ;i < array.length ; i++){
array[i] = new JFormattedTextField ();
frm.add(array[i]);
array[i].setSize(65, 22);
array[i].setLocation(121+(i%3)*66, 130+(i/3)*22);
}
}
}

フ...続きを読む

Aベストアンサー

これは、質問文にあげたプログラムを、Webブラウザに表示させたい、ということをいってるんだろうか?

それは、できない。

Webブラウザは、HTMLのソースコードをレンダリングして表示するものだ。だからJavaのアプリケーションを表示することはできない。JSPってのは、JavaのプログラムをWebで動かすためのものじゃない。Javaのプログラムを実行して、「HTMLのソースコードを生成する」ものだ。ブラウザに表示するのは、あくまでHTMLだけ。それ以外のものは表示できない。これは当たり前の話。Javaだろうがなんだろうが、この大前提は変えられない。

普通は、だいたい以下の3つのアプローチのどれかをとる。

1.JSPを使い、「HTMLとして」ページの表示を作成する。つまり、すべて作り直す。
2.プログラムをアプレットとして作り直し、HTMLに埋め込む。
3.Java Web Startを使い、アプリケーションをダウンロードして起動するような仕組みを用意する。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報