从命令行Linux运行Java程序

Alt*_*ber 22 java linux command-line

我对java不太熟悉,这让我发疯了.我写了一个java程序FileManagement,我需要从命令行运行它.

我可以从命令行编译它javac FileManagement/*.java,它将创建该文件夹中的所有类但是当我尝试java FileManagement.Main它时说:

线程"main"中的异常java.lang.NoClassDefFoundError:FileManagement/Main

问题是我在远程计算机上尝试了相同的程序,它运行正常.它不适用于我的.

Bar*_*ers 21

如果您的Main类位于名为的包中FileManagement,请尝试:

java -cp . FileManagement.Main
Run Code Online (Sandbox Code Playgroud)

在该文件夹的父文件FileManagement夹中.

如果您的Main类不在包(默认包)中,则cd到该FileManagement文件夹并尝试:

java -cp . Main
Run Code Online (Sandbox Code Playgroud)

有关CLASSPATH以及JRE如何查找类的更多信息:


use*_*001 6

伙计们让我们理解它的语法.

  1. 如果当前目录中存在类文件.

    java -cp.文件名

  2. 如果Dir中存在类文件.转到Parent Dir并输入cmd下方.

    java -cp.dir1.dir2.dir3.fileName

  3. 如果对外部罐子有依赖性,那么,

    java -cp.:./ jarName1:./ jarName2 fileName

    希望这可以帮助.