質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

解決済

1回答

902閲覧

アクティブウィンドウが移る問題を解決したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2021/12/02 10:02

編集2021/12/02 11:08

発生している問題

通常コマンドプロンプトでディレクトリを合わせた後、(下記コードの場合)Sample.javaでエンターを押すとhelloと出ると思うのですが、下記コードを記述しているテキストエディタにアクティブウィンドウが移り、さらに実行結果は出力されていない問題が発生しています。

###コード

class Sample { public static void main(String[] args) { System.out.println("hello"); } }

補足

自分なりにアクティブウィンドウが移らないように設定できないか検索してみたのですが、コマンドプロンプトからアプリを立ち上げる方法などといったものしか見つかリませんでした。

コンパイルは済んでいます。
かなり初歩的な問題で申し訳ないのですが、問題解決にご協力していただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/12/02 10:19

まず、他人が読んで理解できる文章を書くように心がけてください。 今の文章では意味不明です。 > Sample1.javaとたたくと、... どのように叩いているのでしょうか? > Sample1.javaと名付けたテキストアプリに移り... テキストアプリとは? > アクティブウィンドウがコマンドプロンプトから... アクティブウィンドウとは? もしかしてウインドウがあるやつ(GUI)のことでしょうか? > コマンドには値が出ていない状況です コマンドとは? > 上記の問題に当たるまでは通常通りアクティブウィンドウが変わらず値が出力されていたのですが、 本当に? 回答者は質問者ではありません。提示された情報からしか読み取れません。 さらに、こういう場合、かなりの数のパターンがあります。 単純に考えても、コードがおかしい、ロジックがおかしい、OSがバグっている、コマンドプロンプト(ターミナル)の設定をいじったためおかしくなっている、ファイルがない、コンパイルすらしていない、…といろんな可能性があります。それをほぼ一発で当てろと? 無茶いわないでくださいよ。 なんか名称も所々怪しいし、コードも出し渋る。どうやって理解しろと…? とりあえず、質問を修正してください。質問は編集できるので編集しましょう。
Crimson_Tide

2021/12/02 11:09

色々わからないですが、「テキストエディタに記述したコードの値」これが一番わかりません。 なんとなくですが コマンドプロンプトで「Sample1.java」とだけ入力すると、そのソースコード(Sample1.javaファイルの中身)がコマンドプロンプトに表示されていた。 しかし、コマンドプロンプトで「Sample1.java」とだけ入力すると、メモ帳?などのテキストエディタで「Sample1.java」が開くようになった。 ということかなぁ?
退会済みユーザー

退会済みユーザー

2021/12/02 11:15

BeatStarさんのおっしゃる通りですね。 大変失礼しました。 質問を編集したので、もしよろしければ問題解決のためご教授していただけると幸いです。 ちなみに、アクティブウィンドウというのは、例えば 複数のウィンドウを同時に開いて作業を行っている場合、アクティブウィンドウは画面の一番手前に表示されているものを差します。
退会済みユーザー

退会済みユーザー

2021/12/02 11:25

Crimson_Tideさん 情報不足で大変失礼しました。 質問を編集しましたので、改めて問題解決にご助力いただけると幸いです。 コマンドプロンプトでコンパイル後、Sample.javaと入力すると上記コードの場合helloと実行結果が出ると思うのですが、アクティブウィンドウが実際にコードを記述しているSample.javaと名付けたテキストエディタに移ってしまいます。
BeatStar

2021/12/02 11:38

環境は何ですか? OS(Windows, MacOSX, ...)のバージョンと、IDE(Eclipseのような)またはコンパイラの名前(Javaの場合は社名か)とかも書いてください。 Oracleのjavacとかを使っているのでしたら、javac main.java のようにコンパイルしてから動かさないといけませんよ。
BeatStar

2021/12/02 11:44 編集

それと、「さあ、プログラミングをしようか!!」と考えてからPCを立ち上げてからの動作を出来る限り書いてくれませんか? 個人情報等があるような部分は端折ってもいいですが。 なんか、使い方自体が間違っている気がするので。 たとえば私の場合はjavacとかを使ってやっているので、 1. メモ帳なりTeraPadなりでコードを書く 2. コマンドプロンプトでCD等を使って(1)がある場所に行く 3. javac main.java と打ってコンパイル 4. (エラーメッセージは無いので) 5. java main.java と打って起動 ... みたいな感じで。(上記はあくまで例です。間違っているところがあります)
退会済みユーザー

退会済みユーザー

2021/12/02 11:57

BeatStarさん OSはwindows10でテキストエディタはサクラエディタを使っています。 私の場合、 1.テキストエディタにコードを書く 2.コードを書いたテキストに名前をつけて保存 3.コマンドプロントでまずはテキストが保存されているディレクトリに合わせる 4.javac ファイル名(上記質問の場合はSample).javaでコンパイル 5.ファイル名(Samle).javaで起動 といった流れです。
BeatStar

2021/12/02 12:25

手元にJavaの環境が無いので試せませんが、動かすときは拡張子がjavaのやつではなく、classの方です。 動かすときは、 java Sample とやります。ただし、動かすのはSample.java ではなく、Sample.classです。
dodox86

2021/12/02 12:37

> 5.ファイル名(Samle).javaで起動 といった流れです。 この時点で間違っています。JavaSE 11以降がWindowsにインストールされている状況で、拡張子 .javaで関連付けされていて、ソースファイルモードで実行されるような設定がされていない限り、実行することはできません。.javaのファイルは単なるソースファイルです。
dodox86

2021/12/02 12:41

まぁあと細かいことを言うと最前面にウィンドウがあるからと言ってそれがアクティブなウィンドウであるとは限りません。アクティブウィンドウとは一般的に、今現在、キーボードやマウス入力ができるものを指します。見た目、他のウィンドウに隠れている場合もあります。
退会済みユーザー

退会済みユーザー

2021/12/02 14:15

皆様たくさんのアドバイス本当にありがとうございました。 明日皆様からいただいたアドバイスをもとに改めて問題解決に取り組んでみます!
guest

回答1

0

ベストアンサー

dodox86さんが既にコメントで仰っていましたが、一応回答させていただきます。

以下、パッケージを指定しないHello Worldを表示するだけの簡単なJavaプログラムという前提で話します。

Javaプログラムの実行は、一般的には以下の流れです。
0. javac main.java でコンパイルして main.classファイルが生成される
0. java main で実行(.javaの拡張子はつけない。.classはつけないが 1.で生成されたmain.classを実行している)
0. Hello Worldが表示されます。

Java ver.11からは ソースファイルモードというのが導入されました。
0. java main.java を実行する
0. Hello Worldが表示されます。

詳しくは知りませんが、ソースファイルモードでの実行には条件がありそうです。
詳細は下記を確認、若しくは [Java ソースファイルモード]などで検索してください。
下記はver13のドキュメントですが、基本的には11でも同じかと思います。

ソース・ファイル・モードで単一ファイルのソース・コードのプログラムを起動する方法


以上を踏まえた上で、

jn6さんのコメントから想像するに、
コンパイルされた.classファイルは使わずに
Sample.javaをソースファイルモードで実行していたものと思われます。

恐らく.java拡張子は Java 11以上のjava.exeもしくはjava.exeを実行するなんらかのプログラムやスクリプトに紐づけられていたのでしょう。


下記操作でjn6さんの以前の状態を再現できました。

  1. エクスプローラーで.javaファイルがあるフォルダを開く
  2. .javaファイルを右クリックして、メニューから[プログラムを開く]-[別のプログラムを選択]
  3. [このファイルを開く方法を選んでください。]ウィンドウが開く
  4. [常にこのアプリを使って.javaファイルを開く]にチェックを入れる。
  5. スクロールして[その他のアプリ↓]をクリック。
  6. さらに一番下までスクロールし[このPCで別のアプリを探す」をクリック
  7. 「プログラムから開く」ウィンドウが表示されるのでver.11以上のjava.exeを選択し[開く]をクリック
  8. 黒いウィンドウが開きますが、すぐ閉じられます。
  9. コマンドプロンプトで、main.javaのあるディレクトリに移動、[main.java]とだけ入力する。
  10. ソース・ファイルモードでmain.javaが実行され、実行結果が表示される

※単にエクスプローラーから.javaファイルをクリックすることで、コマンドプロンプトを開いて実行結果を表示させたいのであれば、batファイルなどスクリプトを介する必要があるかと思います。


原因
今までは上記、若しくは上記に似た設定がされていた。
しかしテキストエディタアプリのインストールや、.javaファイルをテキストエディタで開いたタイミングなどで、.java拡張子に対してデフォルトで実行されるアプリの設定がテキストエディタに変更され、現在の状態になったというのが事の顛末かと思います。

個人的には.java拡張子へのこういった紐付けは好ましいとは思いませんが、必要なのであれば自己責任で上記紐付けの設定をしてください。

投稿2021/12/02 13:09

Crimson_Tide

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問