Bagaimana cara menjalankan program Java dari baris perintah di Windows?


216

Saya mencoba menjalankan program Java dari baris perintah di Windows. Ini kode saya:

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();
        }
    }
}

Saya tidak yakin bagaimana menjalankan program - ada bantuan? Apakah ini mungkin pada Windows? Mengapa berbeda dari lingkungan lain (saya pikir JVM ditulis sekali, jalankan di mana saja)?


33
javac CopyFile.javadan kemudianjava CopyFile
alfasin

Saya berada di baris perintah sekarang, apakah saya perlu menyimpan file txt saya di folder yang sama dengan program untuk dipanggil?
Elizabeth Turner

Paket apa yang CopyFileada
MadProgrammer

1
@Elizabeth Turner pertama Anda harus memastikan bahwa Anda telah menginstal JRE (Java Runtime Env) dan dapat diakses dari setiap folder (path ke Java / Javac termasuk dalam variabel PATH env). Kemudian jalankan perintah yang saya tulis di atas dari folder yang sama di mana CopyFile.java berada.
alfasin

Jawaban:


240

Sumber: javaindos.

Katakanlah file Anda ada di C: \ mywork \

Jalankan Command Prompt

C:\> cd \mywork

Ini membuat C: \ mywork direktori saat ini.

C:\mywork> dir

Ini menampilkan isi direktori. Anda harus melihat filenamehere.java di antara file.

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

Ini memberi tahu sistem tempat menemukan program JDK.

C:\mywork> javac filenamehere.java

Ini menjalankan javac.exe, kompiler. Anda seharusnya tidak melihat apa-apa selain prompt sistem berikutnya ...

C:\mywork> dir

javac telah membuat file filenamehere.class. Anda harus melihat filenamehere.java dan filenamehere.class di antara file.

C:\mywork> java filenamehere

Ini menjalankan penerjemah Java. Anda kemudian akan melihat output program Anda.

Jika sistem tidak dapat menemukan javac, periksa perintah set path. Jika javac berjalan tetapi Anda mendapatkan kesalahan, periksa teks Java Anda. Jika program mengkompilasi tetapi Anda mendapatkan pengecualian, periksa ejaan dan huruf besar dalam nama file dan nama kelas dan perintah java HelloWorld. Java adalah case-sensitive!


27
Masalah yang saya miliki adalah ketika saya mencoba menjalankan kompiler saya mendapatkan kesalahan "tidak dapat menemukan atau memuat kelas utama CopyFile
Elizabeth Turner

2
Jika Anda memiliki folder yang berisi CopyFile.class ditetapkan sebagai direktori saat ini, cukup coba "java -cp. CopyFile" Kalau tidak "java -cp FULLPATH CopyFile"
Nicholas Kadaeux

Bagaimana saya membuat file batch yang mengkompilasi & menjalankan kode, namun jika itu dikompilasi sebelumnya, luncurkan saja?
Pengembang android

2
Apa yang hilang: jika kelas dinyatakan dalam paket tertentu, maka Anda harus meletakkan .classfile dalam struktur direktori yang sesuai. Direktori saat ini adalah classpath default, jadi Anda tidak perlu mengatur -cp .secara manual.
Artur Czajka

2
Yang pasti, Anda harus menggunakan sebuah paket: paket mypackage; lalu pergi ke nama proyek Anda /. Jalankan java mypackage.Main
chrips

108

Untuk melengkapi jawabannya:

  1. File Java

    TheJavaFile.java
  2. Kompilasi File Java ke file * .class

    javac TheJavaFile.java
    • Ini akan membuat TheJavaFile.classfile
  3. Eksekusi File Java

    java TheJavaFile
  4. Pembuatan *.jarfile yang dapat dieksekusi

    • Anda punya dua opsi di sini -

      1. Dengan file manifes eksternal:

        • Buat file manifes katakan - MANIFEST.mf

        • File MANIFEST hanyalah entri eksplisit dari Kelas Utama

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

      2. Dapat dieksekusi oleh Entry Point:

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  5. Untuk menjalankan File Jar

    java -jar TheJavaFile.jar

5
dapatkah Anda menunjukkan isi MANIFEST.mf, karena ketika saya mencoba "Executable by Entry Point" dikatakan kelas utama tidak dapat ditemukan
Pini Cheyni

@Pini Cheyni Jika kelas Anda disebut MainClass maka file manifes Anda akan memiliki entri untuk Main-Class: MainClass
jkhosla

@PiniCheyni, 2 cara untuk membuat botol yang dapat dieksekusi dijelaskan dengan baik di sini. docs.oracle.com/javase/tutorial/deployment/jar/appman.html
Dinesh Kumar P

pada poin 3, ketika Anda memanggil itu java TheJavaFilesetara dengan java TheJavaFile.class.. jadi Anda tidak mengeksekusi file java seperti yang Anda nyatakan. Anda sedang mengeksekusi file kelas. file java adalah sumber yang tidak dapat dieksekusi
user2914191

21

Seandainya kelas Java Anda ada dalam beberapa paket. Misalkan kelas Java Anda bernama ABC.javahadir com.hello.programs, maka Anda harus menjalankannya dengan nama paket.

Kompilasi dengan cara biasa:

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

Tetapi untuk menjalankannya, Anda harus memberikan nama paket dan kemudian nama kelas java Anda:

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

19

Kompilasi file Java untuk menghasilkan kelas:

javac filename.java

Jalankan kelas yang dihasilkan:

java filename

Perhatikan bahwa "nama file" Anda sebenarnya adalah nama kelas. Java.exe akan mencari setiap file * .jar untuk kelas nama ini.
Doomjunky

@Doomjunky Bisakah Anda menjelaskannya? Apakah itu buruk atau bagus? Haruskah namanya berbeda?
David Ferenczy Rogožan

9

Ini mudah. Jika Anda telah menyimpan file Anda sebagai A.text hal pertama yang harus Anda lakukan adalah menyimpannya sebagai A.java. Sekarang file Java.

Sekarang Anda perlu membuka cmd dan mengatur path ke file A.java Anda sebelum kompilasi. Anda dapat merujuk ini untuk itu.

Kemudian Anda dapat mengkompilasi file Anda menggunakan perintah

javac A.java

Kemudian jalankan dengan menggunakan

java A

Jadi itulah cara Anda mengkompilasi dan menjalankan program java di cmd. Anda juga dapat membaca materi - materi ini yaitu pelajaran mendalam Java. Banyak hal yang perlu Anda pahami di Jawa dibahas di sana untuk pemula.


7

Anda dapat mengkompilasi semua sumber java menggunakan javac di baris perintah; mis., javac CopyFile.java. Untuk menjalankan: java CopyFile. Anda juga dapat mengkompilasi semua file java menggunakan javac * .java selama mereka berada di direktori yang sama

Jika Anda mengalami masalah akibat "tidak dapat menemukan atau memuat kelas utama" Anda mungkin tidak memiliki jre di jalur Anda. Lihat pertanyaan ini: Tidak dapat menemukan atau memuat kelas utama


7

Dengan asumsi file tersebut disebut "CopyFile.java", lakukan hal berikut:

javac CopyFile.java
java -cp . CopyFile

Baris pertama mengkompilasi kode sumber menjadi kode byte yang dapat dieksekusi. Baris kedua menjalankannya, pertama menambahkan direktori saat ini ke jalur kelas (untuk berjaga-jaga).


3
mycomputer: pengguna bin $ java -cp. Kesalahan Main.class: Tidak dapat menemukan atau memuat kelas utama Main.class
chrips


4

Pada Windows 7 saya harus melakukan hal berikut:

cara cepat

  1. Instal JDK http://www.oracle.com/technetwork/java/javase/downloads
  2. di windows, telusuri "C: \ Program Files \ Java \ jdk1.8.0_91 \ bin" (atau di mana pun versi terbaru JDK diinstal), tahan shift dan klik kanan pada area kosong di dalam jendela dan lakukan "buka jendela perintah di sini "dan ini akan memberi Anda baris perintah dan akses ke semua alat BIN. "javac" tidak secara default dalam variabel lingkungan sistem PATH windows.
  3. Ikuti komentar di atas tentang cara mengompilasi file ("javac MyFile.java" lalu "java MyFile") https://stackoverflow.com/a/33149828/194872

jauh

  1. Instal JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Setelah menginstal, dalam mengedit variabel lingkungan Windows PATH dan menambahkan berikut ini ke jalur C: \ ProgramData \ Oracle \ Java \ javapath. Di dalam folder ini terdapat tautan simbolis ke beberapa executable java, tetapi "javac" BUKAN salah satunya sehingga ketika mencoba menjalankan "javac" dari baris perintah Windows, ia membuat kesalahan.
  3. Saya mengedit path: Control Panel -> System -> tab Advanced -> "Variabel Lingkungan ..." tombol -> gulir ke bawah ke "Path", sorot dan edit -> diganti "C: \ ProgramData \ Oracle \ Java \ javapath "dengan jalur langsung ke folder BIN java" C: \ Program Files \ Java \ jdk1.8.0_91 \ bin ".
  4. Ini kemungkinan rusak ketika Anda meningkatkan instalasi JDK Anda tetapi Anda memiliki akses ke semua alat baris perintah sekarang.

  5. Ikuti komentar di atas tentang cara mengompilasi file ("javac MyFile.java" lalu "java MyFile") https://stackoverflow.com/a/33149828/194872


2

masukkan deskripsi gambar di sini LANGKAH 1: BUKA PERTANYAAN PROMPT PERTAMA DI MANA FILE ANDA TERLETAK. (klik kanan sambil menekan shift)
LANGKAH 2: KEMUDIAN GUNAKAN PERINTAH BERIKUT UNTUK MELAKSANAKAN EXECUTE. (misalkan file dan nama kelas yang akan dieksekusi dinamai Student.java) Contoh program ada di latar belakang gambar.

     javac Student.java
     java Student

masukkan deskripsi gambar di sini


1

Pada Java 9, JDK termasuk jshell, Java REPL.

Dengan asumsi bindirektori JDK 9+ ditambahkan dengan benar ke jalur Anda, Anda akan dapat dengan mudah:

  1. Jalankan jshell File.java- File.javamenjadi file Anda tentu saja.
  2. Sebuah prompt akan terbuka, yang memungkinkan Anda untuk memanggil mainmetode: jshell> File.main(null).
  3. Untuk menutup konfirmasi dan mengakhiri sesi JVM, gunakan /exit

Dokumentasi lengkap untuk JShell dapat ditemukan di sini .


1

Sekarang (dengan JDK 9 dan seterusnya), Anda bisa menggunakan java untuk menjalankannya. Untuk menjalankan "Hello.java" yang berisi utama, orang dapat menggunakan: java Hello.java

Anda tidak perlu lagi mengkompilasi menggunakan javac secara terpisah.


Fitur ini telah ditambahkan di JDK 11.
Holger
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.