Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
如何在不使用IDE的情况下运行java应用程序?_Java_Command Line - Fatal编程技术网

如何在不使用IDE的情况下运行java应用程序?

如何在不使用IDE的情况下运行java应用程序?,java,command-line,Java,Command Line,我有一个java应用程序,其中主类依赖于其他一些类。我可以使用IDE很好地运行应用程序。但是,当我想通过使用java mainClass定位到主类的类文件来从命令行运行应用程序时,它给出了以下错误[主类名称是mainClass]: Exception in thread "main" java.lang.NoClassDefFoundError: mainClass(wrong name: mainfolder/mainClass) at java.lang.ClassLoader.d

我有一个java应用程序,其中主类依赖于其他一些类。我可以使用IDE很好地运行应用程序。但是,当我想通过使用
java mainClass
定位到主类的类文件来从命令行运行应用程序时,它给出了以下错误[主类名称是
mainClass
]:

Exception in thread "main" java.lang.NoClassDefFoundError: mainClass(wrong name: mainfolder/mainClass)

    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

有人能建议我如何在不使用任何IDE的情况下运行应用程序吗?

尝试
mainfolder.mainclass
而不是
mainfolder/mainclass
。此外,主文件夹是包


确保将所有需要的jar放在类路径中,使用
-cp

Uou需要指示完全限定名。例如,如果
MainClass
在包com.example下,则应执行
java com.example.MainClass

你可以查更多

从文件:

默认情况下,第一个非选项参数是要创建的类的名称 被调用。应使用完全限定的类名。如果这个罐子 如果指定了选项,则第一个非选项参数是 包含应用程序的类和资源文件的JAR存档, 使用由主类清单标头指示的启动类。 Java运行时搜索startup类和其他类 用于三组位置:引导类路径、 已安装的扩展,以及用户类路径


无论是否使用IDE,java应用程序都可以从

java -cp classpath EntryClass
如果使用IDE运行应用程序,则使用的IDE会为您准备类路径。如果您在没有IDE的情况下运行,那么您应该自己准备整个类路径

EntryClass也可以通过类路径找到


有关详细信息,请参阅。

假设您正在从/home/flyleaf/app运行java程序/

这将是您需要的命令:

javac -classpath /home/flyleaf/app/jar1.jar:/home/flyleaf/app/jar1.jar:/home/flyleaf/app/ com/app/your/mail/class/Main.java

您需要将所需的jar文件和获取程序的路径添加到类路径中

好!通过
package.classname
main类的类文件
上执行java命令后,从包含类文件的文件夹外部获得了输出

除此之外,jar文件在定位jar文件并执行以下命令后也可以工作
java-jarjarname.jar


谢谢大家

尝试过但得到以下结果:-“错误:无法找到或加载main类mainfolder.mainClass”嘿,谢谢!在使用package.classname从包文件夹外部执行java命令后获得输出!嘿,谢谢!在使用package.classname从包文件夹外部执行java命令后获得输出!