Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 从命令行启动文件的.class的命令_Java_Netbeans_Linker Errors_Bytecode - Fatal编程技术网

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

Java 从命令行启动文件的.class的命令,java,netbeans,linker-errors,bytecode,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 */ /* * Другой короткий пример.

我在
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项目文件夹(以及根据D:\ExamplesFromBook\example2的项目布局)的example2.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

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

更改java编译命令

编译使用 javac-d。ClassName.java

要使用包名运行java类文件,请使用

java packageName/className 或


java packageName.className

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

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

所有类文件所在的主目录应该位于类路径中(在您的示例中是D:\ExamplesFromBook\Example2\Example2\src)。或者,也可以使用windows环境变量设置类路径。一旦这样做了;您可以使用运行任何类文件

java <full qualified class name>
java
比如说 java示例2.示例2

您在这里

 D:\ExamplesFromBook\Example2\Example2\src\example2
编译时

javac Example2.java
这些类将出现在 D:\ExamplesFromBook\Example2\Example2\src\Example2

尝试dir并列出它们

  Dir D:\ExamplesFromBook\Example2\Example2\src\example2
现在要运行一个类,它必须在类路径中。该查找将添加类的完全限定名(点替换为/)并在每个路径中搜索。就你而言

java -cp D:\ExamplesFromBook\Example2\Example2\src example2.Example
应该有用


java程序将在您给出的所有类路径下查找example2/example2.class。查看

的更多详细信息您是否尝试将.java文件编译到另一个文件夹中,例如,按照通常的方式“构建”文件

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

"proj_dir"/src/"package"/"code".java
"proj_dir"/build/classes/"package"/"code".class
试着这样做,但手动。然后从命令行转到“build/classes”目录并键入:

java "package"."code"
CMD命令执行此操作:

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

它适用于简单的程序。

@Jayan您的命令没有帮助。我收到了同样的错误。我还要求在响应中指定启动命令所需的路径。您需要将目录更改为D:\ExamplesFromBook\Example2\Example2\src,然后在@user1851132:更新为Answer时试用。您的命令没有帮助。我收到了同样的错误。我还要求在响应中指定启动命令所需的路径@穆罕默德侯赛因
cd D:\ExamplesFromBook\Example2\Example2\src\example2
javac -d ..\..\build\classes Example2.java
cd D:\ExamplesFromBook\Example2\Example2\build\classes
java example2.Example2