2011-03-06 124 views
1

我想在linux/ubuntu/gnome中使用Java運行時執行程序運行perl命令。該命令生成一個pdf文件,但它將其保存在我的主文件夾中。 exec方法可以爲執行的命令設置輸出路徑嗎?提前致謝。運行時exec輸出路徑

回答

1

您可以修改Perl腳本以接受輸出的絕對路徑。

您可以嘗試使用exec(java.lang.String[], java.lang.String[], java.io.File)設置工作目錄,其中File是執行命令的目錄。

如果一切都失敗了,您可以隨時將生成的文件從主目錄複製到最終位置。

2

exec方法只是在操作系統上運行該命令,因此您需要更改使用exec運行的命令,而不是「Java」本身。

有幾個可能性:

  1. 修改Java程序的工作目錄。 .pdf正被保存在你的工作目錄中,因爲這是程序運行的地方。

    不幸的是,在程序啓動後改變這個值並不簡單。然而,在節目開始之前改變是微不足道的;只需在啓動程序之前更改工作目錄。

  2. 在您的主目錄中創建文件後,將文件移動到所需的位置。

  3. 更改命令以使其包含目標位置。您的perl腳本可能有一個選項,可以使您將其輸出保存到某個位置(通常爲-o--output)。使用這個程序會改變來自:

    Runtime.exec("perl someprogram"); 
    

    喜歡的東西:

    Runtime.exec("perl someprogram -o /path/to/some.file") 
    
  4. 你也許可以用「輸出重定向」,如果沒有選擇這樣做。

    嘗試像下面有什麼作爲你的論點:

    Runtime.exec("perl someprogram > /path/to/some.file") 
    

不幸的是,不知道你的情況更多的細節我無法提供更具體的建議。

雖然每種方法都有優點和缺點,但最好只實施最理想的方法;如果你不能讓一個人工作,嘗試另一個。


一個很好的免費的在線學習資源是Introduction to Linux: A Hands On Guide

第2.2節有關於cd的詳細信息,您可以使用它的1.

第3節。3,第3節講述了mv命令,這將在2.中有用。

5.1節是關於I/O重定向的。瞭解「輸出重定向」和>運營商,對於4.很重要。

對於3.,您必須查閱您正在使用的perl程序的文檔。