对java程序的更改没有被反映出来

时间:2014-01-13 14:40:03

标签: java linux unix classpath

#!/bin/ksh
echo "Some Programme v1.0.0"
JAVA_HOME=/apps/clear/jdk1.7.0_45
PATH=${JAVA_HOME}/bin:${JAVA_HOME}/lib:/usr/local/bin:/bin:/usr/bin:.:

export NEWAPI_DIR=/local/newapi/1.1.1.1.2
LIBRARY_PATH=$NEWAPI_DIR/Linux-2.6/lib
MY_HOME=/home/clear/dev/app/lse
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$LIBRARY_PATH
MY_CLASSPATH=${MY_HOME}/lib/yt500.jar:${JAVA_HOME}/jre/lib/rt.jar:${MY_HOME}/lib/ftlse.jar:$LIBRARY_PATH/JNewApi.jar:$LIBRARY_PATH/Jfib.jar
date
$JAVA_HOME/bin/java -version
$JAVA_HOME/bin/java -classpath $MY_CLASSPATH com.company.ft.lse.LseParser /home/clear/dev/app/lse/config/config.xml
date

以上是我的运行脚本。我有一个应用程序LseParser.java我已经更改了代码。但是当我在unix框中运行代码(../ run)时,这个代码没有反映出来。当我在ftlse.jar所在的位置找到LseParser.class时,它是很久以前修改的最后日期。有人可以指出我做错了什么或建议我应该做的任何检查或改动吗?我错过了我应该拥有的剧本中的任何一行吗?

2 个答案:

答案 0 :(得分:1)

Java是compiled language。您需要先运行javac编译器,然后运行jar命令来创建jar文件。您可以使用我链接的教程来弄清楚如何为项目正确运行它们。获得编译和包命令后,可以将它们添加到运行脚本中。但是,我强烈建议您查看构建自动化工具,例如Maven,这样您就不必使用自定义构建的运行脚本。

答案 1 :(得分:0)

我认为你错过了JAVA_HOME在第3行之前的导出...所以shell,而不是将$ JAVA_HOME作为变量,将其解释为命令。