Java错误: bad source file: file does not contain class

标签 java

QueryFeatureExtract.java的目录如下

gen-java/
└── query_feature
    └── QueryFeatureExtract.java

并且使用QueryFeatureExtract的java文件ThriftClient.javagen-java位于同一文件夹中,我想编译Client.java

javac -classpath libthrift-0.9.1.jar:slf4j.jar -sourcepath gen-java/query_feature/ ThriftClient.java

然后显示错误

ThriftClient.java:16: error: cannot access QueryFeatureExtract
            QueryFeatureExtract.Client client = new QueryFeatureExtract.Client(protocol);
            ^
  bad source file: gen-java/query_feature/QueryFeatureExtract.java
    file does not contain class QueryFeatureExtract
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
1 error

最佳答案

假设你的文件是这样的:

./
└── ThriftClient.java
└── gen-java/
|   └── query_feature/
|       └── QueryFeatureExtract.java
└── libthrift-0.9.1.jar
└── slf4j.jar

并且 QueryFeatureExtract 以以下包声明开头:

package query_feature;

您应该使用以下命令来编译 ThriftClient.java:

javac -classpath .:libthrift-0.9.1.jar:slf4j.jar:gen-java ThriftClient.java

您可以使用-classpath指定文件夹,不需要使用-sourcepath。如果当前文件夹中有其他 java 文件,请不要忘记将 . 添加到类路径中。为了避免错误,因为您的源路径包含其他源路径,我建议将 ThriftClient.java 移动到名为 src 的文件夹中。

如果不起作用,请检查 ThriftClient 是否使用正确的导入方式导入 QueryFeatureExtract:

import query_feature.QueryFeatureExtract;

关于Java错误: bad source file: file does not contain class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497489/

相关文章:

java 或 smart gwt- 使用 OAuth 对 REST 数据源进行身份验证

java - 无法使用 Android/JSOUP 解析 HTML 数据

java - 使用 Joda Time 获取时区偏移

java - 未指定 header 映射,无法按名称访问记录值(Apache Commons CSV)

java - 包含测试失败 Java 的列表

java - spring boot 嵌入式tomcat获取资源问题

java - JPA - 带有 in 子句且不区分大小写的规范

java - 改进构建过程 Maven 和 SVN

java - 异常处理以确保全有或全无执行

Java 抽象访问者 - 保证成功吗?如果是这样,为什么?