2016-12-28 14 views
0

でのpythonを呼び出すためにJavaを使用して:私は次のように苦しんでいた日食パスの問題

私は通常のデスクトップでのpythonプログラムのパスを使用する場合、JavaのEclipseでPythonのプログラムを実行することができます。 しかし、私はTomcatにあるPythonプログラムのパスを使用して、JavaはEclipseでPythonプログラムを実行することはできません。

// String callPyPath="C:\\Python27\\python C:\\Users\\Desktop\\myprogram.py"+" "; 

// GOOOOD動作します!

String callPyPath="C:\\Python27\\python C:\\Program Files\\Apache Software Foundation\\Tomcat 8.0\\webapps\\testWeb\\WEB-INF\\classes\\com\\myprogram.py"+" "; 

//それはうまくいかない!

String addKeyWord1=KeyWord1+" "; 
    String addsourcePath=sourcePath+" "; 
    String addKeyWord2=KeyWord2+" "; 
    String saveresultPath="C:\\Users\\Desktop\\results\\"; 
    String cmd = callPyPath+addKeyWord1+addsourcePath+addKeyWord2+saveresultPath; 

答えて

0

パスのスペースをエスケープする必要があります。

String callPyPath="C:\\Python27\\python C:\\Program\ Files\\Apache\ Software\ Foundation\\Tomcat\ 8.0\\webapps\\testWeb\\WEB-INF\\classes\\com\\myprogram.py"+" " 

それともStringの作成後にスペースを置き換える:

String callPyPath="C:\\Python27\\python C:\\Program Files\\Apache Software Foundation\\Tomcat 8.0\\webapps\\testWeb\\WEB-INF\\classes\\com\\myprogram.py"+" " 
callPyPath.replace(" ", "\\ "); 
+0

私はハードのパス名をコーディングすることができないようにそれがあります。 – dd90p

+0

次に、文字列内のスペースをエスケープスペースで置き換えます:編集済みの解答を参照してください。 –

+0

私はそれが動作するとは思わない。 C:\\ Python27 \\ python-space-C:\\ P ..... the-space-は置き換えないでください – dd90p

関連する問題