如何在linux终端上的shell脚本上运行jar文件?

时间:2018-03-14 14:18:40

标签: java linux shell

我做了一个java项目。 该项目是....输出日志消息和system.out.println消息。只是简单。 所以我改成了一个jar文件(名称是LinuxSample.jar)。 我写了一个shell脚本来运行这个jar文件。 看看这个shell脚本。 (speakee是包名,PrintLinux是主类名)

#!bin/bash
CLASSPATH=/home/tangooc/TANGOOC/test/libs/*
CLASSPATH="${CLASSPATH};/home/tangooc/TANGOOC/test/linux/LinuxSample.jar"
java speakee.PrintLinux

此jar文件和此shell脚本在Window中工作。 但是linux没有用。我不知道为什么

这是错误信息。

Could not find or load main class

3 个答案:

答案 0 :(得分:0)

使用java -jar your_program.jar

答案 1 :(得分:0)

Hi运行java应用程序的最佳方法是首先设置CLASS_PATH和PATH变量。如果您当前的jar文件依赖于外部jar文件,那么您将面临很多问题。更好地设置您的路径变量,如下所示并运行应用程序: -

#!/usr/bin/ksh
export PATH=/usr/java/bin:$PATH
# =/usr/java/bin is your java bin folder
#set environment variable CP with all the jar libraries
CP=/home/flussi/xmlEncoder/encoder.jar 
CP=${CP}:/other/jar/somejar.jar

java -Xmx256M -classpath "$CP" "com.myproj.Example"

答案 2 :(得分:0)

我做到了 我改变了shell脚本。

CLASSPATH=/home/tangooc/TANGOOC/test/client/LinuxSample.jar
LIB_TOTAL=/home/tangooc/TANGOOC/test/libs/*
echo ${LIB_TOTAL}
echo ${CLASSPATH}
java -cp ${LIB_TOTAL}:${CLASSPATH} speakee.PrintLinux

还有另一种方式。

CLASSPATH=/home/tangooc/TANGOOC/test/client/LinuxSample.jar
CLASSPATH=${CLASSPATH}:/home/tangooc/TANGOOC/test/libs/*
echo ${CLASSPATH}
java -cp ${CLASSPATH} speakee.PrintLinux

如果像我这样的人改变了shell脚本。 并检查一条线,一条线,一条线......