Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行java代码,该代码使用其他包中的类_Java - Fatal编程技术网

运行java代码,该代码使用其他包中的类

运行java代码,该代码使用其他包中的类,java,Java,我有以下目录布局: program文件夹包含java、class和pack文件夹,我的当前位置是program/java,其中包含a.java和b.java文件。最初,类和包不包含任何内容 b、 爪哇 package comm.domm; public class b { public void bFu() { System.out.println("b function"); } } a、 爪哇 package com.dom; import comm

我有以下目录布局: program文件夹包含java、class和pack文件夹,我的当前位置是program/java,其中包含a.java和b.java文件。最初,类和包不包含任何内容

b、 爪哇

package comm.domm;
public class b
{
    public void bFu()
    {
        System.out.println("b function");
    }
}
a、 爪哇

package com.dom;
import comm.domm.*;
class a
{
    public static void main(String args[])
    {
        (new b()).bFu();
        System.out.println("Utsab");
    }
}
现在,从program/java发出以下命令

javac -d ../pack b.java
javac -cp ../pack -d ../class a.java
它在pack下创建comm/domm,并在program/pack/comm/domm中放置b.class 并在class下创建com/dom,并在program/class/com/dom中放置一个.class

现在从我发布的同一个当前目录

java -cp ../class;../pack com.dom.a
这不起作用,它可以定位a.class,但不能定位b.class(b.class是a.class所必需的,如源代码中所述),这次是在使用

javac -cp ../pack -d ../class a.java
它可以定位b.class并生成a.class,那么为什么在我尝试运行a.class时找不到b.class??如何找到它? b、 类是在编译期间找到的,但不是在运行时找到的,为什么???

除非这是一个输入错误

javac -cp ../pack -d ../class b.java
您根本没有编译
a.java
。如果你有

javac -cp ../pack -d ../class a.java
相反,它对我和印刷品起作用

b function
Utsab

正如所料。

我的逻辑是正确的,这是一个环境问题,在更改环境后,它工作得很好,没有任何更改……谢谢大家

您能发布您得到的确切异常吗?因为看起来您是在unix上运行的,可能是:../class:../pack(用冒号分隔,而不是分号分隔).am在cygwin上运行,这为windows中的unix环境提供了支持,并且需要:;不是:。我无法附上屏幕截图,因为上面写着“你需要@至少10个声誉!”,如果我能上传,可能会更清楚…@SotiriosDelimanolis:它向我展示了java-help的输出,然后-bash:../pack:是一个目录。在本例中,您将a.class和b.class都放在程序/类中,但我想将a.class放在程序/类中,将b.class放在程序/包中……无论mt逻辑是否正确,这都是环境的问题,在更改环境后,它工作得很好,没有任何变化…谢谢这应该是一个评论,而不是一个答案。这不提供问题的答案。要评论或要求作者澄清,请在他们的帖子下方留下评论——你可以随时对自己的帖子发表评论,一旦你有足够的评论,你就可以发表评论了。