0

当我尝试从命令行运行我的代码时,我收到以下异常错误;

    X:\User temp\httpclient>java httpclient_main 10 10
Exception in thread "main" java.lang.NoClassDefFoundError: httpclient_main (wron
g name: httpclient/httpclient_main)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

httpclient_main.java;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package httpclient;

import java.io.DataInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
 *
 * @author tsothcott
 */
public class httpclient_main {
    protected String host;
    protected String file;
    protected int port;
    protected DataInputStream in;
    protected DataOutputStream out;
    static double threadResult;

    String get_file()
    {
        return this.file;
    }
    DataOutputStream get_outputstream() {
        return this.out;
    }

    public static void main(String[] args) throws IOException {
        InputTxt servers = new InputTxt();
        threadResult = 0.0D;

        SharedCell cell = new SharedCell();
        if(args.length <1)
            throw new IOException("Usage: HTTPClient URL Number_Thread");

        int num_thread = Integer.parseInt(args[0]);
        int count_interval = Integer.parseInt(args[1]);

        servers.printservers();

        Manufacture prod = new Manufacture(cell, num_thread, count_interval);
        prod.start();


    }


}

项目结构截图; 项目结构

但是,当我从 NetBeans 内部运行它时,它运行良好吗?

任何帮助,将不胜感激!

谢谢

4

5 回答 5

1

根据您发布的命令行输出,您正在从package内部httpclient调用程序。您当前的目录是

X:\User temp\Tom Sothcott\httpclient

那是错的。您必须从项目的根目录调用 Java 程序。在这种情况下,这将是

X:\User temp\Tom Sothcott

当然,您必须提供完全限定的类名,正如 Ihsan Kocak 告诉您的那样。

于 2013-08-07T08:26:35.227 回答
1

当您的代码的类文件在编译时存在但在运行时找不到时,就会出现 NoClassDefFoundError。

于 2013-08-07T07:59:40.273 回答
0
  1. 在您.的类路径中并执行 java 命令X:\User temp\Tom Sothcott,或者X:\User temp\Tom Sothcott直接在您的类路径中
  2. 执行者java httpclient.httpclient_main 10 10

javacommand 期望包含要执行的主要方法的类的完全限定类名。

于 2013-08-08T02:04:36.473 回答
0
java httpclient_main 10 10

这是错误的用法。将此参数与包名一起使用。例如。java httpclient.httpclient_main 10 10

于 2013-08-07T07:41:00.577 回答
0

线程“主”java.lang.NoClassDefFoundError 中的异常:httpclient_main

因此,您将其运行为java httpclient_main. 它期待一个httpclient_main.clas没有任何包装的 s 。

该课程试图告诉您它有一个package httpclient;. 您需要从包根目录运行它。向上一个文件夹,以便您的类文件夹包含httpclient代表包的文件夹,然后执行

java httpclient/httpclient_main.
于 2014-08-19T09:54:44.867 回答