博文

[原创]javap反汇编等指令(2006-05-10 21:07:00)

摘要:今天看了一下书,有些忘记的指令: javac -verbose XX.java 它将使编译器告诉你需要哪些类 java -prof XX 用于优化,显示每个过程调用次数,需要多少毫秒。 javadoc 自动生成html文档。原java文档带两个星号以上那些段落。 javah 处理C和JAVA转化的,不是很清楚 jdb XX 自己用一下就知道了 javap XX 相当有用的反汇编, javap -c XX 输出会显示VM执行时采用的每个步骤。 jre运行环境就不多说了,程序里面可以包装进去,方便用户下栽。 2006.5.10.21:02......

阅读全文(4725) | 评论:0

载入图片的几种常用方法(2006-05-10 08:23:00)

摘要: 载入图片的几种常用方法
/**
* <p>Title: PaintPanel</p>
* <p>Description:此程序演示如何载入图片,并让其作为panel的背景</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: gift2u</p>
* @author liwu chinajavaworld
* @version 1.0
*/
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.net.URL;
import java.net.*;

import java.awt.MediaTracker;
import java.io.File;
import javax.imageio.ImageIO;
import java.io.*;
import java.awt.Toolkit;

public class PaintPanel
    extends JPanel {
  Image image = null;

  /**
   * PaintPanel
   * 外部给图片,直接载入
   * @param image Image
   */
  public PaintPanel(Image image) {
    this.image = image;
  }

  /**
   * PaintPanel......

阅读全文(4647) | 评论:0

跟我学Java Swing之游戏设计(2006-05-09 16:44:00)

摘要: 谁知道通天的巴比伦塔耗费了多少沙石?又有谁知道罗马的建成经历了多少个日夜?我们惟一知道的是,没有一块块砖石的垒砌,就没有蜿蜒万里的长城;没有巨石和黏土的堆集,就没有亘古不变的金字塔。由此可见,基础知识的准备对于我们学习任何事物都至关重要,那么,就让我们从认识Swing的一些基础功能开始,启动我们建造罗马的伟大工程吧! 前言 Java咖啡馆已经开张不少时日了,如果你已经喜欢上了Java这杯咖啡的味道,那么记得常来哦。这一次,我们为大家准备了一大杯香浓的咖啡——将以开发一个“连连看”游戏为蓝本,和大家共同学习Java中Swing的用法,当你细心品味这杯咖啡后,你会发现,不但Java这杯咖啡还别有一番风味,而且还学会了专业游戏的开发方法,真是两全其美! 为了让大家先睹为快,下图便是游戏的截图。大家可以下载游戏试玩(下载游戏程序;下载源文件),然后在命令行方式下使用java -jar kyodai.jar来运行。此外,还可以到我的主页http://www.ismyway.com上下载这个游戏的单机版以及手机版进行试玩(见图1)。 Java咖啡馆以前介绍过AWT的知识,那么Swing和AWT究竟有什么区别呢?学习Java的人都可能听到或看到过重量级控件和轻量级控件这个字眼,AWT就是我们通常所指的重量级控件,Swing则是轻量级控件。我们都知道Java的口号是“一次编写,到处运行”,这也就要求在我们的程序中,尽量使用纯Java的代码。很不幸的是,AWT依赖与本地平台的接口,因此,在不同的操作系统上,使用AWT制作的界面看起来可能会有些细微区别。Swing则完全不同了,Swing是用纯Java编写的,因此,使用Swing编写的界面能保证在所有平台上有着同样的外观。这里还有一个窍门:在JDK中,为便于区别,所有Swing控件都以大写字母J开头,比如说JButton(AWT 中对应的是Button),这样你就很容易区分Swing控件和AWT控件了。 Swing初体验 对于想学习Swing编程的朋友,我们特地为大家准备了一些小窍门。首先,下载并阅读代码是极有必要的。由于这是一篇关于Swing的教程,所以,我们只是尽可能讲解一些与Swing有关的内容,与Swing无关的内容一般不会涉及,例如算法部分。其次,受篇幅限制,也不可能在这里将每部分代......

阅读全文(6388) | 评论:0

浅谈JAVA程序破解(2006-05-09 16:12:00)

摘要:   最近对JAVA程序的破解比较感兴趣,拿几个行业软件练了一下手,略有心得,拿出来与菜鸟分享!注意只是一点心得,本文并不涉及具体软件的破解。初学破解,失误之处在所难免,敬请高手赐教!
    直接进入正题,对JAVA的破可从下面几方面入手:

一、反编译
    工具很多,建议用GUI工具,命令行下的Jad很容易因为不能反编译某一个方法或某一行代码而终止整个文件的反编译,但GUI的工具却能搞定,虽然反编译后部分代码较难看懂,但总比看jvm指命要好得多。而且,GUI的工具多数有批量反编译功能,且能让反编译的文件直接以.java为后缀保存,也是方便之处。   浅谈JAVA程序破解
二、方法调用
    安全意识强的开发者会把他的程序进行高质量的混淆,下面就是一个例子
public static Object getRemoteEJBHome(String OOOoOo00oO0O0O0ooOoOO, Class OO0oOO0O0o0oO0o00oOoO)
throws NamingException {
  try{
    if(OoO0o0o0O0oo0oO00oOO0 == null)
     OoO0o0o0O0oo0oO00oOO0 = OoOOoOOO0Oo0OO0OooO0o();
     Object OOOOOo00000OoOoO0O000 =

      PortableRemoteObject.narrow(OoO0o0o0O0oo0oO00oOO0.lookup(OOOoOo00oO0O0O0ooOoOO), OO0oO......

阅读全文(5521) | 评论:2

简单的HTTP服务器和客户端(2006-05-09 16:09:00)

摘要: 这是服务器部分
import java.net.*;
import java.io.*;
import java.util.*;

public class HTTPServer 
{
String serverName;
  String Version;
  int serverPort;

  // 构造一个server,并运行
  public static void main(String args[])
  {
   HTTPServer server = new HTTPServer("HTTPServer", "1.0", 80);
   server.run();
  }
  // 定义server的名字、版本号、端口
  public HTTPServer(String name, String version, int port) 
  {
   this.serverName = name;
   this.Version = version;
   this.serverPort = port;
  }
 
  public void run() 
  {
   // 显示名字和版本号
         ......

阅读全文(6953) | 评论:0

下载URL的内容(2006-05-09 16:09:00)

摘要: /*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book (recommended),
 * visit http://www.davidflanagan.com/javaexamples2.
 */
import java.io.*;
import java.net.*;

/**
 *  这个......

阅读全文(4931) | 评论:0

由域名地址求IP(2006-05-09 16:08:00)

摘要:  //由命名行输入域名地址即可求出对应的IP地址。
import java.net.*;
public class nslookup{
   public static void main(String args[]) throws Exception{
      String host=args[0];
      InetAddress address=null;
      try{
           address=InetAddress.getByName(host);
       }catch(UnknownHostException e ){
       System.out.println("Unknown host");
       System.exit(0);
      }
      byte[] ip=address.getAddress();
      for(int i=0;i<ip.length;i++){
          i......

阅读全文(4764) | 评论:1

利用套接字在两人之间传文件(2006-05-09 16:08:00)

摘要:  利用套接字在两人之间传文件。(文件接受方的接受目录要先创建)
文件发送方:

import java.net.*;
import java.io.*;
public class SendFile extends Thread{
     byte byteBuffer[]= new byte[1024];
     RandomAccessFile outFile;
     ServerSocket serSocket;
     OutputStream outSocket;
     Socket tempSocket;

     public static void main(String args[]){
       SendFile sf=new SendFile();
       sf.start();
       System.out.println("wait for...");
      }

      public SendFile(){
        try{......

阅读全文(5375) | 评论:1

用JAVA程序取得IP地址(2006-05-09 16:07:00)

摘要: 在TCP/IP 互联网时,经常会需要查询自己主机的IP地址和www服务器的IP地址。虽然,我们可以使用IPCONFIG 和PING 进行IP地址查询,但是如果在应用程序或APPLET中使用此命令回破坏我们应用程序界面。 
      为此本人使用JAVA 做了一个简单的程序可以直接查询自己主机的IP地址和www服务器的IP地址。 
// 文件名为 NetTool.java (注意:在JAVA 语言中大小写敏感)
import java.net.*;
public class NetTool{
InetAddress myIPaddress=null;
InetAddress myServer=null;

public static void main( String args[]){
  NetTool mytool;
  mytool=new NetTool();
  System.out.println("Your host IP is: "+ mytool.getMyIP());
  System.out.println("The Server IP is :"+mytool.getServerIP());
 }

//取得LOCALHOST的IP地址
public InetAddress getMyIP() {
  try { myIPaddress=InetAddress.getLocalHost();}
  catch (UnknownHostExcep......

阅读全文(4332) | 评论:0

Javamail操作指南(2006-05-09 16:06:00)

摘要: Bromon原创 请尊重版权 

 怎样才算比较完整的Javamail操作指南?我想应该包括绝大多数基本的email操作,能够应付一般的应用。在本指南中打算囊括以下内容:

 ● 发送email:包括文本邮件、HTML邮件、带附件的邮件、SMTP验证
 ● 接收email:pop3远程连接、收取不同MIME的邮件、处理附件

 我想有了上述功能的介绍,应该可以应付很多email的相关应用了。所以请允许我给本文拟了一个比较狂妄的名字,这样才能保证收视率,。还是那句话,写这个post的原因就是没有在网上看到更全面的,你看过的话记得要告诉我。

 下面的所有例子都经过实际测试,你可以说它写得不够OO,不够plugable,但是它的确是可以参考的。自从有了javamail,发垃圾邮件就方便多了。本文代码多说明少,这倒不是我偷懒,而是很多东西都涉及pop3等协议的规范,如果不了解这些规范的话,由的东西我实在不知道怎么跟你解释;如果了解的话,那我基本上就不用再解释。所以本着实用的原则就省略了,由兴趣的话自己去翻翻协议规范。

 废话少说,首先需要配置环境。需要的包是mail.jar和activation.jar。高版本的J2SDK EE自带。地址嘛,再java.sun.com上搜索一下,很容易找到。放到classpath中就KO。

 一、 邮件的发送

 下面了弄个发邮件的Hello World,热热身:

 /*************
 Name:TextMailSender.java
 Author:Bromon
 Version:1.0
 Date:2004-4-26
 Note:发送email到bromon@163.com,需要安装SMTP服务器
 *************/
 package org.bromon.mail;
&nbs......

阅读全文(4074) | 评论:0