Почему мой Java-код перестает отвечать после объявления объекта? - PullRequest
1 голос
/ 22 декабря 2009

Я работаю над текстовой RPG в Java, просто для удовольствия. Потратив много часов утомительной работы на написание почти дюжины классов для оружия, заклинаний, систем 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);
}
}

Все отлично компилируется, но когда я запускаю программу, кажется, что код перестает развиваться в любой строке, в которой я создаю объект QueratiaMain. Есть идеи, почему он это сделал? Спасибо!

ОБНОВЛЕНИЕ: После отладки кода я попал на несколько строк, где отладчик сказал мне, что источник не был найден, и некоторые строки выдавали исключение для файла, не найденного. Тем не менее, я работаю из обычного рабочего пространства в Eclipse, так как это может быть? Я пытался вручную указать, где искать файлы, но ничего не изменилось. Любые идеи о том, почему это может происходить?

Ответы [ 4 ]

6 голосов
/ 22 декабря 2009

Откройте отладчик Java. Поставьте точку останова на main (). Один шаг по всему коду и, в частности, шаг в конструктор QuertiaMain (). По мере прохождения, в конечном итоге вы попадете на линию, которая либо зависает, либо бесконечный цикл, либо какое-то такое условие, которое препятствует продвижению вперед. Может быть очевидно, почему код зацикливается, или вы можете опубликовать код зацикливания здесь для более конкретной помощи ...

2 голосов
/ 22 декабря 2009

Какой IDE вы пользуетесь?

Если его Eclipse затем щелкнуть правой кнопкой мыши в любом месте этого файла, а затем «Отладка как -> Java-приложение», вам также потребуется поместить точки останова в конструктор QueratiaMain.

1 голос
/ 22 декабря 2009

Вы можете узнать, где зависает ваша Java-программа, с помощью kill -3 в Linux и ctrl-break в Windows.

0 голосов
/ 22 декабря 2009

Если вы используете Java 6, тогда вызовите jvisualvm в JDK, чтобы подключиться к работающей программе и посмотреть, что она делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...