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

Javac找不到同一目录中的类

宋畅
2023-03-14
问题内容

我正在尝试编译Java文件,但收到此错误消息:

$ javac -cp "bc-j-mapi-w-2.4.jar;apache-commons/*;json-org/*;lib/*" BrightcoveVideoQueryPOI.java
BrightcoveVideoQueryPOI.java:57: cannot find symbol
symbol  : class BrightcoveAPI
location: class BrightcoveVideoQueryPOI
        BrightcoveAPI brightcoveAPI = new BrightcoveAPI(BrightcoveAPI.PROD_READ_URL_TOKEN);
        ^
BrightcoveVideoQueryPOI.java:57: cannot find symbol
symbol  : class BrightcoveAPI
location: class BrightcoveVideoQueryPOI
        BrightcoveAPI brightcoveAPI = new BrightcoveAPI(BrightcoveAPI.PROD_READ_URL_TOKEN);
                                          ^
BrightcoveVideoQueryPOI.java:57: cannot find symbol
symbol  : variable BrightcoveAPI
location: class BrightcoveVideoQueryPOI
        BrightcoveAPI brightcoveAPI = new BrightcoveAPI(BrightcoveAPI.PROD_READ_URL_TOKEN);
                                                        ^
3 errors

这表明javac找不到类BrightcoveAPI。我不知道问题出在哪里,因为它在同一目录中:

$ ls
apache-commons  bc-j-mapi-w-2.4.jar  BrightcoveAPI.class  BrightcoveAPI.java  BrightcoveVideoQueryPOI.java  json-org  lib

问题答案:

您需要.在类路径中包含(当前目录):

javac -cp ".;bc-j-mapi-w-2.4.jar;apache-commons/*;json-org/*;lib/*" BrightcoveVideoQueryPOI.java

一些注意事项:

  • .在默认的类路径中,但是如果您用于-cp指定一个显式的类路径,则仅当您指定它时才包括它。
  • 这个答案的先前版本添加.到了类路径的末尾,但是aioobe说它通常放在首位,这很有意义,因此我进行了相应的编辑。(类路径是按顺序搜索的,因此,如果您有一个类的两个副本,一个在.库中,一个在一个副本中,那么您可能希望该.版本取代该库的版本,因此您需要首先列出它。但是,当然,拥有一个类的两个不同的副本通常不是一件好事!)
  • 您粘贴的内容看起来像一个 nix shell,但您使用的;是Windows上预期的分隔符。(在 nix上,预期的分隔符是:。)这可能是正确的,例如,如果您使用的是Cygwin,但我想我只是为了以防万一。


 类似资料:
  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

  • 我运行的是Windows 8,无法让javac运行。 我把环境变量中的路径设置为 我试过带和不带';'但没有用。 最近,我的桌面上出现了这个问题,并添加了:;成功了,但这次不是。 我已经确保javac也存在于垃圾箱中。 如有任何修复建议,将不胜感激。 编辑回声%PATH%给出: 确切的错误是:“javac”不能被识别为内部或外部命令、可操作程序或批处理文件。

  • 我有以下文件夹结构: dbh.class.php连接到数据库,而test.class.php从我的数据库获取数据。当我在我的index.php中并使用以下代码时: 我得到了我想要的结果。 但是,当我试图在子目录public/home.php中用相同的代码调用类及其方法时,我得到一个错误: 当我想从子目录调用类时,我做错了什么?我尝试使用绝对路径但它仍然不起作用。

  • 我在Eclipse中pom.xml中收到错误消息。 http://Maven.apache.org/Maven-v4_0_0.xsd“>4.0.0com.hmis chmis war 1.0-快照chmis Maven Webapp http://Maven.apache.org 这是我的pom.xml。当我运行该程序时,会出现如下错误。

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

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