Java 类路径在linux下不工作
任何人都知道为什么这个命令在Windows中运行良好,但在Linux中我得到了ClassNotFoundException game.ui.MainJava 类路径在linux下不工作,java,linux,classpath,Java,Linux,Classpath,任何人都知道为什么这个命令在Windows中运行良好,但在Linux中我得到了ClassNotFoundException game.ui.Main java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m 我的文件夹结构如下所示: lib/-Jars 游戏/-类文件 这是最新的Java 6。类路径语法依赖于操作系统。发件人: 与文件密切相关 系统,命令行类路径 语法取决于操作系统 系统。例如: 在所有类Unix操作系统上 (如Linux和Mac OS
java -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m
我的文件夹结构如下所示:
lib/-Jars
游戏/-类文件
这是最新的Java 6。类路径语法依赖于操作系统。发件人: 与文件密切相关 系统,命令行类路径 语法取决于操作系统 系统。例如: 在所有类Unix操作系统上 (如Linux和Mac OS X)的 目录结构具有Unix语法, 使用由分隔符分隔的单独文件路径 冒号(“:”) 在Windows上,目录结构 具有Windows语法,并且每个文件 路径必须用分号分隔 (“;”) 当类路径 在清单文件中定义,其中 每个文件路径必须用 空格(“”),不考虑 操作系统
尝试将分号改为冒号
类路径分隔符依赖于平台,并且与返回的字符相同。在脚本中使用类路径时,路径也很重要,脚本将在两种平台上运行:Windows(即cygwin)和Linux。当我这样做的时候,我为类路径包含了这样一个函数。带有“-w”选项的“cygpath”命令将路径转换为Windows样式的路径。因此,在本例中“/home/user/lib/this.jar”将被转换为类似于“C:\Cygwin\home\user\lib\this.jar”的内容
窗口:
java-cp file.jar;dir/*my.app.ClassName
Linux:
java-cp file.jar:dir/*my.app.ClassName
提醒:
- Windows路径分隔符为
代码>
- Linux路径分隔符是
:
- 在Windows中,如果cp参数不包含空格,则引号是可选的
/*
?
#!/bin/bash
function add_java_classpath() {
local LOCAL1=$1
if [ "$OSTYPE" == cygwin ]; then
LOCAL1="$(cygpath -C ANSI -w $LOCAL1)"
fi
if [ -z "$JAVA_CLASSPATH" ]; then
JAVA_CLASSPATH="$LOCAL1"
elif [ "$OSTYPE" != cygwin ]; then
JAVA_CLASSPATH="${JAVA_CLASSPATH}:$LOCAL1"
else
JAVA_CLASSPATH="${JAVA_CLASSPATH};$LOCAL1"
fi
}
add_java_classpath /home/user/lib/this.jar
add_java_classpath /usr/local/lib/that/that.jar
java -cp "${JAVA_CLASSPATH}" package.Main $@