找不到主类Java

时间:2013-11-14 09:59:47

标签: java main

我有两个课程Pair.javaUsers.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

该类位于userdetails文件夹下。 我试图使用命令

运行
java  -classpath avro-1.7.5.jar:lib/*:jackson-core-asl-1.9.13.jar:lib/* userdetails.Users

我收到错误

  

找不到主类u​​serdetails.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();
    }
}

2 个答案:

答案 0 :(得分:2)

指定类路径时,不再自动包含当前工作目录,因此必须将其添加到类路径中:

java  -classpath avro-1.7.5.jar:lib/*:jackson-core-asl-1.9.13.jar:lib/*:. userdetails.Users

答案 1 :(得分:0)

您说两个类都在“userdetails”包下,但源的开头没有包声明。 Pair.javaUser.java都应以以下行开头:

package userdetails;

查看Java Packages Tutorial