我有两个类Pair.java
和Users.java
,其中Users.java
有主程序。这两个 java 文件都在包userdetails
下。
在 unix 中,我使用命令编译了它
javac -d . -classpath avro-1.7.5.jar:lib/*:jackson-core-asl-1.9.13.jar:lib/* Pair.java Users.java
该类位于"用户详细信息"文件夹下。我尝试使用命令运行
java -classpath avro-1.7.5.jar:lib/*:jackson-core-asl-1.9.13.jar:lib/* userdetails.Users
我收到错误
找不到主类用户详细信息。用户
请帮助我。
源代码 :-
import java.io.File;
import java.io.IOException;
import org.apache.avro.file.DataFileReader;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.apache.avro.util.Utf8;
public class Users {
public void createUser() {
userdetails.Pair datum = new userdetails.Pair(new Utf8("L"), new Utf8("R"));
DatumWriter writer = new SpecificDatumWriter();
DataFileWriter fileWriter = new DataFileWriter(writer);
try {
fileWriter.create(datum.getSchema(), new File("users.avro"));
fileWriter.append(datum);
System.out.println(datum);
fileWriter.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("ERROR");
e.printStackTrace();
} }
public static void main(String[] args) {
Users user = new Users();
user.createUser();
}
}
指定类路径时,当前工作目录不再自动包含,因此必须将其添加到类路径中:
java -classpath avro-1.7.5.jar:lib/*:jackson-core-asl-1.9.13.jar:lib/*:. userdetails.Users
你说这两个类都在包"userdetails"下,但源代码的开头没有包声明。Pair.java
和User.java
都应以以下行开头:
package userdetails;
查看 Java 包教程