从命令行命令启动文件的.class

时间:2013-01-02 10:53:21

标签: java netbeans linker-errors bytecode

我在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);
    }
}

在创建项目的情况下,创建了具有D:\ ExamplesFromBook \ Example2 \ Example2项目文件夹的类example2.Example2(以及根据D:\ ExamplesFromBook \ Example2的项目布局)。我通过命令行中的命令

创建了字节代码
D:\ExamplesFromBook\Example2\Example2\src\example2>javac Example2.java

因此创建了Example2.class文件。此外,我尝试从命令行启动各种methods.class文件,其中,例如,我是这样的:

D:\ExamplesFromBook\Example2\Example2>java example2.Example2

因此收到错误

Error: Could not find or load main class example2.Example2

需要使用哪个命令以及要从哪个文件夹启动?

5 个答案:

答案 0 :(得分:0)

更改您的java编译命令

编译使用  javac -d。 ClassName.java

使用包名称

运行java类文件

java packageName / className OR

java packageName.className

答案 1 :(得分:0)

您的问题在于包名称。您正在编译的类在包example2中,并且被称为Example2,因此它的完整路径是example2.Example2。到现在为止还挺好。问题是java将如何找到该类。 Java会将命令中的包声明转换为文件路径,在本例中为example2 / Example2.class。由于您的类位于Example2.class而不是example2 / Example2.class,因此无法找到它并导致错误。 要解决此问题,请创建一个名为example2的子目录,并将类文件放在那里。

答案 2 :(得分:0)

转到目录D:\ ExamplesFromBook \ Example2 \ Example2 \ src \ 然后输入java -cp D:\ ExamplesFromBook \ Example2 \ Example2 \ src example2.Example2

所有类文件所在的主目录应该在classpath中(在你的例子中是D:\ ExamplesFromBook \ Example2 \ Example2 \ src)。或者,您也可以使用Windows环境变量设置类路径。一旦完成;您可以使用

运行任何类文件
java <full qualified class name>
例如,

java example2.Example2

答案 3 :(得分:0)

你在这里

 D:\ExamplesFromBook\Example2\Example2\src\example2

编译时

javac Example2.java

这些课程将出现在     d:\ ExamplesFromBook \例2 \例2的\ src \示例2

尝试dir并列出

  Dir D:\ExamplesFromBook\Example2\Example2\src\example2

现在要运行一个类,它必须在类路径中。查找将添加类的完全限定名称(用/替换为/)并在每个路径中搜索。在你的情况下

java -cp D:\ExamplesFromBook\Example2\Example2\src example2.Example

应该有用。

java程序将在您提供的所有类路径下查找example2 / Example2.class。请参阅wiki

了解更多详情

答案 4 :(得分:0)

您是否尝试将.java文件编译到另一个文件夹,以便xample“通常”完成“构建”?

当Netbeans自动编译文件时,它会创建以下结构:

"proj_dir"/src/"package"/"code".java
"proj_dir"/build/classes/"package"/"code".class

尝试这样做,但手动。然后从命令行转到“build / classes”目录并输入:

  java "package"."code"

这是运行已编译的java代码的一般方法。

在你的情况下,它必须看起来像:

D:\ExamplesFromBook\Example2\Example2\src\example2\Example2.java
D:\ExamplesFromBook\Example2\Example2\build\classes\example2>Example2.class

CMD命令:

cd D:\ExamplesFromBook\Example2\Example2\src\example2
javac -d ..\..\build\classes Example2.java
cd D:\ExamplesFromBook\Example2\Example2\build\classes
java example2.Example2

它适用于简单的程序。