2017-09-01 134 views
0

これは私の正確なバッチファイルです。私がオンラインいくつかの研究をやって変換するとエラーにWindowsのbatファイルをLinuxシェルスクリプトに変換する

を取得しようとしています/ホーム/ PI /デスクトップ/ TeachVal/TeachValLinuxShell 『(そのようなファイルやディレクトリはありません)、「子プロセスの実行に失敗しました』

echo off 
cls 
echo Running TeachVAL II... 
set path=%path%;/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin 
java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL 
cls 
exit 

この1つは翻訳で私の試みであるのLinuxへ

#!/bin/bash 
set +v 
clear 
echo "Running TeachVAL II..." 
java -cp ".dir1;dir2;path/home/pi/Desktop/TeachVAL/comm.jar; 
path/home/pi/Desktop/TeachVAL/Robot.jar;/home/pi/Desktop/TeachVAL/TeachVAL" 
clear 
exit 
+1

パスを確認しましたか?結局のところ "そのようなファイルはない"と言った。 – AxelH

+2

私は、実行する 'java'にクラスを渡す場所も見ず、クラスパスの設定だけです。 – chepner

+1

エラーメッセージのフォルダは、シェルスクリプトコードのどこにも表示されません。これは、間違ったエラーメッセージを投稿したか、実際のコードが含まれていないことを示しているようです。その問題を修正してください。 –

答えて

0

ようこそ - 。勝つと比較すると、人生はここで良いですが、少し異なる動作がいくつかありますダウ。

違いは、Windowsではパスリストのエントリを区切るのにセミコロン(;)を使用しますが、Linuxではそのためにコロン(:)が使用されている点です。

ので、Windowsのコマンド:

java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL 

は、Linux上でこれに対応するであろう。一般的には

java -classpath comm.jar:Robot.jar:TeachVAL TeachVAL 

を、Linux上で、セミコロンは1行に複数のコマンドラインを置くために使用されています。 (実行すべきクラスで)は、Javaを実行してから試すだろうと

java -cp .dir1 
/home/pi/Desktop/TeachVAL/TeachVAL 

java -cp .dir1;/home/pi/Desktop/TeachVAL/TeachVAL 

と同じようになります:あなたは私はあなたが、なぜが理解できると思います、ということを学びましたしたら見つからない "/ home/pi/Desktop/TeachVAL/TeachVAL"を実行します。

さらに多くの相違点があります。 http://tldp.org/LDP/abs/html/dosbatch.html

+0

助けてくれてありがとう!これは働くことができた:) –

関連する問題