JavaRush /Blog Jawa /Random-JV /Kompilasi lan mlaku Jawa tanpa IDE
Ve4niY
tingkat

Kompilasi lan mlaku Jawa tanpa IDE

Diterbitake ing grup
Ing sawijining wektu ing reddit.com , ing topik Nggabungake lan mlaku Jawa tanpa IDE , pitakonan ditakoni: Apa ana prentah sing nglumpukake klompok file Jawa sing ana ing njero paket menyang folder sing kapisah (ayo sebutna bin ) , lan carane aku arep miwiti file kelas anyar? " Kompilasi lan mbukak Java tanpa IDE - 1Topik penulis, kylolink , nerangake: "Nalika aku miwiti nggunakake Jawa, Aku gumantung ing Eclipse kanggo nindakake kabeh kompilasi kanggo kula lan mung kuwatir bab nulis kode. "Aku wis ndeleng pitakonan iki kaping pirang-pirang, lan, tenan, iki. Apa sing njalari aku ngirim blog sistem GPS lan IDE: apik utawa ala? Aku seneng karo IDE Jawa modern sing kuat lan nggawe uripku luwih gampang saben dina, nanging ana uga mupangat kanggo ngerti carane mbangun lan mbukak conto prasaja Jawa tanpa Posting iki babagan carane nindakake iki. Ing blog babagan sinau basa Jawa kanthi tes prasaja, aku nulis babagan carane aku seneng nggunakake editor teks lan alat baris perintah kanggo nulis, mbangun lan mbukak aplikasi sing prasaja. idea cantik apik saiki carane akeh "overhead" favorit Jawa IDEs mbutuhake lan nggawe kaputusan awal minangka kanggo apa keuntungan ngrambah dening nggunakake framework cukup kanggo mbecikake "overhead". Ing paling aplikasi nyata, ora ana sangsi sing VL IDE worth kathah. Nanging, kanggo aplikasi conto sing paling gampang, iki ora mesthi kedadeyan. Liyane saka kirim iki nuduhake carane mbangun lan mbukak kode Jawa tanpa IDE kanggo kahanan iki.

Nulis lan Nglakokake Kode Jawa

Kanggo nggawe conto luwih cetha, Aku bakal nggunakake sawetara kelas Jawa banget prasaja sing related kanggo saben liyane liwat komposisi utawa warisan lan ing paket padha disebut dustin.examples . Loro kelas ilang fungsi main, kelas katelu, Main.java, nduweni fungsi mainsing ngidini sampeyan nduduhake carane mbukak kelas tanpa IDE. Ing ngisor iki kode kanggo telung kelas iki: Parent.java
package dustin.examples;

public class Parent
{
   @Override
   public String toString()
   {
      return "I'm the Parent.";
   }
}
Bocah.jawa
package dustin.examples;

public class Child extends Parent
{
   @Override
   public String toString()
   {
      return "I'm the Child.";
   }
}
Utama.java
package dustin.examples;

import static java.lang.System.out;

public class Main
{
   private final Parent parent = new Parent();
   private final Child child = new Child();

   public static void main(final String[] arguments)
   {
      final Main instance = new Main();
      out.println(instance.parent);
      out.println(instance.child);
   }
}
Gambar ing ngisor iki nuduhake struktur direktori karo kelas .java iki . Gambar kasebut nuduhake yen file sumber ana ing hirarki direktori sing makili jeneng paket ( dustin/conto amarga informasi paket kasebut dustin.examples ) lan paket iki nggambarake hirarki direktori ana ing sangisore subdirektori SRC. Aku uga nggawe subdirektori kelas (sing saiki kosong) kanggo nyimpen file .class sing dikompilasi supaya Javac ora nggawe direktori iki nalika ora ana.

Mbangun nganggo JAVAC lan mlaku nganggo Jawa

Ora ketompo pendekatan apa sing digunakake kanggo nggawe kode Java (Ant, Maven, Gradle utawa IDE), pungkasane teka menyang JAVAC. Pilihan standar ing Oracle / Sun kasedhiya alat baris printah JAVAC bisa katon dening mbukak JAVAC -help lan opsi extension tambahan bisa viewed dening mlaku JAVAC -help -X. Informasi liyane babagan carane nggunakake opsi iki bisa ditemokake ing dokumentasi alat JAVAC kanggo Windows utawa Unix/Linux. Minangka dokumentasi Javac, pilihan -sourcepath bisa digunakake kanggo nyebut direktori ing ngendi file sumber ana. Ing struktur direktori sing ditampilake ing gambar ing ndhuwur, iki tegese, yen aku nglakokake perintah JAVAC saka direktori C:\Java\examples\javacAndJava\ , aku kudu duwe kaya iki ing printahku: Javac -sourcepath src SRC\Dustin\conto\*. Jawa . Gambar ing ngisor iki nuduhake asil kasebut. Kompilasi lan mbukak Java tanpa IDE - 2Amarga kita ora nemtokake direktori kanggo file .class , padha diselehake kanthi gawan ing direktori padha sumber file .java saka kang padha dumadi. Kita bisa nggunakake pilihan -dkanggo ndandani kahanan iki. Printah kita bisa ditindakake saiki, contone, minangka Javac -sourcepath src -d classes src\Dustin\examples\*. Kula sampeyan . Kaya sing wis dingerteni sadurunge, folder sing dipilih (kelas) kudu ana. Yen mengkono, printah bakal nyelehake file .class ing folder kasebut minangka ditampilake ing gambar ing ngisor iki Kompilasi lan mbukak Java tanpa IDE - 3Kanthi file sumber Jawa dikompilasi menyang file .class sing cocog ing direktori kasebut, kita bisa miwiti aplikasi nggunakake menu Bukak cepet Alat baris perintah Jawa. Iki mung ditindakake kanthi nuruti pandhuan sing diwenehake ing kaca Java -help utawa alat Java lan nemtokake lokasi file .class kanthi pilihan -classpath(utawa -cp). Nggunakake loro pendekatan kanggo nemtokake direktori kelas ngendi kanggo nggoleki file .class dituduhake ing gambar ing ngisor iki. Argumentasi pungkasan yaiku jeneng lengkap (kabeh paket Java) saka kelas sing nduweni fungsi utama sing kudu dieksekusi. Printah sing dituduhake ing gambar ing ngisor iki yaiku kelas java -cp dustin.examples.Main lan kelas java -classpath dustin.examples.Main. Kompilasi lan mbukak Java tanpa IDE - 4

Mbangun lan Mlaku karo Ant

Kanggo aplikasi Java sing paling gampang, cukup gampang nggunakake JAVAC lan Java kanggo nggawe lan mbukak aplikasi kasebut, kaya sing ditampilake. Nalika aplikasi dadi luwih rumit (contone, kode sing ana ing luwih saka siji paket/direktori utawa kelas dependensi sing luwih rumit ing perpustakaan lan kerangka kerja pihak katelu), pendekatan iki bisa dadi angel. Apache Ant minangka alat mbangun Java "telu gedhe" paling tuwa lan wis digunakake ing ewonan aplikasi lan panyebaran. Kaya sing dakkandhakake ing postingan blog sadurunge, file mbangun Ant sing gampang banget gampang digawe, utamane yen diwiwiti kanthi cithakan kaya sing dakkandhakake ing kirim iki. Dhaptar kode ing ngisor iki kanggo file build.xml Ant , sing bisa digunakake kanggo nyipta file .java menyang file .class banjur mbukak kelas dustin.examples.Main kaya sing wis rampung ing ndhuwur karo JAVAC lan Java. mbangun.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="BuildingSansIDE" default="run" basedir=".">
   <description>Building Simple Java Applications Without An IDE</description>

   <target name="compile"
           description="Compile the Java code.">
      <javac srcdir="src"
             destdir="classes"
             debug="true"
      includeantruntime="false" />
   </target>

   <target name="run" depends="compile"
           description="Run the Java application.">
      <java classname="dustin.examples.Main" fork="true">
         <classpath>
           <pathelement path="classes"/>
         </classpath>
      </java>
   </target>
</project>
Aku ora nggunakake sifat Semut lan ora kalebu tujuan umum sing biasane aku kalebu (kayata "murni" lan "Javadoc") supaya conto iki sesederhana mungkin lan tetep cedhak karo conto sadurunge nggunakake JAVAC lan Jawa. . Elinga uga aku wis ngaktifake "debug" disetel kanggo "bener" kanggo tugas JAVAC Ant amarga iki ora bener ing cilik saka Gagal Ant, nanging bener karo standar JAVAC. Ora kaget, tugas Javac lan tugas Java Ant meh padha karo alat perintah JAVAC lan Java. Amarga aku nggunakake jeneng standar Ant ngarepake file mbangun nalika ora kasebut kanthi jelas (build.xml) lan amarga aku nyedhiyakake target "Run" minangka "standar" kanggo mbangun iki lan amarga aku kalebu "kompilasi" minangka run dependensi. target "Run" lan amarga Ant ana ing dalan lingkungan, kabeh aku kudu nindakake ing baris printah kanggo njaluk Ant kanggo ngumpulake lan mbukak conto semut ing direktori karo file build.xml . Iki ditampilake ing gambar ing ngisor iki. Kompilasi lan mbukak Java tanpa IDE - 5Senajan aku wis nduduhake kompilasi lan mbukak aplikasi Java prasaja karo Ant, Aku kathah mung compile karo Ant lan mbukak karo Jawa (utawa script sing nelpon Jawa yen classpath abot).

Bangunan lan Mlaku karo Maven

Sanajan Ant minangka alat mbangun Jawa inti pisanan, Apache Maven pungkasane dadi misuwur amarga nggunakake konfigurasi basis konvensi lan dhukungan kanggo repositori perpustakaan sing dienggo bareng. Maven gampang digunakake nalika kode lan obyek sing digawe tindakake tata letak direktori standar. Sayange, contoku ora ngetutake struktur direktori iki, nanging Maven ngidini kita ngilangi struktur direktori standar sing dikarepake. Dhaptar ing ngisor iki minangka kode kanggo file Maven POM sing digunakake ing panggonan sumber lan direktori target lan nyedhiyakake unsur minimal liyane sing dibutuhake kanggo mbangun Maven nggunakake Maven 3.2.1. pom.xml
<project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>dustin.examples</groupId>
   <artifactId>CompilingAndRunningWithoutIDE</artifactId>
   <version>1</version>

   <build>
      <defaultGoal>compile</defaultGoal>
      <sourceDirectory>src</sourceDirectory>
      <outputDirectory>classes</outputDirectory>
      <finalName>${project.artifactId}-${project.version}</finalName>
   </build>
</project>
Wiwit file pom.xml ndhuwur nemtokake "defaultGoal" saka "kompilasi" lan amarga file pom.xml minangka standar POM adat sing eksekusi Maven (MVN) katon lan amarga direktori bin instalasi Maven ing dalan, mung Aku kudu mbukak "MVN" kanggo ngumpulake file .class kaya kasebut ing gambar ing ngisor iki. Kompilasi lan mbukak Java tanpa IDE - 6Aku uga bisa mbukak aplikasi kompilasi saka Maven nggunakake printah Mvn Exec: Java -Dexec.mainClass = dustin.examples.Main , kang diamati ing gambar ngisor iki. Kompilasi lan mbukak Java tanpa IDE - 7Kaya Ant, aku ora nggunakake Maven kanggo mbukak aplikasi Java sing prasaja, nanging nggunakake Java ing kode sing dikompilasi (utawa nggunakake skrip sing nelpon Jawa langsung ing kelas sing dawa).

Mbangun lan mlaku karo Gradle

Gradle minangka sing paling anyar, paling trendi, lan apik banget saka telung alat mbangun Jawa utama. Aku sok-sok mamang babagan inti saka apa sing trendi, nanging aku nemokake akeh sing disenengi babagan Gradle (ditulis ing Groovy tinimbang XML, dhukungan Ant sing dibangun, dhukungan Ivy sing dibangun, konfigurasi kanthi konvensi sing gampang. kanggo reconfigure, dhukungan repositori Maven, lan liya-liyane). Conto ing ngisor iki nuduhake mbangun Gradle sing bisa digunakake kanggo ngumpulake lan mbukak aplikasi sing prasaja, yaiku kode sampel utama kanggo kiriman iki. Aku nampilake conto adaptasi iki ing blog Kustomisasi Plugin Java Gradle Simple. mbangun.gradle
apply plugin: 'java'
apply plugin: 'application'

// Redefine where Gradle should expect Java source files (*.java)
sourceSets {
    main {
        java {
            srcDirs 'src'
        }
    }
}

// Redefine where .class files are written
sourceSets.main.output.classesDir = file("classes")

// Specify main class to be executed
mainClassName = "dustin.examples.Main"

defaultTasks 'compileJava', 'run'
Rong baris pisanan saka file build.gradle nuduhake panggunaan plugin Java lan plugin Aplikasi, sing nyebabake akeh fungsi kanthi otomatis dibangun ing bangunan iki. Nemtokake "sourceSets" lan "sourceSets.main.output.classesDir" ngidini sampeyan ngganti direktori Java standar plugin Gradle kanggo kode sumber Java lan kelas binar sing dikompilasi. "MainClassName" ngidini sampeyan nemtokake kanthi jelas kelas sing kudu ditindakake ing Plugin Aplikasi Baris "defaultTasks" nemtokake tugas sing bakal ditindakake kanthi mung ngetik "Gradle" ing baris perintah: 'compileJava' minangka tugas standar sing diwenehake dening plugin Java lan 'Run' minangka tugas standar sing diwenehake dening plugin Aplikasi. Amarga aku jenenge build.gradle rakitan lan mulane aku nemtokake tugas standar minangka 'compileJava' lan 'Run' lan amarga aku duwe direktori bin instalasi Gradle ing dalanku, kabeh sing kudu dak lakoni kanggo mbangun lan mbukak conto yaiku ngetik 'Gradle' lan iki dituduhake ing gambar ing ngisor iki. Kompilasi lan mbukak Java tanpa IDE - 8Malah sing mamang paling gedhe kudu ngakoni manawa bangunan Gradle lunyu banget kanggo conto sing gampang iki. Iku nggabungke conciseness saka gumantung ing konvènsi tartamtu lan asumsi karo mekanisme gampang banget kanggo overriding standar yen perlu. Kasunyatan sing ana ing Groovy tinimbang XML uga atraktif banget! Minangka Ant lan Maven, Aku kathah kanggo mbangun mung karo alat iki lan kathah mbukak file .kelas nyawiji langsung saka Jawa utawa script sing nyebut Jawa. Miturut cara, Aku kathah uga arsip .kelas iki menyang jar kanggo Bukak, nanging sing ngluwihi orane katrangan saka artikel iki.

Kesimpulan

IDE asring ora perlu kanggo mbangun aplikasi lan conto sing prasaja lan bisa uga luwih larang tinimbang biaya kanggo mbangun conto sing prasaja. Ing kasus kaya mengkono, iku cukup gampang nggunakake JAVAC lan Jawa kanggo langsung mbangun lan mbukak conto. Minangka conto dadi luwih melu, alat mbangun kayata Ant, Maven, utawa Gradle dadi luwih atraktif. Kasunyatan manawa akeh lingkungan pangembangan ndhukung utilitas mbangun iki tegese pangembang bisa pindhah menyang IDE nggunakake alat sing dibangun sadurunge ing proses kasebut yen wis ditemtokake manawa dhukungan IDE dibutuhake amarga aplikasi sing gampang berkembang dadi proyek lengkap. .
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION