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

Java包:找不到符号

屠嘉勋
2023-03-14
问题内容

我有一个奇怪的错误。我在同一包中有2个类,但它们彼此找不到。根据我的记忆,只要这些类位于同一包中,它们就应该能够调用彼此的方法。

我的代码与此类似:

在A.java中:

package com.mypackage;
public class A{
   html" target="_blank">public static int read(){
    //some code
   }
}

在B.java中:

package com.mypackage;
public class B{
  public static void main(String args[]){
    int x = A.read();
  }
}

这给了我一个cannot find symbol variable A错误。

这两个类都依赖于某些.jar文件,但是我已经包括了这些jar的路径CLASSPATHA.java可以很好地编译,但是由于某些原因B找不到A

当我package com.mypackage;在两个类中都删除时,它们可以正常编译。


问题答案:

由于您要编译位于不同程序包中的Java文件,因此必须确保将它们编译到适当的目录中。

您可以使用此调用来做到这一点。$SRC用源文件的位置替换,您可以将$BIN其作为当前目录或计算机上的其他位置。

javac -sourcepath $SRC -d $BIN A.java B.java

当您要运行它们时,必须再次将它们手动添加到类路径中(但这并不是一件坏事)。

java -cp $BIN com.mypackage.B

该调用应该起作用;只需使用我的桌面上的A.java和B.java来确保即可。使用该-d标志,可以确保在编译时使用适当的包文件夹方案。



 类似资料:
  • 问题内容: 如果这是一个怪异的问题,我感到很抱歉,但是我刚刚开始OOP,并遇到了一个我应该制作的简单菜单驱动数学程序。我清除了编译器给我的所有错误,但是现在它给了我大约14个新错误,其中大多数被描述为“找不到符号”。这是我的代码: 这是新的编译器输出: 问题答案: 您从未在方法的主体中定义变量。尝试在方法中添加。简单地定义的变量并 没有 放弃对它的访问。如果要避免多次创建实例,可以执行以下操作 然

  • 问题内容: 真烦人 我有这样的目录结构 Main.java导入。并且两个java文件都在lib中使用jar。 我要做的是将jar文件独立添加到CLASSPATH中。然后以:javac packageName / Main.java运行 但是它给出了找不到Package的错误。它不应该自动实现依赖关系并进行构建吗?在上述情况下,javac命令和类路径是什么? 谢谢 问题答案: 通常的做法是将包根目录

  • 问题内容: 错误: 出现的内容不起作用: 如果我写:“ InvoerVakhandler扩展了boven”,则该错误消失了,但是随后我得到了一个无限循环,最后程序崩溃并说堆栈溢出错误。 如果我尝试更改boven类中的“}”符号并将其放置在文本的末尾,那么我什至会收到更多错误消息。 问题: 我必须在代码中进行哪些更改才能使其正常工作? 注意: 我是Java的新手,我知道有更多类似这样的文章,但是由于

  • 问题内容: 我打算将linux工具移植到Windows。该工具在linux系统上运行良好,但是现在在Windows上,我收到此“找不到符号”错误。 我有这个小班级: 并且在执行javac Main.java时现在出现错误: 导入foo.bar:找不到符号^符号:类栏位置:包foo Main.java和bar.java在同一目录中。我想念什么? 问题答案: 一方面,应该称呼为惯用语… 理想情况下,应

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

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