WindowsのコマンドラインからJavaプログラムを実行するにはどうすればよいですか?


216

WindowsのコマンドラインからJavaプログラムを実行しようとしています。これが私のコードです:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyFile
{
    public static void main(String[] args)
    {

        InputStream inStream = null;
        OutputStream outStream = null;

        try
        {

            File afile = new File("input.txt");
            File bfile = new File("inputCopy.txt");

            inStream = new FileInputStream(afile);
            outStream = new FileOutputStream(bfile);

            byte[] buffer = new byte[1024];

            int length;
            // copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0)
            {

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            System.out.println("File is copied successful!");

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

プログラムの実行方法がわかりません-助けはありますか?これはWindowsで可能ですか?なぜそれが別の環境と違うのですか(JVMは一度だけ作成され、どこでも実行されると思いました)


33
javac CopyFile.javaその後java CopyFile
アルファシン

現在コマンドラインにいますが、txtファイルを呼び出すには、プログラムと同じフォルダーに保存する必要がありますか?
エリザベスターナー

CopyFile常駐するパッケージ
MadProgrammer 2013

1
@Elizabeth Turnerまず、JRE(Javaランタイム環境)がインストールされていること、およびすべてのフォルダーからアクセスできることを確認する必要があります(Java / JavacへのパスはPATH環境変数に含まれています)。次に、CopyFile.javaが配置されているのと同じフォルダから、上記で記述したコマンドを実行します。
alfasin 2013

javaPATH、およびCLASSPATHと、このコマンドラインからのJavaプログラムの実行に関する質問を参照してください。
C.ロス

回答:


240

ソース:javaindos。

ファイルがC:\ mywork \にあるとしましょう

コマンドプロンプトを実行する

C:\> cd \mywork

これにより、C:\ myworkが現在のディレクトリになります。

C:\mywork> dir

これにより、ディレクトリの内容が表示されます。ファイルの中にfilenamehere.javaが表示されます。

C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin

これは、JDKプログラムの場所をシステムに通知します。

C:\mywork> javac filenamehere.java

これにより、コンパイラであるjavac.exeが実行されます。次のシステムプロンプトしか表示されないはずです...

C:\mywork> dir

javacがfilenamehere.classファイルを作成しました。ファイルの中にfilenamehere.javaとfilenamehere.classが表示されます。

C:\mywork> java filenamehere

これにより、Javaインタープリターが実行されます。その後、プログラムの出力が表示されます。

システムがjavacを見つけられない場合は、set pathコマンドを確認してください。javacを実行してもエラーが発生する場合は、Javaテキストを確認してください。プログラムはコンパイルされても例外が発生する場合は、ファイル名とクラス名のスペルと大文字、およびjava HelloWorldコマンドを確認してください。Javaでは大文字と小文字が区別されます。


27
私が抱えている問題は、コンパイラーを実行しようとすると、「メインクラスCopyFileを検出またはロードできませんでした
Elizabeth Turner

2
CopyFile.classを含むフォルダーが現在のディレクトリとして設定されている場合は、「java -cp。CopyFile」を試してください。それ以外の場合は「java -cp FULLPATH CopyFile」
Nicholas Kadaeux

コードをコンパイルして実行するバッチファイルを作成するにはどうすればよいでしょうか。
Android開発者、

2
不足しているもの:クラスが特定のパッケージにあると宣言されている場合、.classファイルを適切なディレクトリ構造に配置する必要があります。現在のディレクトリがデフォルトのクラスパスであるため、-cp .手動で設定する必要はありません。
Artur Czajka 2016年

2
確かに、パッケージを使用する必要があります。次に、プロジェクト名/に移動します。java mypackage.Mainを実行します
chrips

108

答えを完成させるには:

  1. Javaファイル

    TheJavaFile.java
  2. Javaファイルを* .classファイルにコンパイルします。

    javac TheJavaFile.java
    • これによりTheJavaFile.classファイルが作成されます
  3. Javaファイルの実行

    java TheJavaFile
  4. 実行*.jarファイルの作成

    • ここには2つのオプションがあります-

      1. 外部マニフェストファイル:

        • マニフェストファイルを作成します-MANIFEST.mf

        • MANIFESTファイルは、メインクラスの明示的なエントリにすぎません

        • jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class

      2. エントリポイントで実行可能:

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  5. JARファイルを実行するには

    java -jar TheJavaFile.jar

5
MANIFEST.mfの内容を表示してください。「エントリポイントで実行可能」にしようとすると、メインクラスが見つからないと表示されます
Pini Cheyni

@Pini CheyniクラスがMainClassと呼ばれる場合、マニフェストファイルにはMain-Classのエントリがあります。MainClass
jkhosla

@PiniCheyni、実行可能なjarを作成する2つの方法は、ここで詳しく説明されています。docs.oracle.com/javase/tutorial/deployment/jar/appman.html
Dinesh Kumar P

ポイント3では、それjava TheJavaFilejava TheJavaFile.class.. と同等に呼び出すと、指定したようにJavaファイルを実行しません。クラスファイルを実行するあなた。javaファイルは実行可能でないソースです
user2914191

21

Javaクラスが何らかのパッケージに含まれている場合。という名前のJavaクラスABC.javaがに存在com.hello.programsする場合、パッケージ名で実行する必要があります。

通常の方法でコンパイルします。

C:\SimpleJavaProject\src\com\hello\programs > javac ABC.java

しかし、それを実行するには、パッケージ名とJavaクラス名を指定する必要があります。

C:\SimpleJavaProject\src > java com.hello.programs.ABC

19

Javaファイルをコンパイルしてクラスを生成します。

javac filename.java

生成されたクラスを実行します。

java filename

「ファイル名」は実際にはクラスの名前であることに注意してください。java.exeは、すべての* .jarファイルでこの名前のクラスを検索します。
Doomjunky 2017

@Doomjunky説明していただけますか?それは悪いですか良いですか?別の名前にする必要がありますか?
David FerenczyRogožan2018

9

簡単です。ファイルをA.textとして保存した場合は、まずA.javaとして保存する必要があります。現在はJavaファイルです。

コンパイルする前に、cmdを開いてA.javaファイルへのパスを設定する必要があります。あなたはそのためにこれを参照することができます。

次に、コマンドを使用してファイルをコンパイルできます

javac A.java

次に、それを使用して実行します

java A

これが、cmdでJavaプログラムをコンパイルして実行する方法です。また、Javaであるこれらの資料を詳細に学習することもできます。初心者のために、Javaで理解する必要のある事項の多くがカバーされています。


7

コマンドラインでjavacを使用して、任意のJavaソースをコンパイルできます。例:javac CopyFile.java。実行するには:java CopyFile。同じディレクトリにある限り、javac * .javaを使用してすべてのjavaファイルをコンパイルすることもできます。

「メインクラスが見つからないか、ロードできませんでした」という問題が発生している場合は、パスにjreがない可能性があります。この質問を見てください: メインクラスが見つからなかったか、ロードできませんでした


7

ファイルの名前が「CopyFile.java」であると想定して、次の手順を実行します。

javac CopyFile.java
java -cp . CopyFile

最初の行は、ソースコードを実行可能なバイトコードにコンパイルします。2行目はそれを実行し、最初に現在のディレクトリをクラスパスに追加します(念のため)。


3
mycomputer:bin user $ java -cp。Main.classエラー:メインクラスMain.classを検出またはロードできませんでした
クリップ'13


4

Windows 7では、以下を実行する必要がありました。

簡単な方法

  1. JDKをインストールhttp://www.oracle.com/technetwork/java/javase/downloads
  2. ウィンドウで、「C:\ Program Files \ Java \ jdk1.8.0_91 \ bin」(または最新バージョンのJDKがインストールされている場所)に移動し、Shiftキーを押しながらウィンドウ内の空白の領域を右クリックして、「開くここにコマンドウィンドウ」と入力すると、コマンドラインが表示され、すべてのBINツールにアクセスできます。「javac」は、WindowsシステムのPATH環境変数ではデフォルトではありません。
  3. ファイルをコンパイルする方法について、上記のコメントに従ってください(「javac MyFile.java」、次に「java MyFile」)。https: //stackoverflow.com/a/33149828/194872

長い道のり

  1. JDKをインストールhttp://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. インストール後、WindowsのPATH環境変数を編集し、パスC:\ ProgramData \ Oracle \ Java \ javapathに以下を追加します。このフォルダー内には、少数のJava実行可能ファイルへのシンボリックリンクがありますが、「javac」はその1つではないため、Windowsコマンドラインから「javac」を実行しようとすると、エラーがスローされます。
  3. パスを編集しました:[コントロールパネル]-> [システム]-> [詳細設定]タブ-> [環境変数...]ボタン-> [パス]までスクロールし、強調表示して編集します-> "C:\ ProgramData \ Oracle \ Java \ javapath」は、Java BINフォルダー「C:\ Program Files \ Java \ jdk1.8.0_91 \ bin」への直接パスです。
  4. これは、JDKインストールをアップグレードすると壊れる可能性がありますが、現在はすべてのコマンドラインツールにアクセスできます。

  5. ファイルをコンパイルする方法について、上記のコメントに従ってください(「javac MyFile.java」、次に「java MyFile」)。https: //stackoverflow.com/a/33149828/194872


2

ここに画像の説明を入力してください ステップ1:ファイルが置かれている場所でコマンドプロンプトを最初に開きます。(Shift
キーを押しながら右クリック)ステップ2:次に、以下のコマンドを使用して実行します。(実行されるファイルとクラスの名前はStudent.javaと呼ばれます)サンプルプログラムは画像の背景にあります。

     javac Student.java
     java Student

ここに画像の説明を入力してください


1

Java 9以降、JDKにはjshellJava REPLが含まれています。

JDK 9+ binディレクトリがパスに正しく追加されていると仮定すると、簡単に次のことができます。

  1. 実行jshell File.javaFile.javaもちろんファイルです。
  2. プロンプトが開き、次のmainメソッドを呼び出すことができますjshell> File.main(null)
  3. プロンプトを閉じてJVMセッションを終了するには、次のコマンドを使用します。 /exit

JShellの完全なドキュメントはここにあります


1

これで(JDK 9以降)、javaを使用して実行することができます。メインを含む「Hello.java」を実行するには、次のように使用できます。java Hello.java

javacを使用して個別にコンパイルする必要はありません。


この機能は、JDK 11に追加されました
ホルガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.