2016-08-23 11 views
0

私はsygwinを初めて使用しているので、間違っていると思われます。ここでjarファイルがcygwinで見つからないのはなぜですか?

は私のシェルスクリプトです:ここで

!/bin/sh 
set [-x] 
export myInstallDirectory='/cygdrive/c/cygwin64/usr/uTrace_ServerMachine' 
echo "myInstallDirectory=" $myInstallDirectory 
export JAVA_HOME=/cygdrive/c/Java_JDK_SE_8_u77_64_bit 
echo "JAVA_HOME = " $JAVA_HOME 
export PATH=$JAVA_HOME/bin:$PATH 
echo "PATH =" $PATH 
export CLASSPATH=$myInstallDirectory/bin/UtraceServer.jar:$CLASSPATH 
echo "CLASSPATH=" $CLASSPATH 
java -jar UtraceServer.jar 
set [+x] 

は、ログが表示さです:

myInstallDirectory= /cygdrive/c/cygwin64/usr/uTrace_ServerMachine 
JAVA_HOME = /cygdrive/c/Java_JDK_SE_8_u77_64_bit 
PATH = /cygdrive/c/Java_JDK_SE_8_u77_64_bit 

/binに:は/ usr/local/binにします。/ usr/binに:/ cygdriveの/ C/cygdrive/c /プログラムファイル/共通ファイル/ Intel/WirelessCommon:/ cygdrive/bin /:/ cygdrive/c/Program Files/c/WINDOWS:/cygdrive/c/WinZip/WINZIP/WINZIP32.EXE:/ cygdrive/c/Java_JDK_SE_8_u77_64_bit/bin:/cygdrive/c/Java_JDK_SE_8_u77_64_bit/lib/tools.jar:/ cygdrive/c/Java_EE_SDK_7_u2/glassfish4 /bin:/cygdrive/c/Java_EE_SDK_7_u2/glassfish4/glassfish/bin:/cygdrive/c/Java_EE_SDK_7_u2/glassfish4/glassfish/lib/javaee.jar:/cygdrive/c/IBM/Derby/db-derby-10.12.1.1- bin/lib/derbynet.jar:/cygdrive/c/IBM/Derby/db-derby-10.12.1.1-bin/lib/derbytools.jar:/cygdrive/c/IBM/Derby/db-derby-10.12.1.1- bin/lib/derbyoptionaltools.jar:/cygdrive/c/IBM/Derby/db-derby-10.12.1.1-bin/test/jakarta-oro-2.0.8.jar:/ cygdrive/c/IBM/Derby/db- derby-10.12.1.1-bin/test/derbyTesting.jar:/cygdrive/c/IBM/Derby/db-derby-10.12.1.1-bin/lib/derbyrun.jar:/ cygdrive/c/IBM/DB2_EX〜1/java/db2java.zip:/cygdrive/c/IBM/DB2_EX~1/java/db2jcc.jar:/cygdrive/c/IBM/DB2_EX~1/java/sqlj.zip:/ cygdrive/c/IBM/DB2_EX〜1 /java/db2jcc_license_cu.jar:/cygdrive/c/IBM/DB2_EX~1/bin:/cygdrive/c/IBM/DB2_EX~1/java/common.jar:/cygdrive/c/ORACLE/NetBeans 8.1/java/maven/cygdrive/c:/ cygdrive/c:/ Cygwin/bin:/ cygdrive/c/Program Files/Microsoftネットワークモニタ3:/ cygdrive/c/My_Software_Development/Client_Monitoring/Client_Scri/bin:/ cygdrive/c/Program Files(x86) PTS

CLASSPATH =/cygdriveの/ C/cygwin64/USR/uTrace_ServerMachine /bin/UtraceServer.jar:.;C:\Java_JDK_SE_8_u77_64_bit\lib\tools.jar;C:\Java_EE_SDK_7_u2\glassfish4\glassfish\lib\javaee C:¥IBM¥Derby¥db-derby-10.12.1.1-bin¥lib¥derbytools.jar; C:¥IBM¥Derby¥db-derby-10.12.1.1-bin¥lib¥derbynet.jar; :¥IBM¥Derby¥db-derby-10.12.1.1-bin¥lib¥derbyoptionaltools.jar; C:¥IBM¥Derby¥db-derby-10.12.1.1-bin¥test¥jakarta-oro-2.0.8.jar C:¥IBM¥Derby¥db-derby-10.12.1.1-bin¥test¥derbyTesting.jar; C:¥IBM¥Derby¥db-derby-10.12.1.1-bin¥lib¥derbyrun.jar; C:¥IBM¥DB2_EX¥1¥java¥db2java.zip; C:¥IBM¥DB2_EX¥1¥java¥db2jcc.jar; C:¥IBM¥DB2_EX¥1¥java¥db2java.zip; ¥java¥db2jcc_license_cu.jar; C:¥IBM¥DB2_EX¥1¥bin; C:¥IBM¥DB2_EX¥1¥java¥common.jar

エラー: jarファイルUtraceServer.jar

UtraceServer.jarが/cygdrive/c/cygwin64/usr/uTrace_ServerMachine/bin/UtraceServer.jar に、あなたはそれがCLASSPATHにある見ることができるように配置されているjarファイルにアクセスすることができません。 助けてください。

答えて

0

JavaはCygwinアプリケーションではないため、 PATHもcygdrive接尾辞も理解できません。

JAVA_HOME = /cygdrive/c/Java_JDK_SE_8_u77_64_bit
PATH = /cygdrive/c/Java_JDK_SE_8_u77_64_bit

+0

これは正しいとは思わない。 CygwinにWindowsマシンにインストールされたJava環境を使用させる方法を説明するインターネット上の文書もあります。何らかの理由で私の場合はうまくいかない。 – i262666

+0

私はWindows JDKを使うのは不可能だと言っているわけではありません。ちょうどそのようにすることはできません。 – matzeri

+0

matzeriこれは正しいですが、WindowsマシンにインストールされたJavaの場所をファイル.bashreに含めました。 – i262666

0

としてはHow to run Java from Cygwinに説明し、あなたのスクリプトでCygwinのパスを使用することができますが、Javaのを呼び出す直前に、あなたがのために、Windowsのパスに変換する必要がありますcygpath -p付きインスタンス:

!/bin/sh -x 
export myInstallDirectory='/cygdrive/c/cygwin64/usr/uTrace_ServerMachine' 
echo "myInstallDirectory = $myInstallDirectory" 
export CLASSPATH="$myInstallDirectory/bin/UtraceServer.jar:$CLASSPATH" 
echo "CLASSPATH = $CLASSPATH" 
CLASSPATH="$(cygpath -pw "$CLASSPATH")" 
echo "CLASSPATH (Windows) = $CLASSPATH" 
java -jar UtraceServer.jar 

(私はJavaが明確に発見されたので、スクリプトから他のパスを省略しました。)

cygpathは、(とりわけ)POSIXと異なるWindowsフォーマット間の単一パスを変換することができます。 -wは、パスをWindowsパスに変換します。 -pを追加すると、その引数をパスリストとして扱います(POSIXの場合は:、Windowsの場合は;で区切られます)。詳細については、cygpath --helpを参照してください。

重要:スクリプトでこれを使用する場合は、常に上記のスクリプトのように二重引用符を使用することをお勧めします。これを一貫して行うと、パス名のスペースなどによって生じる問題のリスクが大幅に軽減されます。

関連する問題