我的教授要求我们创建一个Java程序,它可以在命令提示符下运行,但也可以使用NetBeans打开。
该程序使用不同类型的排序(特别是选择、插入、交换、快速和堆排序)。我们的教授特别告诉我们在Java中使用面向对象的编程,她希望看到一个主类加上进行排序的不同类。
我试着用NetBeans编写程序--想以后我可以简单地用javac语言在cmd中运行程序。
在cmd中,我输入了我的NetBeans项目的保存路径,并尝试使用javac编译这些文件。但是它说"'javac‘不能被识别为内部或外部命令、可操作的程序或批处理文件“。
所以我试着用sun>sdk>jdk>bin保存这些文件,然后从那里我试着编译这些文件,结果没问题。当我尝试运行它们时,问题出现了。
下面是我尝试编译这些文件的方式:
javac Main.java
Sortchoice.java
Selection.java
SelectionSort.java
Insertion.java
InsertionSort.java
Exchange.java
ExchangeSort.java(我还没有完成下两个排序的语法。)
下面是我尝试在cmd中运行这些文件的方式:
java Main Sortchoice Selection SelectionSort Insertion InsertionSort Exchange ExchangeSortcmd说:
exception in thread "main" java.lang.NoClassDefFoundError: main (wring name: myjava/Main)
at java.lang.ClassLoader.defineClass1(Nativ... Method)"
at java.lang.ClassLoader.defineClass(ClassL...
at java.security.SecureClassLoader.defineCl...
at java.net.URLClassLoader.defineClass(URLC...
at java.net.URLClassLoader.access$000(URLCl...
at java.net.URLClassLoader$1.run(URLClassLo...
at java.security.AccessController.doPrivile... Method)
at java.net.URLClassLoader.findClass(URLCla...
at java.lang.ClassLoader.loadClass(ClassLoa...
at sun.misc.Launcher&AppClassLoader.loadCla...
at java.lang.ClasLoader.loadClass(ClassLoad...
at java.lang.ClassLoader.loadClassInternal(...我该怎么办?(对于我长达一公里的解释,抱歉。我只是想尽可能多地添加细节。)
我还想强调的是,我只是Java编程的初学者。
发布于 2011-02-09 05:27:55
如果您在Ant内单击build,则会(在您的编译器输出中)显示如下消息:“要在不使用NetBeans的情况下从命令行运行此应用程序,请尝试: java -jar yourPathToRun”
发布于 2009-03-09 16:52:06
最好的方法是这样做:
1)创建一个包含src\和tests\的目录(如果不使用JUnit,则测试是可选的)。
2)假设你的文件顶部有package myjava; (并确保这是你的教授想要的,如果它们不在正确的位置,那么标记它们就会变得很痛苦),创建一个src\myjava目录(如果你正在执行JUnit一个tests\myjava目录)。
3)将您的文件复制到src\myjava目录中
4)删除您的NetBeans项目并将其重新创建为具有现有源代码的新项目。在设置src (和可选的test)目录时,添加src\ (以及可选的tests\)目录。不要添加src\myjava目录,否则它将无法在NetBeans中工作。
5)创建一个名为classes\的目录(这样您就可以将src\、classes\和\tests放在同一位置)
6)在命令行中输入javac -d classes -cp classes src/myjava/*.java
-d告诉编译器将.class放在哪里files-cp告诉编译器在哪里查找classfilessrc/myjava/*.java告诉编译器编译src/myjava中的所有.java文件
7)通过java -cp classes myjava.Main运行
-cp classes告诉它在classes目录中查找.class filesmyjava.Main是要运行的类名
发布于 2009-03-09 16:25:10
java Main
而不是将每个类都放在命令行上。
包myjava;
?如果是,则命令字符串必须为
java myjava.Main
这能回答你的问题吗?
https://stackoverflow.com/questions/626940
复制相似问题