java找不到符号的问题

2024年11月18日 11:48
有5个网友回答
网友(1):

方法一:

1、进入d:/web/wsh下: javac a.java;

2、然后退出wsh目录即进入d:/wsh下 javac wsh/b.java即可编译成功!

方法二:

1、通过使用javac -classpath(cp)参数;

2、进入d:/web /wsh下: javac a.java;

3、还是在d:/wsh/wsh下: javac -classpath d:/web/wsh b.java;

这样也可以编译成功!

以下方法都通过测试!

以下是javac编译的参数:

1、用法:javac <选项> <源文件> 

2、选项: 

1)-g:none 不生成任何调试信息;

2)-g:{lines,vars,source} 只生成某些调试信息;

3)-nowarn 不生成任何警告;

4)-verbose 输出有关编译器正在执行的操作的消息; 

5)-deprecation 输出使用已过时的 API 的源位置; 

6)-classpath <路径> 指定查找用户类文件的位置;

7)-cp <路径> 指定查找用户类文件的位置; 

8)-sourcepath <路径> 指定查找输入源文件的位置; 

9)-bootclasspath <路径> 覆盖引导类文件的位置; 

10)-extdirs <目录> 覆盖安装的扩展目录的位置;

11)-endorseddirs <目录> 覆盖签名的标准路径的位置; 

12)-d <目录> 指定存放生成的类文件的位置; 

13)-encoding <编码> 指定源文件使用的字符编码;

14)-source <版本> 提供与指定版本的源兼容性; 

15)-target <版本> 生成特定 VM 版本的类文件; 

16)-version 版本信息;

17)-help 输出标准选项的提要;

18)-X 输出非标准选项的提要;

19)-J<标志> 直接将 <标志> 传递给运行时系统。

网友(2):

你把zeroException 和A俩个类定义到Shiyan8_7 类外边,没你这样的写法,内部类也不是这样写的,
public class Shiyan8_7 {
public static void main(String args[]) {
A a = new A();
int b;
Scanner reader = new Scanner(System.in);
b = reader.nextInt();
try {
a.f(b);
} catch (zeroException x) {
System.out.println(x.getMessage());
}

}
}
class zeroException extends Exception {
String message;

zeroException(int n) {
message = n + "不是正数";
}

public String getMessage() {
return message;
}
}
class A {
public void f(int m) throws zeroException {
if (m < 0) {
zeroException ex = new zeroException(m);
throw (ex);
}
double number = Math.sqrt(m);
System.out.println(m + "的平方根是" + number);
}
}

网友(3):

import java.util.Scanner;
public class Shiyan8_7{
public static void main(String args[]){
A a=new A();
int b;
Scanner reader= new Scanner(System.in);
b=reader.nextInt();
try{
a.f(b);
}
catch(zeroException x){
System.out.println(x.getMessage());
}

}
}


class zeroException extends Exception{
String message;
zeroException(int n){
message=n+"不是正数";
}
public String getMessage(){
return message;
}
}
class A{
public void f(int m) throws zeroException{
if(m<0){
zeroException ex=new zeroException(m);
throw(ex);
}
double number=Math.sqrt(m);
System.out.println(m+"的平方根是"+number);
}
}

把最下面的两个括号移到两个类的上面

网友(4):

其实就是找不到zeroException 这个类,这个类你定义过吗?还是哪里引用了?
看报错是dos命令行执行的java,这种错,编译就会报错
建议用个IDE(就是开发环境)吧,比如eclipse
如果你用了的话,在代码刚写出来的时候就会报错

网友(5):

你把zeroException类放在了Shiyan8_7类里面了。

这主要是你写代码不规范造成的。

下面是正确的:

public class Shiyan8_7 {
    public static void main(String[] args) {
        A a=new A();
        int b;
        Scanner reader= new Scanner(System.in);
        b=reader.nextInt();
        try{
            a.f(b);
        }catch(zeroException x){
            System.out.println(x.getMessage());
        }
    }
}

class zeroException extends Exception{
    String message;
    zeroException(int n){
        message=n+"不是正数";
    }
    public String getMessage(){
        return message;
    }
}
class A{
    public void f(int m) throws zeroException{
        if(m<0){
            zeroException ex=new zeroException(m);
            throw(ex);
        }
        double number=Math.sqrt(m);
        System.out.println(m+"的平方根是"+number);
    }
}