gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:04:50 24 4
gpt4 key购买 nike

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

b.java

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

a.java

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 并将 b.class 放置在 program/pack/comm/domm 中并在 class 下创建 com/dom 并将 a.class 放入 program/class/com/dom

现在从我发出的同一当前目录,

java -cp ../class;../pack com.dom.a

这不起作用,它可以找到a.class,但不能找到b.class(b.class是a.class需要的,如源代码中所述),但是在编译a.java时使用

javac -cp ../pack -d ../class a.java

它可以找到b.class并生成a.class,那么为什么我尝试运行a.class时找不到b.class?如何才能找到它?b.class在编译时找到,但在运行时找不到,为什么?

最佳答案

除非这是一个拼写错误

javac -cp ../pack -d ../class b.java

您根本没有编译过a.java。如果你有

javac -cp ../pack -d ../class a.java

相反,它对我有用并打印

b function
Utsab

正如预期的那样。

关于java - 运行java代码,它使用其他包中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com