当前位置: 首页 > 知识库问答 >
问题:

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

仰翰采
2023-03-14

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

b、 爪哇

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

它在包下创建comm/domm,并在程序/pack/comm/domm中放置b.class,在类下创建com/dom,并在程序/class/com/dom中放置a.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、 类是在编译时发现的,但不是在运行时,为什么??

共有2个答案

糜宜民
2023-03-14

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

索嘉胜
2023-03-14

除非这是打字错误

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

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

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

相反,它对我和印刷品有效

b function
Utsab

正如所料。

 类似资料:
  • 我在学习java软件包。我创建了两个包,“main”和“main2”。两个包都有一个同名的类。在这两个类中,我还有一个同名的方法。目前,我正在与包“主要”。 见以下代码: “主”包 “main2”包 在这里我目前正在使用包“main”。在这里我也在导入包“main 2”。现在我想创建一个“main 2”包的“ok”类的对象。由于“main”包已经有一个名为ok的类和相同的方法名,所以它没有调用包m

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代

  • 问题内容: 我在String中有一段Java代码。 是否可以将此Java String转换为Java语句并运行它?可能使用Java反射? 问题答案: 正如已经建议的那样,您可以使用Compiler API即时编译,保存和运行代码。 另一个简洁的选择是使用beanshell。Beanshell不再积极开发,但是我可以保证它的可靠性,我已经在多个生产项目中成功使用了它。

  • 问题内容: 我需要从自己的Java程序中运行其他几个程序,基本上我需要运行这些命令行语句。 和 并且我需要在自己的程序中使用从这些程序写入控制台的文本输出。我已经尝试过使用svn运行Runtime.getRuntime()。exec(),但是它似乎没有做任何事情,因为它没有生成svn.log文件。同样,两个程序都需要在不同的地方调用,svn行需要从一个文件夹内调用,而java行需要从另一文件夹内调

  • 问题内容: 如果文件中有一组方法,是否可以将这些文件包含在另一个文件中,但不带任何前缀(即文件前缀)调用它们? 所以,如果我有: 我怎么这样称呼它: 问题答案: 您将需要将其他文件作为模块导入,如下所示: 如果您不想在函数名称前加上模块名称,请执行以下操作: 如果要导入模块的所有成员,请执行以下操作: 编辑: 这是Dive Into Python 的精彩一章,在该主题上有更深入的介绍。

  • 问题内容: 我在DOM中有一个Angular模板。当我的控制器从服务中获取新数据时,它将更新$ scope中的模型,然后重新呈现模板。到目前为止一切都很好。 问题是,在模板重新渲染并且在DOM中(在本例中为jQuery插件)之后,我还需要做一些额外的工作。 似乎应该有一个事件要听,例如AfterRender,但我找不到任何此类事件。也许一条指令可以走,但它似乎还为时过早。 这是一个概述我的问题的j