A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

eclipse里面写的程序在它里面可以运行,但我在文件夹里面打开它生成的class,单独运行,为什么在控制台无法输出啊?而且报错。






13 个回复

倒序浏览
java cn.itcast._04.Admin_Login试试

点评

哦,目录退到.../bin/  发表于 2016-8-6 15:57
回复 使用道具 举报

package cn.itcast._04;
import java.util.Scanner;

/*
* 需求:模拟用户登录
* 分析:
*                 1.初始化登录字符串格式的密码
*                 2.构造一个登陆判断方法:
         *                 2.创建一个键盘录入对象,获取一个字符串
         *                 3.利用equals方法,进行比较。
         *                 4.用for语句给三次机会输入
         *                 5.如果结果相等,则进入下一步执行,如果不相等继续输入,直至相等。如果输入三次依然不相等,则结束
*                 6.构造一个猜数字的方法
*                         如果上述密码登录成功,则进行猜数字游戏
* */
public class Admin_Login{

        public static void main(String[] args) {
                System.out.println("游戏登陆");
               
                //给三次输入机会
                for(int i=2; i>=0 ;i--){
                        //创建键盘录入对象
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入用户名 :");
                        String str1 = sc.nextLine();
                        //从键盘获取密码
                        System.out.println("请输入密码 :");
                        String str2 = sc.nextLine();
                       
                        //调用密码判断方法
                        if(judge_name(str1) && judge_key(str2)){
                                //调用猜数字游戏
                                System.out.println("登陆成功!");
                                guessNumber();
                        }else if(i == 0){
                                        System.out.println("登陆失败!请退出.");
                                        break;
                        }else{
                                        System.out.println("用户名或密码输入错误!您还有"+i+"次输入机会.");
                        }
                }
        }
       
               
       
        //登陆用户名判断
        private static boolean judge_name(String str){
                final String name = "admin";       
                if(str.equals(name)){
                        return true;
                }else{
                        return false;
                }
               
        }
        //登陆密码判断
        private static boolean judge_key(String str){
                final String key = "123456";       
                if(str.equals(key)){
                        return true;
                }else{
                        return false;
                }
               
        }
        //猜数字游戏
        private static void guessNumber(){
                //随机产生一个1-100的数字
                int number = (int)(Math.random()*100+1);

                while(true){       
                                System.out.println("开始猜数字游戏");
                                System.out.println("请在1-100范围内输入您猜的数字:");
                                Scanner sc = new Scanner(System.in);
                                //获取数字
                                if(sc.hasNextInt()){
                                        int guess = sc.nextInt();

                                        if(guess == number){
                                                System.out.println("恭喜!您猜对了");
                                                if(judge_back()){
                                                        break;
                                                }
                                               
                                        }else if(guess > number){
                                                System.out.println("您猜的"+guess+"大了");
                                        }else{
                                                System.out.println("您猜的"+guess+"小了");
                                        }
                                }else{
                                        System.out.println("您输入的不是数字");
                                       
                                }
                }
        }
        //判断是否结束游戏
        private static boolean judge_back(){
                System.out.println("是否重新玩游戏");
                System.out.println(" Y:继续"+"  N:退出");
                while(true){
                        Scanner sc = new Scanner(System.in);
                        String s = sc.nextLine();
                        if(s.equalsIgnoreCase("Y")){
                                return false;
                        }else if(s.equalsIgnoreCase("N")){
                                return true;
                        }
                }
        }
}
回复 使用道具 举报
我上次遇到了一个不报错也不运行的,直接重新创建了一个,把内容复制进去了,然后运行就行了
回复 使用道具 举报
烟雨江南12 发表于 2016-8-6 19:45
我上次遇到了一个不报错也不运行的,直接重新创建了一个,把内容复制进去了,然后运行就行了 ...

是啊,我复制了一份,放在了记事本里面,在它的文件夹目录下运行class文件,就可以。。。不知道为啥运行Eclipse生成class文件不行。
回复 使用道具 举报
阿卜 发表于 2016-8-6 15:55
java cn.itcast._04.Admin_Login试试


回复 使用道具 举报

退到bin目录下输入这个命令
回复 使用道具 举报
阿卜 发表于 2016-8-7 11:12
退到bin目录下输入这个命令

确实可以了。。。感谢!这是为啥?
回复 使用道具 举报
乐仔其中 发表于 2016-8-7 14:07
确实可以了。。。感谢!这是为啥?

因为你的类进行类package操作,调用必须要通过包名.类名的方式,
在调用的时候你可以理解为是这样的
java cn/itcast/_04/Admin_Login

只有在bin目录下才能找到cn文件夹及其子文件夹。
回复 使用道具 举报
以前我也遇到过这个问题,后来发现是因为 调用了包名。
回复 使用道具 举报
阿卜 发表于 2016-8-7 17:17
因为你的类进行类package操作,调用必须要通过包名.类名的方式,
在调用的时候你可以理解为是这样的
java ...

明白了,谢谢
回复 使用道具 举报
你看看是不是字母啥打错了
回复 使用道具 举报
li--yong 发表于 2016-8-8 23:06
你看看是不是字母啥打错了

是因为我没有bin目录下执行。。。在bin目录下,带上包执行,就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马