【JAVA】JDK的配置与应用

一、实验概述

        本次Java实验任务是配置和应用JDK,以命令行操作来运行Java文件,学习Java的完全类和jar包的使用。

二、实验目的

        1、掌握JDK开发环境的下载安装

        2、掌握Java运行环境变量的配置

        3、掌握利用完全类实现多Java文件同时编译的方法

        4、了解Java的相关指令

        5、掌握JDK版本的切换和使用方法

        6、熟悉jar包的功能,实现软件复用

三、实验要求

        1、jdk8开发环境的安装

        2、class与classpath环境变量的设置

        3、完全类的运行

        4、javac与java的基本参数(-d -cp -version)

        5、jar包的用法和实例

        6、jdk版本切换

        7、FX的设置和使用

四、实验设备及运行环境

        1、实验设备:

        笔记本电脑一台

        2、运行环境:

        操作系统 Windows 11 家庭中文版

        软件环境 JDK8 11

五、实验步骤

1、jdk8开发环境的安装

        前往ORACLE官网(https://www.oracle.com/)下载Java8。

        在官网界面通过Products—Hardware and Software—Java路径点击进入Java产品选择,即进入下图所示界面,点击Download进入Java下载界面选择Windows64位的Java8。

        下载后得到.exe文件,点击下载好的文件根据提示进行安装。

        至此,JDK 8的安装完毕。

2、环境变量的设置

        环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。用户通过设置环境变量,来更好的运行进程。

        安装好JDK8后进行环境变量设置。

(1)打开环境变量设置界面

(2)编辑环境变量

       ①配置Path

         点击右下角的环境变量,新建一个环境变量JAVA_HOME,在系统变量下选择“新建”,变量名自命名,然后点击“浏览目录”,选择到jdk1.8.0_301文件夹,点击确定选择,再点击确定保存。

       配置PATH路径。点击Path,选择编辑,进入界面后选择新建,点击浏览,选择到所安装的jdk1.8.0_301\bin的路径下,点击确定保存。

       ②配置classpath

        classpath环境配置在系统变量下选择新建,变量名为classpath,先输入英文半角状态下的.,再以英文半角状态下的分号;分隔开来,再选择浏览文件,定位到jdk1.8.0_301\lib的文件下,点击确定保存,具体操作顺序如图所示。

        至此,环境变量设置完毕。

3、完全类的运行

        完全类是指带包名的类。

        在新建记事本中输以下代码保存为.java文件进行编译运行测试:

package demo;


public class Test{

    public static void main(String[] args){

        System.out.println("Hello World!");

    }

}

        点击win+R输入cmd进入命令行窗口输入指令 D:\JavaStudy\HOMEWORK\Experiment>javac Test.java 进行编译,再输入指令D:\JavaStudy\HOMEWORK\Experiment>java Test运行。结果显示,该代码是可编译的,但是不能成功运行。

        输入java demo.Test时,有包的java程序文件路径中必须包含包名,并以包名结尾。jvm看了有包,于是将包转换为路径,即在 "<存放路径>\Java\jre1.8.0_301\lib\amd64\jvm.cfg"文件夹找到Test.class文件进行装载。此时没找到文件,使用-d . 让编译器以当前路径为基准自动创建包路径。

        此时该路径下可以找到名为demo的包,再执行运行指令java demo.Test就可以成功运行了。

        至此,完全类的运行完毕。


4、javac与java的基本参数

(1)-d参数的使用

        -d命令将.java的字节码文件编译到classes目录下面。在命令行输入指令:javac -d . <Java文件名>.java

            使用-d选项,可以指定编译过的程序要放在哪里,而不会放到默认的同一个目录下。更改路径操作:在命令行输入 -d ../<目录名> <Java文件名>.java 回车运行便可更改.java的字节码文件更改到目录名的目录下。

(2)-cp参数的使用

        classpath是Java运行时环境搜索类和其他资源文件(比如jar\zip等资源)的路径。可以通过JDK工具(比如javac命令、java命令)后面的-classpath 参数设置classpath。完全类测试代码在-cp参数下运行命令及结果如下所示。

(3)-version参数的使用

-version用于输出当前版本信息,在命令行输入java -version即可获取当前使用的JDK信息。

5、jar包的运用和实例

(1)jar指令的用法

        在命令行输入jar,可以得到jar指令的用法。

(2)jar包运用实例

        在A.java文件保存的代码:

//A.java

package ch01;

public class A {
    public void  show_1(){
        System.out.println("My name is ");
    }
}

        在B.java文件保存的代码:

//B.java

package ch01;

public class B{
    public void show_2(){
        System.out.println("QI LI");
    }

}

        在AB.java文件保存的代码:

//AB.java

package ch01;

import ch01.A;
import ch01.B;

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

        A a=new A ();
        a.show_1();
 
        B b=new B ();
        b.show_2();

    }
}

        命令行输入javac -d out A.java B.java AB.java编译后得到对应的3个class文件如图所示。

        ch01目录(下左图所示界面为ch01目录下文件)下创建MANIFEST.MF来描述哪个类带有main()方法。MANIFEST.MF内输入右图内容。

    

        最后执行jar工具来创建带有所有类以及MANIFEST的JAR文件。

        运行jar包。

        至此,jar包的运用和实例演示完成。

6、jdk版本切换

        在环境变量中设置以下JAVA变量,用-version参数检验是否完成版本切换。(感觉就是把对应版本的变量提到前面去。)

        至此,JDK版本的切换完成。

7、FX的设置和使用

(1)javafx的环境配置

        由于JDK11中缺少javafx文件包,在用JDK11编译图形程序时,编译不通过,因此我们需要下载javafx文件并配置环境变量,以进行图形程序的编译。

        javafx文件包尽量不要下载在命名有空格的文件路径下,以免编译出错。在环境变量中添加一个变量JAVA_TO_FX,用于指向javafx的地址。首先打开环境变量设置,在系统变量下选择新建,变量命为JAVA_TO_FX,在新建系统变量的窗口下点开浏览目录,定位到所下载的javafx文件的lib目录下,以该路径作为变量值,随后点击确定完成系统变量的设置,设置步骤可参考下图。

        在命令行窗口中输入并运行指令echo %JAVA_TO_FX%,若其能显示出javafx的lib目录的路径,即为配置成功。

(2)编译并运行图形程序

        环境变量设置完成后,对图形程序代码进行编译和运行需要使用到指令

--module-path %JAVA_TO_FX% --add-modules javafx.controls

        选择HappyFace.java作为javafx编译运行的测试代码。

import javafx.application.Application;
import javafx.scene.canvas.Canvas;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.stage.Stage;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.shape.ArcType;
/**
 JavaFX Application that displays a happy face.
 Author: Jane Q. Programmer
 Revision of Listing 1.2.
*/
 
public class HappyFace extends Application
{
   public static final int WINDOW_WIDTH = 400;
   public static final int WINDOW_HEIGHT = 300;
 
   public static final int FACE_DIAMETER = 200;
   public static final int X_FACE = 100;
   public static final int Y_FACE = 50;
 
   public static final int EYE_WIDTH = 10;
   public static final int EYE_HEIGHT = 20;
   public static final int X_RIGHT_EYE = 155;
   public static final int Y_RIGHT_EYE = 100;
   public static final int X_LEFT_EYE = 230;
   public static final int Y_LEFT_EYE = Y_RIGHT_EYE;
 
   public static final int MOUTH_WIDTH = 100;
   public static final int MOUTH_HEIGHT = 50;
   public static final int X_MOUTH = 150;
   public static final int Y_MOUTH = 160;
   public static final int MOUTH_START_ANGLE = 180;
   public static final int MOUTH_DEGREES_SHOWN = 180;
 
   public static void main(String[] args)
   {
      launch(args);
   }
 
   @Override
   public void start(Stage primaryStage) throws Exception
   {
	  Group root = new Group();
   	  Scene scene = new Scene(root);
 
      Canvas canvas = new Canvas(WINDOW_WIDTH, WINDOW_HEIGHT);
      GraphicsContext gc = canvas.getGraphicsContext2D();
      // Draw face outline
      gc.strokeOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
      // Draw eyes
	  gc.fillOval(X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
	  gc.fillOval(X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
	  // Draw mouth
	  gc.strokeArc(X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
	               MOUTH_START_ANGLE, MOUTH_DEGREES_SHOWN, ArcType.OPEN);
 
      root.getChildren().add(canvas);
      primaryStage.setTitle("HappyFace in JavaFX");
      primaryStage.setScene(scene);
      primaryStage.show();
   }
}

编译命令:

javac --module-path %JAVA_TO_FX% --add-modules javafx.controls HappyFace.java

运行命令:

java --module-path %JAVA_TO_FX% --add-modules javafx.controls HappyFace

结果:

        至此,FX的设置和使用演示完毕。

六、实验总结

七、参考文献

肯里克·莫克[美],沃特·萨维奇[美国].Java程序设计与问题求解.机械工业出版社,2019,03(01).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值