日期:2014-05-20  浏览次数:20911 次

求一个让一个JavaSwing程序在Linux上跑起来的脚本,谢谢!
Linux上已经安装了JDK7和图形界面。

我的sh文件如下:
#!/bin/sh  
 
RUN_HOME=.  
CLASSPATH=./lib/commons-codec-1.3.jar
CLASSPATH=./lib/commons-httpclient-3.0.jar
CLASSPATH=./lib/commons-logging-1.0.4.jar
CLASSPATH=./lib/dom4j-1.6.1.jar
CLASSPATH=./lib/httpcore-4.0.jar
CLASSPATH=./lib/jaxen-1.1-beta-9.jar
CLASSPATH=./lib/log4j-1.2.14.jar
CLASSPATH=./lib/mail.jar
CLASSPATH=./lib/activation.jar
CLASSPATH=rttsTest.jar
  
export CLASSPATH  
  
javaw com.ufo.Main 

这个是参照网文写的,但是,跑不起来。

控制台输出如下:
# ./run.sh 
Exception in thread "main" java.lang.NoClassDefFoundErrororg.apache.log4j.Logger
        at com.ibm.heyang.Main.<clinit>(Main.java:8)
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
        at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
        ... 3 more
Could not find the main class: com.ufo.Main.  Program will exit.

求一个能让其跑起来的脚本
------解决方案--------------------
CLASSPATH=./lib/log4j-1.2.14.jar
你换成绝对路径试试
------解决方案--------------------
那,在linux下执行jar,会不会给一些帮助信息?(用来检测JAVA环境变量配置的)
------解决方案--------------------
楼主确认下log4j-1.2.14.jar下是否有org.apache.log4j.Logger这个文件。
------解决方案--------------------
路劲是用的windows格式的吗?
------解决方案--------------------
 CLASSPATH=$CLASSPATH:./lib/httpcore-4.0.jar

#!/bin/bash
CLOJURE_VERSION=1.3.0
CONTRIB_VERSION=1.2.0
CLOJURE_HOME=/opt/clojure
CLOJURE_DIR=$CLOJURE_HOME/library
CLOJURE_JAR=$CLOJURE_DIR/clojure-$CLOJURE_VERSION.jar
CLOJURE_CONTRIB=$CLOJURE_DIR/clojure-contrib-$CONTRIB_VERSION.jar
CLOJURE_LIBRARY=$CLOJURE_JAR:$CLOJURE_CONTRIB

MAVEN_REPOSITORY=/home/xxx/.m2/repository
JLINE_JAR=$MAVEN_REPOSITORY/jline/jline/1.0/jline-1.0.jar

CLOJURE_USER_PROFILE=$CLOJURE_HOME/init.clj


# IBM JRE
IBM_HOME=/opt/java/share/ibm-java-sdk-6.0-8.1-linux-i386/jre
IBM_JVMOptions="-Xquickstart -Xshareclasses:expire=10000,name=clojure -Xgcpolicy:gencon"

# JRockite JRE
JROCKIT_HOME=/opt/java/jrockit/jre
JROCKIT_JVMOptions="-XXaggressive -XX:+UseNewHashFunction -XX:+UseCallProfiling -XXnoSystemGC"

# SUN JRE
SUN_HOME=/opt/java/javasdk/jre
SUN_JVMOptions="-XX:+AggressiveOpts \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseFastAccessorMethods \
-XX:+UseG1GC \
-XX:+ExplicitGCInvokesConcurrent \
-XX:-DisableExplicitGC \
-XX:+TieredCompilation"

JRE_HOME=$SUN_HOME
JVMOptions=$SUN_JVMOptions

JAVACMD=$JRE_HOME/bin/java
JVMOptions="$JVMOptions" # -Djline.terminal=jline.UnixTerminal"

breakchars="(){}[],^%$#@\"\";:''
------解决方案--------------------
\\"
completions=/home/xxx/workspace/jvm/examples/clojure_completions
history=/home/xxx/.clojure_history

if [ -z "$1" ]; then
    exec rlwrap --remember -c -b "$breakchars" -f "$completions" -H "$history" \
    "${JAVACMD:-java}" $JVMOptions -classpath $CLOJURE_LIBRARY clojure.main --init $CLOJURE_USER_PROFILE -r
else
    exec "${JAVACMD:-java}" $JVMOptions -cp $CLOJURE_LIBRARY clojure.main --init $CLOJURE_USER_PROFILE "$@"
fi
exit

一个启动clojure的bash文件,供参考。
------解决方案--------------------
八成是路径或者环境问题