我在NetBeans
中创建了这个项目(根据p . Noutona, G. Shildta"Java2"一书)。最充分的管理"),指定为Example2
项目名称。
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package example2;
/**
*
* @author Asus
*/
/*
* Другой короткий пример.
* Файл "Example2.java"
*/
public class Example2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int num; //объявляет переменную с именем num
num=100; //присваивает num значение 100
System.out.println("Значение num: "+num);
num*=2;
System.out.print("Удвоенное значение num: ");
System.out.println(num);
}
}
在创建项目的情况下,类example2。Example2与D:ExamplesFromBookExample2Example2项目文件夹(和项目布局根据D:ExamplesFromBookExample2)被创建。我通过命令行
中的命令创建了字节码。D:ExamplesFromBookExample2Example2srcexample2>javac Example2.java
因此创建了Example2.class文件。此外,我尝试从命令行启动各种方法。class文件,其中,例如,我是这样的:
D:ExamplesFromBookExample2Example2>java example2.Example2
因此收到一个错误
Error: Could not find or load main class example2.Example2
需要使用什么命令,从哪个文件夹启动?
问题出在包名上。你正在编译的类在example2包中,被称为example2,因此它的完整路径是example2. example2。到目前为止一切顺利。问题是java如何找到这个类。Java将命令中的包声明转换为文件路径,在本例中为example2/example2 .class。由于您的类被放置在example2 .class而不是example2/example2 .class,因此不会找到它并导致错误。要解决这个问题,创建一个名为example2的子目录,并将类文件放在其中。
到目录D:ExamplesFromBookExample2Example2src然后输入java -cp D: exampleesfrombook Example2Example2src Example2。Example2
所有类文件所在的主目录应该位于类路径中(在您的情况下为D:ExamplesFromBookExample2Example2src)。另外,您也可以使用windows环境变量设置类路径。一旦完成;您可以使用
运行任何类文件java <full qualified class name>
例如java example2。Example2
你在这里
D:ExamplesFromBookExample2Example2srcexample2
当你编译
javac Example2.java
类将出现在D: ExamplesFromBook Example2 Example2 src Example2
尝试dir并列出它们
Dir D:ExamplesFromBookExample2Example2srcexample2
现在要运行一个类,它必须在类路径中。查找将添加类的完全限定名(用/替换点)并在每个路径中搜索。
java -cp D:ExamplesFromBookExample2Example2src example2.Example
。
java程序将在您给出的所有类路径下查找example2/example2 .class。详见wiki
修改java编译命令
编译使用Javac -d。ClassName.java
使用
来运行Java类文件java packageName/类名或者
java packageName.className您是否尝试将您的.java文件编译到另一个文件夹,例如"构建",因为它通常是这样做的?
当Netbeans自动编译文件时,它创建以下结构:
"proj_dir"/src/"package"/"code".java
"proj_dir"/build/classes/"package"/"code".class
试试这样做,但要手动。然后从命令行转到"build/classes"目录,输入:
Java "package"。"代码"
之前这是运行编译后的java代码的一般方式。
在你的例子中,它必须看起来像:
D:ExamplesFromBookExample2Example2srcexample2Example2.java D:ExamplesFromBookExample2Example2buildclassesexample2>Example2.class
CMD命令:
cd D:ExamplesFromBookExample2Example2srcexample2 javac -d ....buildclasses Example2.java cd D:ExamplesFromBookExample2Example2buildclasses java example2.Example2