Java程序在CMD中挂起,但在JDeveloper中运行得很好。为什么?

时间:2017-12-21 15:01:17

标签: java

我对Java比较陌生,这将是我在这个网站上的第一篇文章。我以前曾多次使用它,但这次我还没找到问题的答案所以我在这里...   这段代码在我的IDE(JDeveloper)中工作得很好,但出于某种原因,当我在CMD中运行它时会挂起某些参数(例如7844578642 2; 7844578642 16 - 这两个集合在IDE中工作但不在CMD中工作)。   我有什么想法吗?

class PR13_19 {
public static void main(String args[]) {
    long N = 0;
    int base = 0,pow = 1;
    String result = "";
    if(args.length != 2){
        System.out.println("Please enter Number and base...");
        return;
    }
    try{
        N = Long.parseLong(args[0]);
        base = Integer.parseInt(args[1]);
        if(!(base >= 2 && base <= 16)) throw new NumberFormatException();
    }catch(NumberFormatException | StringIndexOutOfBoundsException exc){
        System.out.println("Invalid Input");
        return;
    }
      //converts number N in base 10 to any base "base"
      // if base >10 11=A,12=B,13=C....(ex.hexadecimal) 
   while(pow <= N/base)
      pow *= base; //greatest power of "base" >= N
   while(pow > 0){
       if(N >= pow) { 
           if(N/pow > 9) result += (char)((N/pow) + 55);
           else                  result += (N/pow);
           N -= (N - (N % pow));
       }
       else result += "0";
       pow /=base;
   }
   System.out.println(result);
}

}

1 个答案:

答案 0 :(得分:0)

您必须输入在javas LONG范围内定义的数字或更改代码。

您还可以添加try / catch子句以查看发生的错误。