当前位置: 首页 > 面试题库 >

命令行的javac“找不到符号”错误

费星晖
2023-03-14
问题内容

我有两个类Owning和OwningAccessor。这些文件位于同一目录中。

public class Owning {
    String _name = "";
    public void printBanner()
    {
    }
    public void printOwning(double amount)
    {
        printBanner();

        //print details
        System.out.println("name:" + _name);
        System.out.println("amount:" + amount);
    }
}


public class OwningAccessor {
    public void access()
    {
        Owning o = new Owning();
        o.printOwning(500);
    }
}

尝试使用进行编译OwningAccessorjavac -cp . OwningAccessor.java,出现编译错误。

symbol  : class Owning
location: class smcho.OwningAccessor
        Owning o = new Owning();
        ^
OwningAccessor.java:6: cannot find symbol
symbol  : class Owning
location: class smcho.OwningAccessor
        Owning o = new Owning();
                   ^

这怎么了 该代码在Eclipse IDE下可以正常编译。


问题答案:

好的,假设您将代码分发到文件中,如下所示

myproject
├── out
└── src
    ├── OwningAccessor.java
    └── Owning.java

转到命令提示符,然后将目录更改为myproject。在那里,发出以下命令:

javac -d out -sourcepath src src/OwningAccessor.java

我刚刚对其进行了测试,并且效果很好。您编译的类将位于以下out文件夹中:

.
├── out
│   ├── OwningAccessor.class
│   └── Owning.class
└── src
    ├── OwningAccessor.java
    └── Owning.java

编译一个类将触发所有其他依赖类的编译。编译器将自动在src文件夹中查找它们。



 类似资料:
  • 问题内容: 我已经使用命令在 CentOS 5.5版 机器中安装了Java 。但是我无法使用javac编译类。 我是否需要安装其他软件包? 我试图找到可执行文件,但无法找到它。 链接如下: -> -> 我已经看到了以下输出: 问题答案: 您仅安装了Java Runtime Environment(JRE),其中不包含。为此,您必须安装OpenJDK开发环境。您可以安装或,两者都包括。 顺便说一句:

  • 当我试图编译一个Java程序时,它说Java命令无法识别。我已将JDK目录链接附加到路径,因此它看起来如下所示: 我遵循了指南,但仍然无法识别“javac”命令。 我使用windows 10。

  • 好吧,我是新来的Java,并试图从命令提示符运行一个java程序(因为Sublime编译和运行它的小东西,但不允许用户输入和东西)。 我将命令提示符设置为我有我的文件的文件夹,称为Learner.java. 我在环境变量中为JDK bin设置了一个路径,并创建了一个JAVA_HOME变量,其中包含JDK bin的值(其他一些帖子建议)。 在我讨论这个问题之前,这是我的代码: 如你所见,这是一个以“

  • 这里有一个类似的答案:如何在Java中将函数作为参数传递? 但提供的正确答案不起作用。我有一门课: 在函数内部我试图将传递到,但我得到的错误是: 找不到符号 符号:类Callable 我不知道为什么。 另外,我尝试使用返回类型字符串作为xMethod,您能传递一个返回类型不同的函数吗?

  • 问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。

  • (菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。