mac java启动报错io_Mac 使用命令行运行java程序的一点提醒

今天在《Java学习笔记》中看到一段程序,关于输入输出流的复制程序

这是IO 类的代码

1 packagecc.openhome;2

3 import java.io.*;4

5 public classIO {6 public static void dump(InputStream src, OutputStream dest) throwsIOException {7 try (InputStream input = src; OutputStream output =dest) {8 byte[] data = new byte[1024];9 int length = -1;10 while((length=input.read(data)) !=-1){11 output.write(data,0,length);12 }13 }14 }15 }

这个是copy类的代码

packagecc.openhome;import java.io.*;public classCopy {public static void main(String[] args) throwsIOException {

IO.dump(new FileInputStream(args[0]),new FileOutputStream(args[1])

);

}

}

这代码在eclipse下是无法运行的,显而易见,因为没有 输入跟输出文件,单纯的运行会抛数组越界错误

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0at cc.openhome.Copy.main(Copy.java:7

虽然我也不懂什么原因,书上是让我们用命令行的方式使用

Windows 下可以直接

> java cc.openhome.Copy 源文件 目标文件

但是在Mac 下这么用会一直报错

必须把包"cc.openhome"折叠变成"/cc/openhome"才可以,Mac 跟 Windows 的包处理形式不一,反正在Mac下得这么用

而且,你从哪里找的"cc.openhome"这个包呢?你以为可以在用户目录加下,用路径访问?

比如

java /Users/cafe3165/Documents/workspace/Tenth_1/bin/cc/openhome/Copy 源文件位置 目标文件位置

这样还是不行的,还是找不到主类(好坑)

😂对了,我的文件夹是放在eclipse 的workspace下的,.java文件编译成功后会生成.class文件放在bin中

进入bin目录下后

再运行

bin cafe3165$ java cc/openhome/Copy /Users/cafe3165/Desktop/Hello.java /Users/cafe3165/Desktop/Hello.txt

这时候就能在桌面上看到

625b48f73188d8dfed286e4d1e0c4f37.png

0307ca8a2b35e954522d194ffe04b266.png

果然不能过度以来IDE  连javac 跟java 都不会。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值