Javaをコマンドラインから実行する

テキストエディタで次のコードをHelloWorld.javaファイルとして保存します。

// HelloWorld.java
public class HelloWorld
{
    public static void main( String[] args )
    {
        System.out.println( "Hello world!" );
    }
}

『ファイル名を指定して実行』や『プログラムとファイルの検索』より『 cmd 』を入力してEnterを押すと、黒いコマンドプロンプトの画面が開きます。

コマンドプロンプトよりJavaが使用できるか確認します。

C:\>java

を実行してコマンドリストが出るかを確認します。

C:\>javac

を実行してコマンドリストが出るかを確認します。

'java' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

のように出る場合は、環境変数PATHの指定が間違っています。

[参考記事] パスの設定 環境変数PATH
[参考記事] javaコマンドは実行できるが、javacコマンドが実行できないとき

これでHelloWorld.javaを保存したフォルダまでカレントディレクトリを移動します。
デスクトップであれば

C:\>cd C:\Users\【ユーザ名】\Desktop

わかりにくければ『cd 』を入力した後に、HelloWorld.javaファイルを黒いウインドウにドラック&ドロップするとHelloWorld.javaまでのパスが入力されるので、HelloWorld.java部分を消してEnterを実行します。

ここで

C:\>javac HelloWorld.java

を実行します。
実行すると、同じ階層にHelloWorld.classファイルが生成されます。

次に

C:\>java HelloWorld

を実行すると

Hello world!

と表示されます。
これでJavaがコマンドラインより実行することができました。

このとき拡張子は付きません。
またこのHelloWorldはHelloWorld.classを検索して、その中のHelloWorldクラスを実行するという意味です。

エラーが出る場合

[参考記事] Exception in thread "main" java.lang.NoClassDefFoundError

C:\>javac HelloWorld
エラー:クラス名 'HelloWorld' が受け入れられるのは、注釈処理が明示的に要求された場合だけです
エラー 1 個

この場合、拡張子が抜けています。
HelloWorldではなくHelloWorld.javaです。

C:\>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloWorld.  Program will exit.

この場合、classファイルがありません。
まずはjavac HelloWorld.javaを実行してビルドします。

C:\>java HelloWorld.java
Exception in thread "main" java.lang.NoClassDefFoundError: C:\HelloWorld/java
Caused by: java.lang.ClassNotFoundException: C:\HelloWorld.java
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: C:\HelloWorld.java.  Program will exit.

この場合、ファイル名を指定しているのが間違いです。
HelloWorld.javaではなくHelloWorldです。

関連記事

スポンサーリンク

test 条件式の真偽を判定する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る