标题:请问,Unresolved compilation problem:
只看楼主
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
结帖率:96%
已结贴  问题点数:10 回复次数:7 
请问,Unresolved compilation problem:
新学JAVA,抄书的一段代码

提示:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    at test.Welcome.main(Welcome.java:5)

网络上搜过了,说可能是环境变量问题,可是在dos中可以正确的查看java的版本啊
用的是eclipse
请问这该怎么解决?

程序代码:
package test;
import javax.swing.JOptionPane;

public class Welcome {    
    public static void main(String[] args){
    Count myCount=new Count();
    int times=0;
//    for(int i=0; i<100; i++)
    
        increment(myCount,times);
        
        System.out.println("count is"+myCount.count);
        System.out.println("times is"+times);
    
        
    
}
    
    public static void increment(Count c, int times){
        c.count++;
        times++;
    }
}    
    class Count{
        public int count;
        Count(int c){
            count=c;
        }
        
        Count(){
            count=1;
        }
    }


[ 本帖最后由 yudeyinji198 于 2014-9-26 13:47 编辑 ]
搜索更多相关主题的帖子: problem Welcome thread 学JAVA java 
2014-09-25 22:08
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
得分:0 
你里面的包有问题,把程序最上面的包名删了(package test;);

我不是砖家,要努力成为砖家。
2014-09-26 13:34
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 2 楼 砖家的谎言
去掉一样有问题哦
2014-09-26 13:48
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
使用eclispe这段代码报错
使用DOS的话,这段代码运行
2014-09-26 15:43
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:0 
在控制台中输入下面的命令,结果是什么?
代码保存的路径>javac Welcome.java
代码保存的路径>java Welcome

我的机器上的输出如下:
count is2
times is0

注释掉了第一行代码//package test;
2014-09-26 21:42
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 5 楼 日知己所无
控制台就是这个答案,在ECLIPSE却报错
这和编译器有啥关系呢?
2014-09-28 18:42
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
以下是引用yudeyinji198在2014-9-25 22:08:50的发言:
程序代码:
package test;
import javax.swing.JOptionPane;

public class Welcome {    
    public static void main(String[] args){
    Count myCount=new Count();
    int times=0;
//    for(int i=0; i<100; i++)
    
        increment(myCount,times);
        
        System.out.println("count is"+myCount.count);
        System.out.println("times is"+times);
    
        
    
}
    
    public static void increment(Count c, int times){
        c.count++;
        times++;
    }
}    
    class Count{
        public int count;
        Count(int c){
            count=c;
        }
        
        Count(){
            count=1;
        }
    }

就拿这段代码来说吧,其实你不需要太纠结这个问题的。

比如说,你在F盘的根目录下创建一个test文件夹,然后在建一个Welcome.java文件,其文件内容就是上述代码,其中包括package test;这句,
那么你在编译的时候自然首先是javac Welcome.java
因为你代码含有包名,包名相当于一个路径,java程序找.class文件运行时,会根据路径来找该class文件,如果test路径下没有test那个文件夹,
必须新建一个,然后把编译的全部.class文件放在该路径下。
只要有包名的存在,就需要先建一个以包名命名的文件夹,然后把编译的class文件放到该文件夹中,最后在命令行中输入java 包名/.class文件。

如图:

图中的报错是因为我一开始就没有在test的目录下创建新的test文件夹,后来能运行时因为我创建了新的test文件夹,并且把两个class文件都放在里面了

[ 本帖最后由 love云彩 于 2014-9-28 22:35 编辑 ]

思考赐予新生,时间在于定义
2014-09-28 22:21
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:10 
回复 4 楼 yudeyinji198
不太清楚你建工程是否创建对应的包,反正前面我说了在DOS窗口下怎么运行,现在
给你看看我在MyEclipse中的工程目录以及控制台运行结果:


思考赐予新生,时间在于定义
2014-09-28 22:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-436575-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.145438 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved