为了账号安全,请及时绑定邮箱和手机立即绑定

类路径在Linux下不起作用

类路径在Linux下不起作用

繁星点点滴滴 2019-10-19 16:59:51
任何人都知道为什么该命令在Windows中可以正常工作,但是在Linux中,我得到了ClassNotFoundException game.ui.Mainjava -cp ".;lib/*" game.ui.Main -Xms64m -Xmx128m我的文件夹结构如下:lib /-Jars游戏/-类文件这是最新的Java 6。
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

在要在两种平台(Windows(即cygwin)和Linux)上运行的脚本中使用类路径时,路径也很重要。当我这样做时,我为类路径包括了一个类似这样的函数。带有'-w'选项的'cygpath'命令将路径转换为Windows样式的路径。因此,在此示例中,“ / home / user / lib / this.jar”将被转换为“ C:\ Cygwin \ home \ user \ lib \ this.jar”


#!/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 $@


查看完整回答
反对 回复 2019-10-19
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

视窗:

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

Linux:

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

提醒:

  • Windows路径分隔符为 ;

  • Linux路径分隔符是 :

  • 在Windows中,如果cp参数不包含空格,则引号是可选的


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 577 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信