Java错误:错误的源文件:文件不包含类

时间:2018-01-29 08:55:17

标签: java

QueryFeatureExtract.java的目录就像

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

和使用ThriftClient.java的java文件QueryFeatureExtractgen-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

2 个答案:

答案 0 :(得分:2)

假设您的文件是这样的:

./
└── 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;

答案 1 :(得分:0)

看看这个answer,你只是在编译ThriftClient,试试这个:

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