最简单的JAVA程序运行不了,求问题出在哪儿~~

2024-12-28 04:30:36
推荐回答(5个)
回答1:

但是当改为6315的时候就已经报下面的错了.当是6314的时候则返回6314
Exception in thread "main" java.lang.StackOverflowError
at com.banxi.zhidao.Loops.Loop1(Loops.java:7)
at com.banxi.zhidao.Loops.Loop2(Loops.java:14)
at com.banxi.zhidao.Loops.Loop1(Loops.java:8)

当我把程序改成下面打印输出就可以看到临界值变了,所以说不是这个数字有什么特殊的.
而是堆栈的 内在大小是一定的..,我发现下面的这个MAX_BOUND的变化是因为两个函数调用吧.所以增2调用才变化
.下面的输出结果显示,到Count的值为6303就抛出异常了,所以此时的临界值变成了小了.
变成了异常也变成与输入输出调用有关.这些调用运行时变量空间是创建在运行时堆栈上的.
所以是运行时堆栈大小一定吧.
如果把上面的MAX_BOUND改变6302的话就不会抛出异常了.
/****/
package com.banxi.zhidao;

class Loops
{
private int MAX_BOUND = 6314;
int Loop1(int count)
{
count++;
System.out.println("In loop1 Count:"+count);
return Loop2(count);
}
int Loop2(int count)
{
count++;
if (count System.out.println("In loop2 Count<"+MAX_BOUND+":"+count);
return Loop1(count);
}
else{
System.out.println("In loop2 Count>="+MAX_BOUND+":"+count);
return count;
}
}
public static void main(String[] arguments)
{
int i=0;
Loops loopValue=new Loops();
System.out.println(loopValue.Loop1(i));
}
}

/***/
In loop2 Count<6314:6292
In loop1 Count:6293
In loop2 Count<6314:6294
In loop1 Count:6295
In loop2 Count<6314:6296
In loop1 Count:6297
In loop2 Count<6314:6298
In loop1 Count:6299
In loop2 Count<6314:6300
In loop1 Count:6301
In loop2 Count<6314:6302
In loop1 Count:6303
Exception in thread "main" java.lang.StackOverflowError
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:128)
at java.io.PrintStream.write(PrintStream.java:447)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:290)
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:103)
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)
at java.io.PrintStream.write(PrintStream.java:494)
at java.io.PrintStream.print(PrintStream.java:636)
at java.io.PrintStream.println(PrintStream.java:773)
at com.banxi.zhidao.Loops.Loop2(Loops.java:16)
at com.banxi.zhidao.Loops.Loop1(Loops.java:10)
at com.banxi.zhidao.Loops.Loop2(Loops.java:17)

回答2:

首先,你在命令行下,输入 java -version
测试一下你的环境变量是否配置正确 。
另外,程序代码改成:
public class JavaApplication
{
pubilc static void main (String[] args)
{
System.out.println("Hello World!");
}
}

先用cd E:\
E:
把目录切换到E盘,再cd javatest
再javac JavaApplication.java

还不行的话,留言给我,一步步帮你调试

回答3:

若原来行,现在不行了,是手机内存垃圾太多了,若一直不行那就是手机本身的运存太小,运行不了,说明手机配置太低了。

回答4:

JDK设置错误,设置方法:
JAVA_HOME=C:JKD5.0;
path=%JAVA_HOME%\bin;(记得放在最前面PATH的最前边)
classpath=%JAVA_HOME%\lib;

回答5:

classpath没设置好 或者没jre