对于个人项目,我一直在尝试SmartGit/Hg从便携式驱动器运行。为此,我使用仅在 Java 上运行的“通用”版本。不幸的是,每次我尝试启动它时,都会出现以下错误:
调用 SmartGit/Hg 时出错 java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 QBootLoader.main(源文件:112) 导致原因:java.lang.NoClassDefFoundError:org/eclipse/swt/widgets/Display 在 com.syntevo.q.gui.cl.a(源文件:43) 在 smartgit.Xl.a(源文件:320) 在 smartgit.anQ.a(源文件:229) 在 smartgit.anQ.b(源文件:185) 在 smartgit.anQ.a(源文件:72) 在 smartgit.anR.a(源文件:114) 在 smartgit.anR.call(源文件:111) 在 com.syntevo.q.gui.cl.a(源文件:84) 在 smartgit.anQ.a(源文件:111) 在 smartgit.XA.b(源文件:62) 在 SmartGit.main(SourceFile:11) ... 另外 5 个 原因:java.lang.ClassNotFoundException:org.eclipse.swt.widgets.Display 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) ... 另外 16 个
由于这是一个商业程序,我无法合法地检查上述任何文件是否有错误。如果有人使用过 SmartGit/Hg 并且知道如何修复此错误,我将不胜感激。我希望这个问题不是太具体以至于不能从列表中删除,因为我找不到有关错误的任何其他信息。
稍微补充一下信息:正在使用的启动器源自以下提供的.sh 文件:
/bin/bash #!/bin/bash # # 通常情况下,不需要编辑此脚本。 # # 要指定备用 Java 运行时环境,请设置环境变量 SMARTGITHG_JAVA_HOME 如果 [ “$SMARTGITHG_JAVA_HOME” = “” ] ; 然后 SMARTGITHG_JAVA_HOME=$SMARTGIT_JAVA_HOME 菲 如果 [ “$SMARTGITHG_JAVA_HOME” = “” ] && [ -f “/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java” ] ; 然后 SMARTGITHG_JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java" 菲 如果 [ “$SMARTGITHG_JAVA_HOME” = “” ] ; 然后 SMARTGITHG_JAVA_HOME=$JAVA_HOME 菲 如果 [ “$SMARTGITHG_MAX_HEAP_SIZE” = “” ] ; 然后 SMARTGITHG_MAX_HEAP_SIZE=$SMARTGIT_MAX_HEAP_SIZE 菲 如果 [ “$SMARTGITHG_MAX_HEAP_SIZE” = “” ] ; 然后 SMARTGITHG_MAX_HEAP_SIZE=256米 菲 # 这似乎是 Solaris 找到 Cairo 库所必需的 导出 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/gnome-private/lib _JAVA_EXEC="java" 如果 [ “$SMARTGITHG_JAVA_HOME” != “” ] ; 然后 _TMP="$SMARTGITHG_JAVA_HOME/bin/java" 如果 [ -f "$_TMP" ] ; 那么 如果 [ -x "$_TMP" ] ; 那么 _JAVA_EXEC="$_TMP" 别的 echo“警告:$_TMP 不可执行” 菲 别的 echo“警告:$_TMP 不存在” 菲 菲 如果 !“$_JAVA_EXEC”>/dev/null ; 然后 echo“错误:未找到 java 环境” 出口 1 菲 # # 解析SmartGit/Hg 安装的位置。 # 这包括解析任何符号链接。 PRG=$0 while [ -h "$PRG" ]; 执行 ls=`ls-ld“$PRG”` link=`expr“$ls”:'^.*->\(.*\)$'2>/dev/null` 如果 expr "$link" : '^/' 2> /dev/null >/dev/null; 那么 PRG="$link" 别的 PRG="`目录名称"$PRG"`/$link" 菲 完毕 SMARTGIT_BIN=`目录名称 "$PRG"` # 绝对化目录 oldpwd=`密码` cd“${SMARTGIT_BIN}”;SMARTGIT_BIN=`pwd` cd "${oldpwd}"; 取消设置 oldpwd SMARTGIT_HOME=`目录名称 "$SMARTGIT_BIN"` # 下一行是为了解决以下 SWT 错误: #https://bugs.eclipse.org/bugs/show_bug.cgi?id=419729 UBUNTU_MENUPROXY=0 _VM_PROPERTIES="-Dsun.io.useCanonCaches=false" # 取消注释以下行以更改 SmartGit/Hg 的存储位置 # 设置(给定的示例路径将通过存储设置使 SmartGit/Hg 可移植 # 在安装目录中): #_VM_PROPERTIES="$_VM_PROPERTIES -Dsmartgit.settings=\${smartgit.installation}/.smartgit" $_JAVA_EXEC $_VM_PROPERTIES -Xmx${SMARTGITHG_MAX_HEAP_SIZE} -Xverify:none -Dsmartgit.vm-xmx=${SMARTGITHG_MAX_HEAP_SIZE} -jar “$SMARTGIT_HOME/lib/bootloader.jar” “$@”
答案1
就我而言,它无法在 ciXwin 中正确使用 X windows。我需要记住使用以下命令启动 SSH:
$ ssh -Y vagrant@localhost
我知道您可能没有使用与我相同的系统,但这可能会给您提供一些参考!