🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

2回答

2692閲覧

コンパイルできるけど、実行できない。

yukkuri_55

総合スコア262

Java

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

0グッド

1クリップ

投稿2019/10/05 10:05

2分探索の練習してます。

本の通りにすすめ、コンパイル実行も今までできていたのですが、
今日から実行できなくなりました。

エラーメッセージは
エラー: メイン・クラスP85_2分探索が見つからなかったかロードできませんでした
です。

VS CODE を使ってます。

コマンドラインは
PS C:\Users\user\Documents\java> cd 'c:\Users\user\Documents\java'; & 'C:\Users\user.vscode\extensions\vscjava.vscode-java-debug-0.22.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk1.8.0_191\bin\java' '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:50057' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\user\AppData\Roaming\Code\User\workspaceStorage\6c8de917c86618c9a075425fa77ea2c4\redhat.java\jdt_ws\jdt.ls-java-project\bin' 'P85_QT'
エラー: メイン・クラスP85_2分探索が見つからなかったかロードできませんでした
PS C:\Users\user\Documents\java>

となります。

ソースコードは以下のようになっています。
何かまずいところはあるのでしょうか?

java

1import java.util.Arrays; 2import java.util.Random; 3import java.util.Scanner; 4 5public class P85_2分探索 6{ 7 static int 探索_2分探索関数( int[] x, int num, int key ) 8 { 9 int pl = 0; // 探索範囲先頭のインデックス 10 int pr = num - 1; // 末尾のインデックス 11 12 do 13 { 14 int pc = ( pl + pr ) / 2; // 中央要素のインデックス 15 if( x[pc] == key ) 16 return pc; // 探索成功 17 else if ( x[pc] < key ) 18 pl = pc + 1; // 探索範囲を後半に絞り込む 19 else 20 pr = pc - 1; // 探索範囲を前半に絞り込む 21 } while( pl <= pr ); 22 23 return -1; // 探索失敗 24 } 25 26 27 public static void main(String[] args) 28 { 29 Random rand = new Random(); 30 Scanner stdIn = new Scanner(System.in); 31 32 int num = rand.nextInt(10); 33 int[] x = new int[num]; 34 35 // 配列の初期化 36 for( int i = 0; i < x.length; i++ ) 37 x[i] = rand.nextInt(100); 38 39 // 昇順にソート 40 Arrays.sort(x); 41 42 for( int i = 0; i < x.length; i++ ) 43 System.out.println("x[" + i + "]:" + x[i] ); 44 45 System.out.print("探す値:"); 46 int key = stdIn.nextInt(); 47 48 int index = 探索_2分探索関数( x, num, key ); 49 50 if( -1 == index ) 51 System.out.println( "その値は存在しません。" ); 52 else 53 System.out.println("その値は x[" + index + "]にあります。" ); 54 55 stdIn.close(); 56 } 57}

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

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

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

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

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

guest

回答2

0

自己解決

設定がなぜかうまくいってなかったようでした。
lanch.json のファイルを以下のように変更したら実行できました。
お手数かけました。m(_ _)m
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Debug (Launch) - P85_2分探索",
"request": "launch",
"mainClass": "P85_2分探索"
},

投稿2019/10/05 10:20

yukkuri_55

総合スコア262

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

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

0

[ Java入門編 ] クラス名とファイル名は同じにしましょう

ファイル名を変えたのではないでしょうか。

投稿2019/10/05 10:10

Zuishin

総合スコア28669

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

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

LouiS0616

2019/10/05 10:14

それならコンパイルの段階でコケる筈です。 リンク先でコンパイルできているのはSampleクラスがpublicで無いからです。
Zuishin

2019/10/05 10:17

これだと思ったんですが、違いましたか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問