如何编译和 运行 两个不同的 java 程序,其中一个程序的实例位于不同目录中的另一个程序中?

how to compile and run two different java programs with instances of one in another which are in different directories?

我的第一个 java 程序是

import java.io.*;
class pgm10a
{
    public static void main(String args[])
    {
        pgm10b b=new pgm10b();
        b.display();
    }
    void display()
    {
        System.out.println("A class");
    }
}

保存在C:\NNK\pack1 第二个节目是

import java.io.*;
class pgm10b
{
    void pgm10b()
    {
        pgm10a a=new pgm10a();
        a.display();
    }
    void display()
    {
        System.out.println("Class B");
    }
}

它在 C:\NNK\pack2 我想 运行 pgm10a 但它一直显示 pgm10b not found 异常。我已经设置了 class 路径并为两者编译并且都编译成功。但是当我尝试 运行 它们时,它显示找不到 pgm10b。

看看 syntax for the java command:

java [options] classname [args]

class 名称后的任何内容都不是 java 命令的选项——它只是按原样在字符串数组中传递给程序的 main 方法。

您可以通过更改最终命令来解决您的问题:

java pgm10a -cp C:\NNK\pack2

对此:

java -cp .;C:\NNK\pack2 pgm10a

class路径是一系列目录,在Windows中的运行时由;分隔(在其他操作系统上为:),其中告诉 java 命令在哪里可以找到已编译的 classes。如果您只指定 C:\NNK\pack2,Java 将只能在该目录中看到 classes。句点 (.) 指的是当前目录,所以上面的 class 路径同时指向当前目录(包含 pgm10a)和 pack2 目录(包含 pgm10b)。