2013-08-22 65 views
0

我使用的是Ubuntu 12.04。我已經使用FileZilla將一個小型Java程序(Hadoop字數)上載到Linux服務器,現在必須將該程序運行到服務器機器上。我知道如何使用終端連接到服務器,即ssh -l user-name ip-of-server但不知道如何運行駐留在那裏的程序。請幫助我如何從我的機器上運行該程序。運行在服務器上的Java程序

+1

有點太寬泛,這個詢問是。我們不能教你整個Linux命令行系統, – hexafraction

+0

@Fakhar - >你想運行任何程序或Hadoop字數統計程序? –

回答

3

你必須到達目錄並運行它。這是一個簡短的總結,我強烈建議你採取一個完整的教程。

您將首先在您的主目錄中結束。您可以使用cd切換到子目錄或cd ..父:

cd tmp 

cd .. 

您可以通過多種方式運行命令。調用java爲:

java ClassFile.class -cpPath1:path2 

其中路徑1,路徑2,等等都是類路徑元件。

可以編譯一個.java一起的.class:

javac File.java -args=blech 

如果文件是可執行文件,使用./file如果在同一個目錄或commandName的道路上。

+0

你的java命令是錯誤的。你不能運行'.java'文件。你首先需要將它們編譯成'.class'文件。 –

+0

@ kw4nta虛擬文件名是正確的,它應該是一個類文件。 – hexafraction

+0

請在編寫命令之前進行測試,或者確定您的操作。當運行包含main方法的'.class'文件時,你必須省略'.class'文件結尾。在-cp之後也必須有一個空格:'-cp_ ' –

0

首先,您必須在服務器上安裝java,如果您有root訪問權限,可以通過您最喜歡的發行版包管理器完成。如果不是這有點棘手,但它可能已經安裝。

類(例如)所有的

package my.mega.cool.pack; 

public class MyMegaCoolClass 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("It's working... It's working!!!"); 
    } 
} 

其次,問題是,無論您上傳了.class文件或(可執行的)罐子。

(這裏您連接使用ssh)

如果上傳.class文件,則必須先cd(改變目錄,這是一個unix命令)發送到基目錄在其下的封裝結構.class文件所在的位置。

  1. 比方說,你的類位於包my.mega.cool.pack,並命名爲MyMegaCoolClass,你的基本目錄是/home/you/mymegacooljavaprogram

  2. 這意味着下面的基本目錄,你會創建(上傳時)在包裝結構:my/mega/cool/pack導致完整的文件路徑:

    /home/you/mymegacooljavaprogram/my/mega/cool/pack

  3. 和類將設在這裏: /home/you/mymegacooljavaprogram/my/mega/cool/pack/MyMegaCoolClass.class

  4. 這意味着你必須要cd/home/you/mymegacooljavaprogram

  5. 並運行java my.super.cool.package.MyMegaCoolClass

如果創建了一個名爲myMegaCoolSoftware.jar可執行罐子,相同的基本目錄下:

  1. 你必須cd到你的基地目錄:cd /home/you/mymegacooljavaprogram

  2. 和運行java -jar myMegaCoolSoftware.jar

如果創建正常罐子,

  1. 命令看起來像這樣

    java -cp myMegaCoolSoftware.jar my.super.cool.package.MyMegaCoolClass

例如你必須在類路徑中指定jar文件。

相關問題