有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在运行Java RMI服务器期间声明变量值

我是Java RMI的新手,试图在不同的条件下学习。我不知道我想做的是不是合适。到目前为止,我已经开发了一个RMI应用程序,客户端在其中提供输入&;得到这个的阶乘。我有四门课要申请

下面是这些代码

服务器类-FacServer

import java.rmi.*;
public class FacServer
{
public static void main(String a[]) throws Exception
{
    FacImpl obj = new FacImpl();
    Naming.rebind("FAC",obj);
    System.out.println("Server started");
}
}

客户端类-FacClient

import java.util.*;
import java.io.*;
import java.rmi.*;

public class FacClient
{
public static void main(String a[]) throws Exception
{
  FacInt obj = (FacInt)Naming.lookup("FAC");
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("Enter a number: ");
  String s = null;
  try {
     s = br.readLine();
  } catch(IOException ioe) {
     System.err.println(ioe.getMessage());
  }
    int r = Integer.parseInt(s);
    int n= obj.fac(r);

    System.out.println("Factorial is "+n);
}
}

实现类-FacImpl

import java.rmi.server.*;
public class FacImpl extends UnicastRemoteObject implements FacInt 
{
public FacImpl() throws Exception
{
    super();
}
public int fac(int x)
{
int i,j=1;
for(i=x;i>1;i--)
j=j*i;
return j;
}
}

接口类-FacInt

import java.rmi.Remote;
public interface FacInt extends Remote
{
public int fac(int x) throws Exception;
}

它很好用。现在我想在服务器端设置一些限制。例如,服务器不会计算超过5的阶乘值。我知道我可以在实现课上轻松地做到这一点。但我想在启动服务器时声明它。例如,要设置限制5,我应该按照以下方式启动服务器

Java服务器5

所以,如果客户端输入的值超过5,它将得到一个错误回复。有可能吗

如果客户端提供了一个可接受的值,我还可以在服务器端显示阶乘值吗


共 (1) 个答案

  1. # 1 楼答案

    您可以随时使用java系统。服务器端的属性,如

    java FacServer -Dlimit="5"
    

    在java类中,您可以像下面这样获取它,并将逻辑放入其中

    int limit=Integer.parseInt(System.getProperty("limit"));