方法一:
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<标志> 直接将 <标志> 传递给运行时系统。
你把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);
}
}
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);
}
}
把最下面的两个括号移到两个类的上面
其实就是找不到zeroException 这个类,这个类你定义过吗?还是哪里引用了?
看报错是dos命令行执行的java,这种错,编译就会报错
建议用个IDE(就是开发环境)吧,比如eclipse
如果你用了的话,在代码刚写出来的时候就会报错
你把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);
}
}