A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

main函数问题
以前我总觉得一个一个java源文件中只有一个main方法,后来我知道了并不是一定的,因为main函数也可以重载,
但是public static void main(String[] args) { }为程序的入口,这个标准的String数组为参数的main方法才是程序的入口,
如果是int数组为参数的话就不是程序的入口,
后来我又知道了一个一个java源文件可以有2个标准的main方法,两个都是程序的入口,此时 怎么运行?
此时可以这样解决:比如在EdltPlus中,编写两个如下一个java程序,里面有两个标准的main方法作为程序的入口,此时在cmd出来的窗口中进入文件所在的目录,
输入start命令,在复制一个相同的DOS窗口来分别运行这两个类中的main方法
class TcpClient2
{
public static void main(String[] args)throws Exception
{
  Socket s = new Socket("192.168.1.254",10004);  
  OutputStream out = s.getOutputStream();
  out.write("服务端,你好".getBytes());  
  InputStream in = s.getInputStream();
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  s.close();
}
}

class TcpServer2
{
public static void main(String[] args) throws Exception
{
  ServerSocket ss = new ServerSocket(10004);
  Socket s = ss.accept();
  String ip = s.getInetAddress().getHostAddress();
  System.out.println(ip+"....connected");
  InputStream in = s.getInputStream();
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  OutputStream out = s.getOutputStream();
  Thread.sleep(10000);
  out.write("我收到,你也好".getBytes());
  s.close();
  ss.close();
}
}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

7 个回复

正序浏览
只是两个独立运行类而已,好像不奇怪吧?
回复 使用道具 举报
O(∩_∩)O哈哈~,楼主没看到一个.java文件编译之后,有多少个类就生成多少个.CLASS文件。这个。。。。
回复 使用道具 举报
呵呵 楼主喝高了,是.class文件最多一个(也就是一个类里面),    而.java文件里面是不定的要看有多少个类。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1

查看全部评分

回复 使用道具 举报
在Eclipse中肯定要分开了,在Editplus中可以写在一个源文件中,但是运行时还是分开运行的。
回复 使用道具 举报
在Eclipse中肯定要分开了,在Editplus中可以写在一个源文件中,但是运行时还是分开运行的。
回复 使用道具 举报
呵呵,注意看老毕编译时候写的语句啊,分两次编译的。 在Eclipse里可就要分成两个文件了,不能放一起!

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
还是不太懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马