簡體   English   中英

使用Java執行SQL腳本

[英]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.

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