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

java导入“找不到符号”

尹超
2023-03-14
问题内容

我打算将linux工具移植到Windows。该工具在linux系统上运行良好,但是现在在Windows上,我收到此“找不到符号”错误。

我有这个小班级:

package foo;

import foo.bar;

public class Main {
    public static void main(String[] args) throws Exception {
        bar.getInstance();
    }
}

并且在执行javac Main.java时现在出现错误:

导入foo.bar:找不到符号^符号:类栏位置:包foo

Main.java和bar.java在同一目录中。我想念什么?


问题答案:

一方面,bar应该称呼Bar为惯用语…

理想情况下,应从Main.java 上方 的目录进行编译,如下所示:

javac -d out foo/Main.java foo/Bar.java

这将创建一个名为“ out”的目录,其中包含另一个目录“ foo”,其中将包含Main.class和Bar.class。因此,再次从父目录运行:

java -cp out foo.Main

源位置不 具有 相匹配的封装结构。您 可以 从包含的目录中调用javac Main.javaBar.java如下所示:

javac -cp out Main.java Bar.java

(然后以与以前相同的方式运行它)。通常,根据包来组织源代码通常是一个更好的主意。

您可能会发现使用IDE(例如Eclipse或NetBeans)会更轻松,因为它将为您处理所有编译等工作。如果您 确实
想从命令行构建真实的项目,则可能应该考虑使用完整的构建系统,例如Ant或Maven。

(请注意,如果尝试以相同的方式进行编译,则在Linux上将与在Windows上收到相同的错误。)



 类似资料:
  • 我试着构建应用程序,但一直在获取/Users/gouravkarwasara/Desktop/News2/app/build/generated/source/kapt/debug/com/gourav/news/DataBinderMapperImpl。java:9:错误:找不到符号导入com。古拉夫。消息数据绑定。ActivityDetailBindingImpl;^符号:类ActivityD

  • 我已将google AdMob添加到项目中,并发现以下错误:错误:找不到符号导入com。谷歌。Androidgms。ads.alad;^符号:class Interstitalad位置:package com。谷歌。Androidgms。广告

  • 我必须使用谷歌云语音API在Xamarin.iOS应用程序中实现语音转换文本功能。 首先,我尝试使用google.cloud.speech.v1 Nuget包,但是gRPC库似乎不能与Xamarin一起工作(https://github.com/gRPC/gRPC/issues/1620,https://forums.Xamarin.com/discussion/94534/how-to-use-

  • 我使用的是Java1.7和Gradle4.10.3。我尝试使用各种gradle依赖项,如testCompile组:'org.hamcrest'、name:'hamcrest'、version:'2.1'和testImplementation'org.hamcrest:hamcrest-library:1.3'。有人能让我知道什么是正确的依赖于hamcrest CoreMatchers。如果没有,你

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

  • 问题内容: 我有一个奇怪的错误。我在同一包中有2个类,但它们彼此找不到。根据我的记忆,只要这些类位于同一包中,它们就应该能够调用彼此的方法。 我的代码与此类似: 在A.java中: 在B.java中: 这给了我一个错误。 这两个类都依赖于某些文件,但是我已经包括了这些jar的路径并可以很好地编译,但是由于某些原因B找不到A … 当我在两个类中都删除时,它们可以正常编译。 问题答案: 由于您要编译位