类路径在linux下不起作用
任何人都知道为什么这个命令在 Windows 中工作正常,但在 Linux 中我得到 ClassNotFoundException game.ui.Main
java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m
我的文件夹结构如下所示: lib/ - 罐子 game/ - 类文件
这是最新的 Java 6。
Anyone have an idea why this command works fine in Windows but in Linux I get a ClassNotFoundException game.ui.Main
java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m
my folder structure looks like this:
lib/ - Jars
game/ - Class files
This is the latest Java 6.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
类路径语法取决于操作系统。来自维基百科:
The classpath syntax is OS-dependent. From Wikipedia :
尝试将分号更改为冒号。
CLASSPATH 分隔符与平台相关,与 java.io.File.pathSeparatorChar。
Try changing the semi-colon to a colon.
The CLASSPATH separator is platform dependent, and is the same as the character returned by java.io.File.pathSeparatorChar.
Windows:
java -cp file.jar;dir/* my.app.ClassName
Linux:
java -cp file.jar: dir/* my.app.ClassName
提醒:
;
:
Windows:
java -cp file.jar;dir/* my.app.ClassName
Linux:
java -cp file.jar:dir/* my.app.ClassName
Remind:
;
:
当在要在 Windows(即 cygwin)和 Linux 两个平台上运行的脚本中使用类路径时,路径也很重要。当我这样做时,我在类路径中包含一个这样的函数。带有“-w”选项的“cygpath”命令将路径转换为 Windows 样式路径。因此,在此示例中,“/home/user/lib/this.jar”将被转换为类似“C:\Cygwin\home\user\lib\this.jar”的内容
Paths are important too when using classpaths in scripts meant to be run on both platforms: Windows (i.e. cygwin) and Linux. When I do this I include a function like this for the classpath. The 'cygpath' command with the '-w' option converts paths to Windows-style paths. So in this example "/home/user/lib/this.jar" would be converted to something like "C:\Cygwin\home\user\lib\this.jar"