外出自粛中でも楽しく過ごす!QAまとめ>>

Eclipseでソースを書いたところ、
右クリック>実行>でJavaアプリケーションが表示されませんでした。
他のソースはJavaアプリケーションが表示されて実行が出来ます。
どうしたら実行できるようになるのでしょうか?
前に行った操作で、原因として考えられるのは、
インポートからファイルシステムでソースをインポートしたぐらいです。
どなたか回答宜しくお願いします。

~~~~以下がそのソースです。~~~~~~~
package selfJava;
public class P78_2_9_2 {

/**
* @param args
* @param
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
double i, j;
if(args.length != 2){
System.out.println("引数を二つにしてください");
}

for(int k = 0, k < args.length; k++){
if(Character.isDigit(args[0])){

}else{
System.out.println("数値を入力してください");
}

}

i = Integer.parseInt(args[0]);
j = Integer.parseInt(args[1]);
System.out.println("args[0] × args[1] =" + i * j);

}

}

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

A 回答 (1件)

はずしてるかもしれませんが・・・Eclipseはビルドパス(CLASSPATH)内の*.javaファイルしかコンパイル・実行してくれません。

インポートしたソースファイルが、ビルドパスから適切に見えるように、プロジェクトのプロパティをいじってビルドパスを追加してみてください。
    • good
    • 2
この回答へのお礼

お蔭様で、自己解決しました。
原因はファイルとしてインポートしたためでした。
有難うございました。

お礼日時:2007/01/30 23:21

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

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

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

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

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

QEclipse(JAVA)のデバッグで他のプログラムが起動してしまいます。

Eclipseを使っています。JAVAで4つほどパッケージを作り、分野ごとに短い練習用のプログラムを作って勉強して来ました。

ところが4つ目のパッケージを作った時から実行させたいクラスではなく、全然別のところにある関係ないプログラムを実行するようになってしまいました。

Eclipseの実行のアイコンの▼を押せば目的のプログラムを走らせるところまでは、分かりましたが、その一覧の中に実行させたいプログラムはありませんでした。

ネットでも色々調べましたが、私はここでギプアップです。どなたか私が新たに作成したプログラムを実行させる方法を教えて下さい。

Aベストアンサー

どうも状況がつかめませんが、

Eclipseはプログラムを実行する際、「実行の構成」が必要で、それに基づいてプログラムが
実行されることを理解されていますでしょうか?

実行ボタンの▼でドロップダウンされる一覧は「過去に」実行した「実行構成」の一覧で、
「実行構成」を素早く実行するためのものです。プロジェクトを作成しても自動的には追加されません。

また、「実行」ボタン押下は最も最近***実行できた***「実行構成」を実行します。

「実行の構成」は、プロジェクトの右クリック→[Javaアプリケーションの実行]や
メインクラスの右クリック→[Javaアプリケーションの実行]などで、ほとんどの場合
メインクラスのクラス名から名づけられ自動生成されます。名前は後で「実行」→「実行構成」で
「実行構成」を選び、好きに変更できます。

もし、メインクラスの右クリックで「Javaアプリケーションの実行」が現れないということなら
おそらく、プログラムに問題があり、プロジェクトを実行できないからなのでしょう。Eclipseが自動で
プロジェクトの実行構成を作れないのです。問題ウィンドウなどをよく見て、エラーメッセージを
確認してください。メインクラスに 所定の形式の mainメソッドがないとか?

どうも状況がつかめませんが、

Eclipseはプログラムを実行する際、「実行の構成」が必要で、それに基づいてプログラムが
実行されることを理解されていますでしょうか?

実行ボタンの▼でドロップダウンされる一覧は「過去に」実行した「実行構成」の一覧で、
「実行構成」を素早く実行するためのものです。プロジェクトを作成しても自動的には追加されません。

また、「実行」ボタン押下は最も最近***実行できた***「実行構成」を実行します。

「実行の構成」は、プロジェクトの右クリック→[Javaアプリケーシ...続きを読む

Qeclipseで、「ポート番号が使用中です」と表示されて困っています。

プログラムの勉強を始めたばかりなので、拙い質問ですが、ご存じの方は、是非、よろしくお願いします・・・。

eclipseを使って、webアプリケーションを作成しようとしたのですが、
JSP作成後、デバッグを行うと、
「localhostのTomcatv6.0サーバーで
必要な幾つかのポート(8005,8080,8009)が既に使用中です。サーバー
は既に別のプロセスで稼働中であるか、システム・プロセスがそのポートを使用中である可能性があります。このサーバーを始動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。」
と表示され、デバッグできませんでした・・・。
そこで、Active Portsをダウンロードして使用中のポート番号を調べると、同じ番号のものはありません・・・。
さらに、いろいろネットで調べると、oracleをインストールしているとポート番号が競合する、とかいてあったのですが、oracle10gをインストールしたので、このせいなのでしょうか??
その為、oracleを削除したのですが・・・。
そこまでしか、対処方法はわからず、行き詰まりました。
この場合、一体、どう対処したらよいのでしょうか・・・??
現在の環境は、
・windowsXP、jdk1.6.0_03、jre1.6.0_06
・Tomcat6.0
・eclipse3.3→eclipseの「設定」からインストールしたTomcatを登録しました。
・oracle10g

以上、長くなりましたが、本当に困っているので、よろしくお願いします・・・。

プログラムの勉強を始めたばかりなので、拙い質問ですが、ご存じの方は、是非、よろしくお願いします・・・。

eclipseを使って、webアプリケーションを作成しようとしたのですが、
JSP作成後、デバッグを行うと、
「localhostのTomcatv6.0サーバーで
必要な幾つかのポート(8005,8080,8009)が既に使用中です。サーバー
は既に別のプロセスで稼働中であるか、システム・プロセスがそのポートを使用中である可能性があります。このサーバーを始動するには、他のプロセスを停止するか、ポート番号を変更する必...続きを読む

Aベストアンサー

Eclipseでサーバサイドプログラムを作成する場合、
Webアプリのための標準プラグインEclipse Web Tools Project(WTP)がなくてはならないものです。
HTMLやCSS、JSP、XSD等のエディタ、J2EEサーバとの連携機能、
Webサービス構築機能、DBアクセス機能等を提供してくれます。

1)WTPプラグインがインストールされており、
Eclipseウィンドウ全体「ワークベンチ」の左側に
プロジェクト・エクスプローラーにServersのフォルダが表示されており、
フォルダ内にlocalhost の Tomcat v5.5 サーバー-config
catalina.policy
catalina.properties
server.xml
tomcat-users.xml
web.xml
が表示されている。
2)Eclipse画面中央部エディタの下部に
Javadocビューや宣言ビューは問題ビューと同じ場所にサーバータブとして重ねて表示されている。
3)プロジェクト・エクスプローラーで、プロジェクトを右クリックで表示されるメニューの中の実行→サーバーで実行を選択すると、サーバーで実行のウィンドウから実行した結果のエラーメッセージ localhostのTomcatv6.0サーバーで
必要な幾つかのポート(8005,8080,8009)が既に使用中です。…である。

以上1)から3)を前提としますと、

【原因】
Tomcatが実行中であるためです。 
Eclipse Web Tools Project(WTP)は、Tomcatを実行します。
したがって、Tomcatが実行中であるため、既に使用中です。
と警告しているのです。

【対応】
Tomcat ManagerからStop serviceを選択して、Tomcatを停止しておき、
実行→サーバーで実行して、Eclipseウィンドウのサーバータブを見ると
Tomcatを実行している様子が見られると思います。
コンソールタブには、ログが表示されると思います。

以上です。

Eclipseでサーバサイドプログラムを作成する場合、
Webアプリのための標準プラグインEclipse Web Tools Project(WTP)がなくてはならないものです。
HTMLやCSS、JSP、XSD等のエディタ、J2EEサーバとの連携機能、
Webサービス構築機能、DBアクセス機能等を提供してくれます。

1)WTPプラグインがインストールされており、
Eclipseウィンドウ全体「ワークベンチ」の左側に
プロジェクト・エクスプローラーにServersのフォルダが表示されており、
フォルダ内にlocalhost の Tomcat v5.5 サーバー-config
...続きを読む

QEclipseのコンソールを常に表示させておきたい。

Eclipseでプログラムを実行すると、結果がコンソールに出る場合は、コンソールが出てそこに結果が出力されると思うのですが、出力された後に、ソースコードの部分をクリックするとコンソールが閉じてしまいます。

常に出しておく方法はあるでしょうか?

Aベストアンサー

[ウィンドウ]→[ビューの表示]→[コンソール]
でコンソールを表示すれば、表示されたままになりませんか?

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む

Qequalsの逆

javaで、文字列の場合は比較演算子の「==」は用いずに

if ((str1.getText()).equals(str2)){
(※…str1,2は文字列)

と書きますよね?
この逆で、文字列str1とstr2は等しくないとき、にはif以下の条件文をどのように書けばよいでしょうか?

Aベストアンサー

>if !((str1.getText()).equals(str2)){

あくまで
if(){
}


!(str1.getText()).equals(str2)
が入っているので
if !((str1.getText()).equals(str2)){
じゃなくて
if (!(str1.getText()).equals(str2)){
こう。

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

QEclipseのアンインストールの仕方

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、アンインストーラー?らしきものも見当たりません。
 どのようにしてアンインストールしたらいいのでしょうか。
 「全てのプログラム」にも表示されていません。
 (インストール時にそのような設定にしたような気がします。)

 「All-In-One-Eclipse」というフォルダーを削除するとPCに問題が起こりそうな気がします。
 このまま、Eclipse3.4をインストールしても問題が起こりそうな気もします。
 このような場合には、どのようにしたらよいのでしょうか。

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、...続きを読む

Aベストアンサー

Eclipseにはインストールもアンインストールもありません。
zipを解凍すれば直ぐに使えます。消すときはフォルダごと消すだけです。

様々なバージョンを同時に使うことも可能ですし、
設定を変えた複数のEclipse の同時利用も可能です。
フォルダが異なれば大丈夫なんです。

私は1台のマシンに Indigo、Ganymede と Juno を入れてます。

QEclipse「リフレッシュ」と「クリーン」の違い

Eclipseでプロジェクト「リフレッシュ」と「クリーン」がありますが、どう違うのでしょうか?

■質問背景
・Androidでエミュレータ内容が切り替わらないときがあるのですが、キャッシュか何か関係あるのかな、と思い質問しました

Aベストアンサー

Androidエミュレータはわかりません。
Eclipseでは、下記のことを指しています。
リフレッシュ→OSのファイルシステムと、Eclipseのワークスペースのファイル構造を同期すること。
クリーン→クリーンは、クリーンビルドのことでjavaのclassファイル等の成果物を削除し、コンパイルし直すこと。

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は、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QEclipseで、プロジェクト名のところに赤いバッテンのエラーマークが

Eclipseで、プロジェクト名のところに赤いバッテンのエラーマークがついていますが、どのソースファイルにも赤いエラーマークは無く、なぜエラーになっているのか分かりません。

どこでエラーが出ているのか調べる方法はあるでしょうか?

Aベストアンサー

ウインドウ → ビューの表示 → 問題
をクリックすれば問題のある箇所が表示されるはずです


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

人気Q&Aランキング