Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令提示符下的java.lang.NoClassDefFoundError问题_Java_Command Line - Fatal编程技术网

命令提示符下的java.lang.NoClassDefFoundError问题

命令提示符下的java.lang.NoClassDefFoundError问题,java,command-line,Java,Command Line,我正在尝试从命令提示符运行java文件。当我在NetBeans IDE中运行该程序时,它运行良好。不幸的是,我需要能够从命令提示符运行它。我有两节课。我将包括所有的代码,如果它是相关的。我找了一些关于这个问题的帖子,但我没有看到任何似乎能解决我问题的东西。在解释事情时,请像和一个对此一无所知的人交谈一样,因为事实就是这样 packageprojectbeng; 导入java.util.Scanner; 导入java.io.BufferedReader; 导入java.io.FileReader

我正在尝试从命令提示符运行java文件。当我在NetBeans IDE中运行该程序时,它运行良好。不幸的是,我需要能够从命令提示符运行它。我有两节课。我将包括所有的代码,如果它是相关的。我找了一些关于这个问题的帖子,但我没有看到任何似乎能解决我问题的东西。在解释事情时,请像和一个对此一无所知的人交谈一样,因为事实就是这样

packageprojectbeng;
导入java.util.Scanner;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.File;
导入java.io.IOException;
公共类数据恢复{
公共静态void main(字符串[]args)引发异常{
//为用户创建扫描仪
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入要处理的文件名:”);
文件名=新文件(sc.nextLine()+“.txt”);//不包括.txt扩展名
如果(!fileName.exists()){//不存在
抛出新IOException(“未找到文件\”+文件名+“\”);
}
System.out.println(“\n处理文件:“+fileName+”\n-------------------------------------------------------------------------------------------”);
BufferedReader br=新的BufferedReader(新文件读取器(文件名));
int lineCount=0;//假定文件不以新行字符结尾
int-tripleLineCount=0;
int-tripleCount=0;
字符串行=”;
//从文件中读取数据
而((line=br.readLine())!=null){//文件中还有一行
lineCount++;
如果(!line.equals(“”){//不是空行
三个三元组=提取三元组(行);
if(triples.gethastree()){//行包含三元组
System.out.println(triples.getTriples());
tripleLineCount++;
}
对于(int j=0;j需要右括号
状态==2==>需要逗号
状态==3==>需要一个
状态==4==>需要b
状态==5==>需要c
*/
int state=0;
int a=-1;
int b=-1;
字符串三元组=”;
字符串“=”;
对于(int i=0;i如果(str.charAt(i)='。| | str.charAt(i)=':'| | str.charAt(i)=';| | str.charAt(i)='我认为问题在于你的项目结构

我知道你有两个选择

1) 删除每个文件顶部的两个包声明

$javac*.java

$java数据恢复

2) 将包保存在tact中,并将其放在名为[package name]的文件夹中(在您的案例中为projectbeng)。然后从父目录复制并运行

$mkdir projectbeng

$cd项目本

$javac*.java

$cd

$java projectbeng.DataRecover

请记住,如果您运行的是windows,目录/文件夹管理将略有不同。请告诉我进展如何

正如其他人所说,你可能想学习如何制作jar文件以供使用和分发。我猜你的教授喜欢用它来简单地标记他的作业(我的也是)。无论如何……这个链接可能会有所帮助

编辑:看你的屏幕截图,你似乎已经创建了文件夹,试着向上移动一个目录并运行

$java projectbeng.DataRecover


现在最好花一个小时来学习JAR包以及如何使用Netbeans制作它们,而不是浪费大量时间使用javac。对于较大的应用程序,单独使用。类文件无论如何都是不可用的。(可能您应该将类放在目录projectbeng中,同时设置java参数-cp)@OlegGritsak我熟悉使用NetBeans。问题是,有人需要使用我编写的程序。他们不想使用NetBeans。相反,他们想通过命令提示符运行它。至于你的评论,我已经将这些类保存到文件夹“projectbeng”中了。我尝试使用参数-cp,但似乎没有帮助。现在最好花一个小时来了解JAR包。然后您的“某人”会像java-JAR anyname.JAR一样运行您的程序,而不需要Netbeans。以及整个应用程序