如何在命令提示符下运行NetBeans项目?
我的教授要求我们创建一个能够在命令提示符下运行的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 ExchangeSort
和cmd说:
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编程的初学者。
如果单击NetBeans中的build,它应该(在编译器输出中)给出一条消息,例如“要从没有Ant的命令行运行此应用程序,请尝试:java -jar yourPathToRun”
最好的方法是:
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文件放在何处 -
-cp
告诉编译器在哪里查找类文件 -
src/myjava/*.java
告诉它编译src/myjava
所有.java文件
7)通过java -cp classes myjava.Main
运行它
-
-cp
类告诉它在classes目录中查找.class文件 -
myjava.Main
是要运行的类的名称
- 最好将javac添加到PATH环境变量中,而不是将.java文件放入同一目录中。 那里会非常拥挤。
-
要运行,你只需要
java Main
而不是将每个类放在命令行上。
-
你在.java文件中声明了一个包吗? 喜欢,
包myjava;
? 如果是,则必须是命令字符串
java myjava.Main
这会回答你的问题吗?
右键单击我的电脑>属性>高级>环境变量…将jdk中的bin目录添加到Path变量示例:变量名称:path变量值:C:\ Program Files \ Java \ jdk1.6.0_16 \ bin
java和javac现在应该在命令提示符下的任何目录下工作
请按照以下步骤操作(代码示例只是示例,您需要调整一些以进行设置):
-
将JAVA_HOME设置为安装JDK的目录。
设置JAVA_HOME =“c:\ Program Files \ Java \ jre1.6.0_12”
-
将PATH设置为包含JAVA_HOME中的
bin
目录。设置PATH =%PATH%:%JAVA_HOME%\ bin
-
切换到源代码的根目录。 如果您已将代码声明为包,则这是包结构的根目录。 如果没有,这是包含.java文件的目录:
cd c:\ My \ Source \ Directory
-
以Java文件作为参数执行javac:
javac Class1.java Class2.java
-
(假设所有内容都正确编译)使用包含main方法的类的名称作为参数执行
java
(如果包含包声明,那么您的类名是完全限定的,这意味着它应该在类名之前包含包名,将包名称与类名分开的’。’:java主要
在某处创建一个文件夹,比如C:\myjava
。 将.java
源文件从netbeans保存到C:\java
地方复制。 打开刚刚粘贴的每个.java
文件,并删除声明包的行,例如package myjava
。 使用javac
例如javac c:\myjava\MyJava.java
。 然后像在java c:\myjava\MyJava
一样运行它
最简单的方法是在项目主文件夹下的dist
文件夹中运行.jar
文件。 确保计算机System
, Environmental Variables
jdk bin
文件夹的路径设置为常用: jar.exe
, java.exe
, javac.exe
等(如果需要有关操作的说明,请参阅此主题中的其他post)那)。
1)在Netbeans中进行干净的构建,按F11
或单击“ Run
菜单,然后单击“ Build Project
。 单击以通过所有提示,您需要一个干净的构建来执行此操作。
2)在命令提示符下导航到项目的dist
文件夹
3)在命令行输入并运行: java -jar yourMainFile.jar
没有创建单独的文件夹,没有复制文件,没有多个文件包含在命令行参数中。 但是,每次更改代码之前,必须重新构建项目,然后才能在命令行上运行它。