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

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

ただいまの
回答率

90.51%

  • Java

    15340questions

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

Javaコマンド実行時のエラー出力について

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 2,980

tutttwi

score 14

もしかしたら初歩的なご質問になってしまうかもしれないのですが、
調査してみて原因がわからなかったのでご質問させてください。

コマンドプロンプトにて、javaコマンドを実行した際に出力されるエラー結果が下記2つ考えられると思っています。

①日本語で出力されるパターン
イメージ説明

②Exception結果が詳細に出力されるパターン

イメージ説明

現在私の環境では①で出力される状態です。
①,②のエラーはいづれもクラスファイルが見つからない際に発生するものだと思ってますがあっていますでしょうか?
また、設定をすれば②の出力に変更することが可能でしょうか?

すみませんがよろしくお願い致します。

②の画像ファイルはキャプチャさせて頂いたものなので実行環境等は不明です。
①の実行環境は下記のとおりです。


■バージョン
D:\pleiades\jar>java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) Client VM (build 25.66-b18, mixed mode, sharing)

■JarSample.jarの中身
C:\Users\username\Desktop\JarSample>tree
フォルダー パスの一覧:  ボリューム システム
ボリューム シリアル番号は BA6C-34D5 です
C:.
├─jp
│  └─co
│      └─username
│          └─bizz
│              └─main  - JarMain.class
└─META-INF - MANIFEST.MF

※念のため中身です。。。

Manifest-Version: 1.0
Class-Path: .
Main-Class: jp.co.tsutsui.bizz.main.JarMain
package jp.co.username.bizz.main;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class JarMain {

    public static void main(String args[]){
        System.out.println("Hello Jar!!");
          BufferedReader stdReader =
                    new BufferedReader(new InputStreamReader(System.in));
          try{
          stdReader.readLine();
          stdReader.close();
          } catch (Exception e){
              e.printStackTrace();
          } finally{
              System.out.println("処理が終了しました");
          }

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

②の例外スタックトレースが出力されるのは1.6(以前?)のjavaコマンドですね。
昔別件で調べたのですが、6と7(以降)ではブートローディングの処理が結構変わっています。起動時エラーメッセージ出力の実装も変わっており、javaコマンドのエラーメッセージを統一することは不可能でしょう。
(引数に渡されたクラスを実行するようなラッパークラスを自前で実装すれば、Java6実行時とJava7以降実行時でメッセージを統一させることは可能かと。自分の実装した部分でエラーを出すわけですからね。)


本題からは逸れますが、 jarを実行する場合には java -jar JarSample.jar というように、-jarオプションを付ける必要があります。
java JarSample.jar だと、JarSampleパッケージのjarという名前のクラスを実行するという意味になります。

下記も参照してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 23:13

    ご回答ありがとうございます◎

    大変参考になりましたし、お伺いできないと知り得ないことでした。

    >例外スタックトレースが出力されるのは1.6(以前?)のjavaコマンドですね。
    java1.6のbin直下でJavaコマンドを叩いたところ、期待結果が得られました。
    #####################
    D:\pleiades\java\6\bin>java NotFound
    Exception in thread "main" java.lang.NoClassDefFoundError: NotFound
    Caused by: java.lang.ClassNotFoundException: NotFound
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    Could not find the main class: NotFound. Program will exit.
    #####################

    恥ずかしながらブートローディングの処理等は意識できていなかった部分になりますので、URLご参考にさせて頂きます。
    また -jar オプションのご説明ありがとうございます。
    こちらは把握出来ておりましたので大丈夫です!!

    大変参考になりました。ありがとうございます*

    キャンセル

0

javacでコンパイルしましたか?
あとjavac JarMain.java
の後JarMain.javaha
はなにがでますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 23:01

    ご回答ありがとうございます◎

    >javacでコンパイルしましたか?
    eclipse環境で実行可能Jarを作成したものです。
    ですので、コマンドプロンプト上でコンパイルはしておりません。

    >eclipseのJavaプロジェクトbin直下でパッケージが見える階層で、
    下記コマンドを叩くと添付ソースの実行結果が出力されました。
    java jp.co.username.bizz.main.JarMain 


    キャンセル

同じタグがついた質問を見る

  • Java

    15340questions

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