Classpath在linux下不起作用

spr*_*boy 58 java linux classpath

任何人都知道为什么这个命令在Windows中正常工作但在Linux中我得到一个ClassNotFoundException game.ui.Main

java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m
Run Code Online (Sandbox Code Playgroud)

我的文件夹结构如下所示:lib/ - Jars游戏/ - 类文件

这是最新的Java 6.

pet*_*ust 102

类路径语法依赖于操作系统.来自维基百科:

与文件系统密切相关,命令行Classpath语法取决于操作系统.例如:

在所有类Unix操作系统(例如Linux和Mac OS X)上,目录结构具有Unix语法,单独的文件路径用冒号(":")分隔.

在Windows上,目录结构具有Windows语法,并且每个文件路径必须用分号(";")分隔.

当在清单文件中定义Classpath时,这不适用,其中每个文件路径必须用空格("")分隔,而不管操作系统如何.


Mik*_*kel 26

尝试将分号更改为冒号.

CLASSPATH分隔符与平台相关,与java.io.File.pathSeparatorChar返回的字符相同.


Wen*_*der 7

视窗:

java -cp file.jar;dir/* my.app.ClassName

Linux:

java -cp file.jar:dir/* my.app.ClassName

提醒:

  • Windows 路径分隔符是 ;
  • Linux路径分隔符是 :
  • 在 Windows 中,如果 cp 参数不包含空格,则引号是可选的