【问题标题】:Could not find main class Java找不到主类 Java
【发布时间】:2013-11-14 09:59:46
【问题描述】:

我有两个类 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

我遇到了错误

找不到主类 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.io.File;导入 java.io.IOException;导入 org.apache.avro.file.DataFileReader;导入 org.apache.avro.file.DataFileWriter;导入 org.apache.avro.io.DatumReader;导入 org.apache.avro.io.DatumWriter;导入 org.apache.avro.specific.SpecificDatumReader;导入 org.apache.avro.specific.SpecificDatumWriter;导入 org.apache.avro.util.Utf8;公共类用户{公共静态无效主(字符串[]参数){用户用户=新用户();用户.createUser(); } }
  • 现在请编辑您的问题并将代码的剩余部分放在那里
  • 你的代码顶部没有包声明
  • 添加并运行它..仍然是同样的问题

标签: java main


【解决方案1】:

当你指定一个类路径时,当前工作目录不再自动包含,所以你必须将它添加到类路径中:

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

【讨论】:

    【解决方案2】:

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

    package userdetails;
    

    查看Java Packages Tutorial

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 2012-08-19
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2016-01-16
      相关资源
      最近更新 更多