2013-05-10 35 views
0

我在不同的系统中有两个项目。并且两个系统都通过LAN电缆连接。我在我的PC上安装了Try.java,在另一台名为HRIDYA-PC的PC上安装了Hello.java。我想从Try.java调用MySum.java。我希望MySum.java在另一个系统中执行,而不是在我的系统中执行。无法运行其他项目在不同系统中的另一个java项目

这是我在其他系统Try.java

package pkgtry; 
import java.io.*; 

public class Try 
{ 
    private static void runProcess(String command) throws Exception 
    { 
    Process pro = Runtime.getRuntime().exec(command); 
    pro.waitFor(); 
    InputStream inputStream = pro.getInputStream(); 
    int b = -1; 
    while ((b = inputStream.read()) != -1) 
    { 
     System.out.write(b); 
    } 
    } 

    public static void main(String[] args) 
    { 
     try 
     { 
      runProcess("javac -d . \\HRIDYA-PC\\Users\\Hridya\\Documents\\NetBeansProjects\\hello\\src\\hello\\Hello.java"); 
      runProcess("java hello.Hello "); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

Java项目MySum代码包含两个Java files-Connectdb.java和MYSum.java

代码ffor MySum.java是

对于Connectdb.java
package mysum; 

import java.sql.*; 
import java.util.Scanner; 

public class MySum 
{ 
    public static String dbName="partition",dbName1="results",tableName="p1",query; 
    public static Connectdb con=new Connectdb(); 
    public static Connection conn=null; 
    public static Connection conn1=null; 
    public static String[] tnames; 
    public static int sumTransactionId=0,sumCustomerId=0,sumDepositAmount=0,sumWithdrawAmount=0,totalNoOfRange=3; 
    public static int i=0,select=0,range,size; 
    public static int[] tid,id,amount; 
    public static String[] type,date; 

    public static void main(String[] args) 
    { 
     try 
     { 
      conn=con.connect(dbName); 
      conn1=con.connect(dbName1); 
      query="create table partialSum(Attribute varchar(20),Sum int)"; 
      PreparedStatement ps=conn1.prepareStatement(query); 
      ps.executeUpdate(); 
      Statement stm=conn.createStatement(); 
      ResultSet rs=stm.executeQuery("select count(*) from "+tableName); 
      rs.next(); 
      size=rs.getInt(1); 
      tid=new int[size]; 
      id=new int[size]; 
      date=new String[size]; 
      type=new String[size]; 
      amount=new int[size]; 
      rs=stm.executeQuery("select * from "+tableName); 
      while(rs.next()) 
      { 
       tid[i]=rs.getInt(1); 
       id[i]=rs.getInt(2); 
       date[i]=rs.getString(3); 
       type[i]=rs.getString(4); 
       amount[i]=rs.getInt(5); 
       i++; 
      } 

      switch(select) 
      { 
       case 0: 
         for(i=0;i<size;i++) 
         { 
          sumCustomerId+=id[i]; 
         } 
         query="insert into partialSum values('Customer ID','"+sumCustomerId+"')"; 
         ps=conn1.prepareStatement(query); 
         ps.executeUpdate(); 
         break; 
       case 1: 
         for(i=0;i<size;i++) 
         { 
          sumTransactionId+=tid[i]; 
         } 
         query="insert into partialSum values('Transaction ID','"+sumTransactionId+"')"; 
         ps=conn1.prepareStatement(query); 
         ps.executeUpdate(); 
         break; 
       case 2: 
         for(i=0;i<size;i++) 
         { 
          if("Deposit".equals(type[i])) 
          { 
           sumDepositAmount+=amount[i]; 
          } 
         } 
         query="insert into partialSum values('Amount Deposited','"+sumDepositAmount+"')"; 
         ps=conn1.prepareStatement(query); 
         ps.executeUpdate(); 
         break; 
       case 3: 
         for(i=0;i<size;i++) 
         { 
          if("Withdrawal".equals(type[i])) 
          { 
           sumWithdrawAmount+=amount[i]; 
          } 
         } 
         query="insert into partialSum values('Amount Withdrawed','"+sumWithdrawAmount+"')"; 
         ps=conn1.prepareStatement(query); 
         ps.executeUpdate(); 
         break;  
      } 
     } 
     catch(Exception e) 
     { 
      System.out.println(e); 
     } 
    } 
} 

代码是

package mysum; 

import java.sql.*; 
public class Connectdb { 

    public String hostname; 
    public String username; 
    public String password; 
    public String dbName; 
    public String connectionUrl1; 

    public Connection connect(String db) 
    { 
     hostname = "localhost"; 
     username = "postgres"; 
    password = "geethu"; 
     dbName = db; 
    connectionUrl1 = "jdbc:postgresql://" + hostname + "/" + dbName; 
     Connection conn=null; 
     try{ 
      Class.forName("org.postgresql.Driver"); 
     } catch (ClassNotFoundException cnfe){ 
     System.out.println("Could not find the JDBC driver!"); 
     System.exit(1); 
     } 
     try { 
       System.out.println("before Connected successfully = "+connectionUrl1); 
       conn = DriverManager.getConnection(connectionUrl1,username, password); 
       System.out.println("Connected successfully"); 
      } catch (SQLException sqle) { 
        System.out.println("Connection failed"); 
        System.out.println(sqle); 
        System.exit(1); 
       } 
     return conn; 

    } 

} 

任何人都可以帮助我。

+0

你可以发布代码为'Hello.java' – Sam 2013-05-10 16:58:59

+0

我已经编辑了这个问题 – gela 2013-05-10 17:32:00

回答

0

Got it!在您的远程计算机名称前添加两个斜线: \\\\ HRIDYA-PC .. 双斜杠在现实世界中计为一个斜线(java转义)。 希望这有助于!

+0

谢谢亚尔。但是我想在其他系统中运行Hello.java。我怎样才能使它成为可能? – gela 2013-05-11 01:34:40

+0

我已经编辑过的问题你可以检查它吗? – gela 2013-05-11 01:46:10

+0

Woooow ...这是另一种类型的问题。我认为你正在寻找RPC或客户端 - 服务器体系结构。我不确定您是否可以在远程计算机上调用程序,而无需服务器在某个端口上侦听。 – Igor 2013-05-11 06:47:04

相关问题