Java项目概述,编译和执行

时间:2020-01-09 10:36:19  来源:igfitidea点击:

我已经解释了如何创建,编译和运行第一个Java应用程序,并了解了有关主要方法的更多信息。学习Java的下一步是概述基本Java项目的结构,Java代码的编译方式以及如何执行完成的Java程序。

Java源目录和类目录

一个简单的Java项目包含一个目录,该目录中存储了所有Java源文件。 Java文件通常不直接存储在源目录中,而是存储在与其包结构相匹配的子目录中。包只是将属于一起的源文件组合在一起的一种方法。

源目录通常称为src,但这不是必需的。例如,如果我们使用构建工具Maven,则通常将使用不同的目录结构,其中Java源代码存储在src / main / java目录(位于项目根目录下)中。

当我们编译源代码中的所有源代码时,编译器会为每个.java文件生成一个.class文件。 .class包含.java文件的编译版本。换句话说,.java文件的字节码。

它是Java虚拟机可以执行的.class文件。不是.java文件。因此,将.java文件与.class文件分开是正常的。通常是通过指示编译器将.class文件写入单独的目录来完成的。这个目录通常被称为"类",但是同样,它不是必需的,它取决于我们所使用的构建工具或者IDE等。

编译Java源代码

我们可以直接从IDE编译Java源代码(如果使用IDE)。或者,我们可以使用Java SDK随附的Java编译器。要使用Java编译器从命令行编译Java源代码,请执行以下操作:

  • 打开命令提示符
  • 将目录更改为项目的根目录(而不是源目录)
  • 确保项目根目录包含源目录和类目录
  • 键入以下命令(在Windows上-其他操作系统看起来类似):
"c:\Program Files\Java\jdk1.8.0_25\bin\javac" src/myfirstapp/*.java -d classes

该命令执行" javac"命令(Java编译器),该命令可编译目录src / myfirstapp中的Java源代码。 \。java表示编译器应编译给定目录中的所有文件。

" myfirstapp"目录是根源目录" src"下的软件包。如果我们在根源目录下有多个软件包,则必须多次运行Java编译器。 Java IDE会自动为我们处理此问题。构建工具(例如Ant,Maven或者Gradle)也是如此。

运行编译的Java代码

编译器完成工作后," classes"目录将包含已编译的" .class"文件。源目录中的包结构(目录结构)将保留在class目录下。我们可以运行其中具有main()方法的任何.class文件中的任何一个。我们可以从Java IDE内部或者从命令行运行.class。在命令行中,它看起来像这样:

"c:\Program Files\Java\jdk1.8.0_25\bin\java" -cp classes myfirstapp.MyJavaApp

" -cp classes"标志告诉Java虚拟机我们所有的类都位于名为" classes"的目录下。这也称为"类路径"(因此缩写为cp)。

要运行的类的名称是上述命令myfirstapp.MyJavaApp部分中的最后一个参数。 JVM需要知道完全限定的类名(所有软件包加上类名),以确定相应的.class文件位于何处。

当我们运行该类时,命令行将类似于以下内容(包括Java应用程序的输出):

D:\data\projects\my-first-java-app>"c:\Program Files\Java\jdk1.8.0_25\bin\java"
    -cp classes myfirstapp.MyJavaApp
Hello World!

D:\data\projects\my-first-java-app>

(请注意,第一个命令不应其中插入换行符。我仅其中添加了换行符,以使其更易于阅读。

这就对了!现在,我们知道如何编译和执行Java应用程序了!