站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题用Eclipse执行程序报错

用Eclipse执行程序报错

摘要: 用Eclipse执行程序报错


我用Eclipse执行以下程序:
package string;
class SplitString
{
private String str;
private int byteNum;

public SplitString(){}

public SplitString(String str,int byteNum)
{
this.str=str;
this.byteNum=byteNum;

}

public void splitIt()
{

byte bt[]=str.getBytes();
System.out.println("Length of this String ===>"+bt.length);
if(byteNum>1)
{
if(bt[byteNum]<0)
{
String substrx=new String(bt,0,--byteNum);
System.out.println(substrx);
}else
{
String substrex=new String(bt,0,byteNum);
System.out.println(substrex);
}

}else
{
if(byteNum==1)
{
if(bt[byteNum]<0)
{
String substr1=new String(bt,0,++byteNum);
System.out.println(substr1);
}else
{
String subStr2=new String(bt,0,byteNum);
System.out.println(subStr2);
}
}else
{
System.out.println("输入错误!!!请输入大于零的整数:");
}
}
}
}
public class TestSplitString {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
String str="我ABC汉DEF";
int num=6;
SplitString sptstr = new SplitString(str,num);
sptstr.splitIt();

}

}
以上代码应该没有错误,但是为什么我执行后老是出现以下这个问题?

Exception in thread "main" java.lang.Error: 无法解析的编译问题:

at TestSplitString.main(TestSplitString.java:58)
在Eclipse的问题报错提示里写着:声明的包与期望的包不匹配,错误行:第1行。


你这是两个类,应该放在两个java文件中,每个类都在一个文件中

第一个文件在package string中
第二个类(应该在另外一个java文件中)却没有,所以找不到

另外的方法是去掉 public class TestSplitString (和相应的括号)
就可以运行了


tianfang(天放) 你好,你所说的“第二个类(应该在另外一个java文件中)却没有”这句如何理解?请问能否给出详细解答?应该如何修改才能通过运行 ?你说的另外的方法我觉得是不对的,一个程序如果没有public类的话,他应该是不能运行的吧?去掉之后是无法运行的,因为public class TestSplitString{}决定了该JAVA的文件名。


......类的概念看来LZ还没有搞明白,其实类就相当于一个函数,在一个JAVA文件中可以存在多个类,但是只能存在一个和JAVA文件同名的主类。(也可以没有主类)

你可以吧其它的类看成都是分别实现不同的函数。

而主函数必须在主类中,如果在其它类中也出现了主函数必然要出错的


RockWang2819(NWの鬼眼狂刀)请问能否看看这个程序的问题出在哪里?为何运行无法通过?


LZ的代码在JC里没什么问题的说哦........


java一般约定一个类放在一个文件中,就是每个类放在 类名.java,

你的代码中 public class TestSplitString 就是第二个类的定义,把这个类当作SplitString 的测试类,主程序在这个类中。

所以应该把TestSplitString 放在第二个文件TestSplitString .java中,然后和SplitString 放在同一个包(package string)中





我在JCreator运行也无法通过,它的出错信息为:Exception in thread "main" java.lang.NoSuchMethodError: main 请问你能否也把你环境变量里的path设置贴出来参考参考?


超级慢...LZ你的JAVA文件是叫TestSplitString.JAVA吧

刚才我扔到eclipse里,它报的错误是Could not find main class.....



我也是刚开始用eclipse,还有很多不明白的地方呢


文件自然是TestSplitString.java啦,这个是不会犯错的啦,我在JC里运行就无法得到结果哦,有个网友也说他的在JC里能运行通过,所以我在怀疑是不是环境变量的问题,我也是刚开始用eclipse,在那里就报错成我之前所说的。


JC的输出结果......

Length of this String ===>10
我ABC

你的JAVA文件必须是TestSplitString.JAVA才成,而且刚才你的JC报的错误好象是你的JC本身有问题,是不是你打的破解补丁不对?还有你的JDK是什么版本?



关于PATH,我是新装的系统,没进行过任何设置

Path:%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/Program Files/Microsoft SQL Server/80/Tools/BINN


我的JC版本是:HA-JCreatorPro_3.50.013_Fix-Georgewing,而JDK版本是1.6.0的。我的PATH是:C:/Program Files/Java/jdk1.6.0/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem
真不知问题出在何处,照你这样说这个代码是不会有问题的了。应该出在系统的设置上。你的JC什么版本的?


OK了.....我把你的PACKAGE去掉了,然后工程名和文件名都取相同的TestSplitString

然后就得到正确的结果了。

另:
LZ兄下次帖代码能不能给缩进一下,看起来好累的说。


JC是3.5 E文版,JDK是1.5,eclipse是3.1。

你先把包去了试试,我去了包就好了


呵呵,还是你强,我照你的把PACKAGE去掉就OK了,谢谢!!我先看看如何奖励分数,把20分都奖励你,谢谢你的帮忙,不过我想问:为什么要把PACKAGE去掉呢?他起到什么作用?


说实话,我从写JAVA到现在就从来没用过package这个东西呢~~~~XD

这个还是问问高手吧~~~~


↑返回目录
前一篇: 这样才能在eclipse的控制台上输出彩色字?
后一篇: JCreator的代码无法移植给eclipse?