如何运行不同目录中的Java类文件?

假设:

  • 我们有两个名为[ Java.javaC.java ]的Java文件,以及两个名为[ E:\JavaprogramsE:\Cprograms ]的目录。

  • 第一个Java文件Java.javaE:\ Javaprograms目录中,第二个Java文件C.javaE:\ Cprograms目录中。

给定的问题:

给定的问题是在E:\Cprograms目录中执行E:\Javaprograms目录中的Java.class文件。

解:

执行其他目录中的java类文件,需要执行各种步骤,

1)第一步,我们在E:\Javaprograms目录中创建一个名为Java.java的Java文件。

Java

class Java {
    public void display() {
        System.out.println("Java.java file is in E:\\Javaprograms directory");
    }
}

2)在第二步中,我们将在E:\Javaprograms目录中编译Java.java文件,因此我们将执行一些步骤。

  1. 从开始菜单打开命令提示符或终端。

  2. 打开终端后,我们必须定位到Java.java文件的路径。

  3.     C:\Users> cd \ 然后按回车
            [移动到根目录]
        C:\>  e: 然后按Enter键,然后按cd Javaprograms,然后再次按Enter键。
                [移至存储我们的Java.java文件的目录.]
        E:\Javaprograms> javac Java.java 然后按回车
            [如果文件成功编译,则类文件将
            在同一目录E:\ Javaprograms中生成。]

3)在第三步中,我们将看到如果在另一个名为[ E:\ Cprograms ]的目录中运行名为[ E:\ Javaprograms ]的Java.class的Java类文件将会发生什么。

在这里,我们在E:\ Cprograms目录中创建另一个名为C.java的Java文件。

C.java:

class C {
    public static void main(String[] args) {
        System.out.println("C.java file is in E:\Cprograms directory");
        //在这里,我们创建一个Java.java类的对象 
        //E:\ Javaprograms-
        Java ja = new Java();
        Ja.display();
    }
}

注意:如果我们编译上述程序,则将获得找不到编译时错误的Java类,因为该类位于E:\ Javaprograms目录中,因此我们尝试在E:\ Cprograms中执行Java.class,那么将得到一个错误因此,当我们在此E:\ Cprograms目录中包含E:\ Javaprograms目录的Java.class文件时,可以解决此问题。

4)在第四步中,我们将了解如何在此E:\ Cprograms目录中包含E:\ Javaprograms的Java.class文件。

借助 –cp 选项,我们可以在该E:\ Cprograms目录中包含E:\ Javaprograms的Java.class。

编译语法:

    E:\Cprograms> javac –cp E:\Javaprograms C.java

–cp E:\Javaprograms:-cp with pathname(我们将提供包含文件的路径,这里包含的文件是Java.class位于E:\Javaprograms目录中)

C.java:这是已编译类的名称。

执行语法:

    E:\Cprograms> java –cp E:\Javaprograms; C

5)在第五步或最后一步中,我们将借助示例来理解,

示例

E:\ Javaprograms中的Java.java

class Java {
    public void display() {
        System.out.println("Java.java file is executing in different directory");
    }
}

E:\ Cprograms中的C.java

class C {
    System.out.println("C.java file is executing in same directory");
    public static void main(String[] args) {
        //在这里,我们创建一个Java.java类的对象 
        //E:\ Javaprograms-
        Java ja = new Java();
        ja.display();
    }
}

我们将编译并执行E:\ Cprograms目录的C类,并使用help –cp选项在E:\ Cprograms中执行另一个名为Java.class 在 E:\ Javaprograms的Java类。


    E:\Cprograms> javac –cp E:\Javaprograms C.java 
    E:\Cprograms> java –cp E:\Javaprograms; C

输出结果

E:\Programs>javac -cp E:\Javaprograms C.java
E:\Programs>java -cp E:\Javaprograms; C
C.java file is executing in same directory
Java.java file is executing in different directory