簡體   English   中英

對Java程序的更改未得到體現

[英]changes to java program not being reflected

#!/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找到LseParser.class時,它的修改時間是很久以前的。 有人可以指出我做錯了什么,還是建議我應做的檢查或更改? 我應該在腳本中缺少任何行嗎?

Java是一種編譯語言 您需要先運行javac編譯器,然后運行jar命令來創建jar文件。 您可以使用我鏈接的教程來弄清楚如何為您的項目正確運行它們。 獲得編譯和打包命令后,可以將它們添加到運行腳本中。 但是,我強烈建議您使用諸如Maven之類的構建自動化工具,這樣就不必使用自定義構建的運行腳本。

我認為您在第3行中錯過了JAVA_HOME之前的導出...因此,shell而不是將$ JAVA_HOME當作變量,而是將其解釋為命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM