[英]execute sql script using java
我想使用Java Java程序執行sql腳本是:
import java.io.*;
public class script{
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec ("psql -U mit -d d980 -h tpeux250.sgp.st.com -f C:/java program/script.sql");
BufferedReader input =new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
}
但我收到以下錯誤
java.io.IOException:Cannot run program "psql": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start<Unknown Source>
at java.lang.Runtime.exec<Unknown Source>
at java.lang.Runtime.exec<Unknown Source>
at java.lang.Runtime.exec<Unknown Source>
at script.main<script.java:8>
實際psql
二進制文件所在的位置不在PATH
環境變量上。
要驗證,請從終端運行以下命令。
echo %PATH%
如果缺少psql
bin目錄,則將其添加到路徑中,如下所示
set PATH = %PATH%;"C:\Program Files\PostgreSQL\9.2\bin"
並嘗試再次從終端運行psql
腳本。 如果這樣可以解決您的問題,請永久添加bin
目錄(由於Java程序在其他終端中運行,因此必須這樣做)
我的電腦>屬性>高級系統設置(在左窗格中)。 選擇底部的環境變量,然后修改PATH,以將psql“ bin”目錄添加到“;”之后。 在末尾。
從Java運行命令之前,請嘗試在終端中執行命令。 我看到了C:/ java程序,希望它是Windows來運行(windows + R)並執行cmd
。 在終端中,嘗試執行命令。 在Windows中,嘗試使用反斜杠而不是正斜杠
C:\>cd "c:\Program Files"
成功而
C:\Program Files>cd "c:/Program Files"
The system cannot find the path specified.
不是。 因此,使用C:\\java program\\script.sql
用這個
Process p = Runtime.getRuntime().exec ("cmd.exe /c psql -U mit -d d980 -h tpeux250.sgp.st.com -f C:/java program/script.sql");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.