2009-12-22 1 views
1

저는 재미있는 것을 위해서 자바 기반의 텍스트 기반 RPG를 작업 해 왔습니다. 무기, 주문, cmbat 시스템, 쇼핑 시스템 등을위한 약 12 ​​개의 클래스를 작성하는 지루한 작업의 많은 시간을 보낸 후에 나는 게임을 시작하고 실행하기위한 간단한 수업을 작성했습니다. 실제로하는 일은 메인 메뉴를 표시하고 게임 내 모든 클래스를 생성하고 새로운 게임을 시작하는 객체를 만드는 것입니다.왜 자바 코드가 객체 선언 후에 응답을 멈 춥니 까?

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 개체를 만들고 어떤 라인에서 진행을 중지하는 것 같습니다 왜 것에 관한 모든 아이디어를 다음 RunGame 클래스의 코드는 다음과 같습니다. 이 작업을 수행? 감사!

업데이트 : 코드를 디버깅 한 후 디버거에서 소스가 발견되지 않았으며 특정 행에서 예외가 발견되지 않는 예외가 있음을 알 수있었습니다. 그러나 Eclipse에서 정상적인 작업 공간에서 작업 중이므로 어떻게 될 수 있습니까? 파일을 찾을 위치를 수동으로 지정하려고했지만 아무 것도 변경되지 않았습니다. 이것이 일어날 수있는 이유에 대한 아이디어가 있습니까?

+5

"QueratiaMain"생성자의 소스는 무엇입니까? –

+0

생성자 소스 및 초기화 블록을 게시합니다. 해당되는 경우 .. 환영 메시지가 표시됩니까 ?? –

+0

'System.exit (99)'는 정적'main' 메쏘드의 끝에서 약간의 중복이 없나요? – Esko

답변

1

당신은 당신의 자바 프로그램이 리눅스에서 kill -3과 윈도우에서 ctrl-break에 의해 얼어있는 곳을 찾을 수 있습니다.

6

Java 디버거를 엽니 다. main()에 중단 점을 지정하십시오. 모든 코드에 대해 단일 단계를 수행하고, 특히 QuertiaMain() 생성자를 단계별로 실행합니다. 단계를 밟으면 결국에는 줄이 끊어 지거나 무한 루프 또는 앞으로 진행되는 것을 방지하는 조건이 생깁니다. 코드가 반복되는 이유가 분명하거나 자세한 도움말을 보려면 여기에서 반복 코드를 게시하십시오.

2

어떤 IDE를 사용하고 있습니까?

이클립스에서이 파일의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 "Debug As -> Java Application"을 클릭하면 QueratiaMain 생성자 안에 중단 점을 넣어야합니다.

0

Java 6을 사용하는 경우 JDK에서 jvisualvm을 호출하여 실행중인 프로그램에 연결하여 수행중인 작업을 확인하십시오.