Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java代码在对象声明后停止响应?_Java_Constructor - Fatal编程技术网

为什么Java代码在对象声明后停止响应?

为什么Java代码在对象声明后停止响应?,java,constructor,Java,Constructor,我一直在用java开发一个基于文本的RPG,只是为了好玩。在花了好几个小时的枯燥工作编写了十几个关于武器、咒语、cmbat系统、购物系统等的类之后,我编写了一个简单的类来启动和运行游戏。它真正做的只是显示一个主菜单,并创建一个对象,该对象依次创建游戏中的每个类并开始一个新游戏。RunGame类的代码如下所示: import java.util.Scanner; import java.util.Random; public class RunGame { public static void

我一直在用java开发一个基于文本的RPG,只是为了好玩。在花了好几个小时的枯燥工作编写了十几个关于武器、咒语、cmbat系统、购物系统等的类之后,我编写了一个简单的类来启动和运行游戏。它真正做的只是显示一个主菜单,并创建一个对象,该对象依次创建游戏中的每个类并开始一个新游戏。RunGame类的代码如下所示:

import java.util.Scanner;
import java.util.Random;

public class RunGame {

public static void main(String []args) {    
    Scanner reader = new Scanner(System.in);
    int choice = 0;
    QueratiaMain main = new QueratiaMain();  //code stops responding after creation of this object. why?
//  reader.nextLine();
    System.out.println("Welcome to Queratia, a text-based RPG! Choose an option:\n1. Start New Game\n2. Exit");
    choice = reader.nextInt();      
    if(choice == 1) {       

    }else
        System.exit(99);
}
}
一切都编译得很好,但是当我运行程序时,无论我在哪一行创建主对象,代码似乎都停止了运行。你知道为什么会这样吗?谢谢


更新:调试完代码后,我看到几行调试器告诉我找不到源代码,某些行抛出了一个文件未找到异常。然而,我在Eclipse中的一个普通工作区中工作,这怎么可能呢?我试图手动指定在何处查找文件,但没有任何更改。你知道为什么会发生这种情况吗?

你可以通过linux上的kill-3和windows上的ctrl-break找到java程序冻结的位置。

你可以通过linux上的kill-3和windows上的ctrl-break找到java程序冻结的位置。

打开java调试器。在main()上放置断点。单步遍历所有代码,特别是进入QuertiaMain()构造函数的步骤。当你一步一步地走下去,最终你会遇到一条线,它要么挂起,要么是一个无限循环,或者是某种阻止前进的情况。代码循环的原因可能很明显,或者您可以在此处发布循环代码以获得更具体的帮助…

打开Java调试器。在main()上放置断点。单步遍历所有代码,特别是进入QuertiaMain()构造函数的步骤。当你一步一步地走下去,最终你会遇到一条线,它要么挂起,要么是一个无限循环,或者是某种阻止前进的情况。代码循环的原因可能很明显,或者您可以在此处发布循环代码以获得更具体的帮助…

您使用的是什么IDE


如果它的Eclipse然后右键单击此文件上的任意位置,然后“调试为-->Java应用程序”,则还需要在
queryatimain
构造函数中放置断点

您使用的是什么IDE


如果它的Eclipse然后右键单击此文件上的任意位置,然后“调试为-->Java应用程序”,则还需要在
queryatimain
构造函数中放置断点

如果使用Java 6,则在JDK中调用jvisualvm以附加到正在运行的程序以查看它在做什么。

如果使用Java 6,则在JDK中调用jvisualvm以附加到正在运行的程序以查看它在做什么。

QueratiMain的构造函数的源是什么?发布构造函数的源和任何初始化块。。如果有的话。。您看到欢迎消息了吗?它不是
System.exit(99)
在static
main
方法的末尾有点多余,因为它在到达末尾时仍然会退出VM?不会引发异常?程序是否在实例化后终止?QueratiMain的构造函数的源是什么?发布构造函数的源和任何初始化块。。如果有的话。。您看到欢迎消息了吗?它不是
System.exit(99)
在static
main
方法的末尾有点多余,因为它在到达末尾时仍然会退出VM?不会引发异常?程序只是在实例化后终止吗?