- 浏览: 89303 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhangjialu_vip:
并不是所有的递归都可以用非递归来转换呀
数据结构与算法(JAVA篇)之递归算法(一) -
sunnymoon:
cuiweibing 写道代码下不到了,还能上传个吗?多谢百度 ...
比TabActivity更灵活的工具栏实现方式 -
cuiweibing:
代码下不到了,还能上传个吗?多谢
比TabActivity更灵活的工具栏实现方式 -
yangpeihai:
感谢楼主分享成果,使用这个例子的朋友要记得导入spring-m ...
Junit+Spring测试 -
scylwhy:
hi, 这个能start一个mapactivity么?
比TabActivity更灵活的工具栏实现方式
以下是我在大三时,武林外传游戏还在公测时写的一个外挂,辅助玩游戏。以前在大学时用着很好用,和大家共享出来。希望有朋友能够进行重构,发布一些更好用的JAVA实现的外挂程序。
由于这是本人的处女做,所以代码结构有些乱,但由于程序本身并不是很复杂,有心人是一定会看懂的,此外还有一些简单的注释。
由于当时不会使用IDE,仅用记事本写的,所以写得比较辛苦,也花费了较长时间。希望对大家能够有所帮助。
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; //主类 public class Action { static int TimeNumber=0; public static void main(String[] args) { ViewFlow vf=new ViewFlow(); vf.addActionlistener(); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyActionListener2 implements ActionListener//核心类(实现主要功能) { static int ip=0; public void actionPerformed(ActionEvent e2) { try { Robot robot=new Robot(); int x=73,y=23, x2=ViewFlow.slider1.getValue(), y2=23, x3=228,y3=26, x4=0,y4=0; /* int i=ViewFlow.slider1.getValue(),j=23,k=0; { try { Robot rb=new Robot(); while(k<1) { rb.mouseMove(i,j); rb.getPixelColor(i,j); System.out.print((k++)+": "+rb.getPixelColor(i,j)+": "); System.out.println("(i="+(i++)+",j="+j+");"); } } catch(AWTException e3){} } */ if(robot.getPixelColor(x,y).equals(new Color(255,75,53))&&MyActionListener2.ip==1)//自动打怪 { robot.keyPress(KeyEvent.VK_5);//捡东西 if( robot.getPixelColor(x3,y3).equals(new Color(255,107,87)) ||robot.getPixelColor(x3,y3).equals(new Color(255,107,86))) { robot.keyPress(KeyEvent.VK_1);//技能1 //robot.keyPress(KeyEvent.VK_2);//技能2 //robot.keyPress(KeyEvent.VK_3);//技能3 //robot.keyPress(KeyEvent.VK_4);//打怪1 } else { robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); } } //System.out.println(MyActionListener.myTimer.getDelay());//改变加血速度测试 if(!robot.getPixelColor(x,y).equals(new Color(255,75,53))) { ViewFlow.setText1("提示:请启动游戏"); //System.out.println(ViewFlow.slider1.getValue());//测试1 //System.out.println(ViewFlow.slider2.getValue());//测试2 } else if( robot.getPixelColor(x2,y2).equals(new Color(255,75,53)) //加血位置与血的颜色相等 ||robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2)) //加血位置与指定的理想的血的位置的颜色相等 /* ||robot.getPixelColor(x2,y2).equals(new Color(255,159,147)) //加血位置与指血的颜色1比较 ||robot.getPixelColor(x2,y2).equals(new Color(247,193,186)) //加血位置与指血的颜色2比较 ||robot.getPixelColor(x2,y2).equals(new Color(228,103,88)) //加血位置与指血的颜色3比较 ||robot.getPixelColor(x2,y2).equals(new Color(245,72,51)) //加血位置与指血的颜色4比较 ||robot.getPixelColor(x2,y2).equals(new Color(255,183,174)) //加血位置与指血的颜色5比较 ||robot.getPixelColor(x2,y2).equals(new Color(228,91,75)) //加血位置与指血的颜色6比较 ||robot.getPixelColor(x2,y2).equals(new Color(248,73,52)) //加血位置与指血的颜色7比较 ||robot.getPixelColor(x2,y2).equals(new Color(225,195,188)) //加血位置与指血的颜色8比较 ||robot.getPixelColor(x2,y2).equals(new Color(235,141,130)) //加血位置与指血的颜色9比较 ||robot.getPixelColor(x2,y2).equals(new Color(235,69,49)) //加血位置与指血的颜色10比较 ||robot.getPixelColor(x2,y2).equals(new Color(239,154,144)) //加血位置与指血的颜色11比较 */ ) { ViewFlow.setText1("不需加血"); } else if( robot.getPixelColor(x,y).equals(new Color(255,75,53))//加血 &&!robot.getPixelColor(x,y).equals(robot.getPixelColor(x2,y2)) ) { robot.keyPress(KeyEvent.VK_F8);//加血的键位 //ViewFlow.setText1("自动加血开始"); } } catch(AWTException eException1){} } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyActionListener3 implements ActionListener { public void actionPerformed(ActionEvent e3) { MyActionListener.myTimer.stop(); ViewFlow.setText1(" 外挂程序已停止"); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyActionListener4 implements ActionListener { public void actionPerformed(ActionEvent e7) { if(e7.getSource()==ViewFlow.helpMenuItem1)//打开使用帮助网页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.helpMenuItem2)//打开在线更新网页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.helpMenuItem3)//打开作者主页网页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://blog.csdn.net/SunnyJavaMoon/"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.helpMenuItem4)//打开关于网页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/10/27/1352772.aspx"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.exchangeItem1)//论坛交流 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://vip3.getbbs.com/Board/TList.aspx?BID=5177"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.exchangeItem2)//论坛主页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://ljf365.getbbs.com"); } catch(IOException eIO){} } else if(e7.getSource()==ViewFlow.jbt3)//论坛主页 { try { Runtime.getRuntime().exec("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\"http://blog.csdn.net/sunnyjavamoon/archive/2006/11/04/1366552.aspx"); } catch(IOException eIO){} } } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyActionListener implements ActionListener { static Timer myTimer=new Timer(1500,new MyActionListener2());//速度控制 public void actionPerformed(ActionEvent e) { ViewFlow.setText1(" 外挂程序启动中......"); MyActionListener.myTimer.start(); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyChangeListener1 implements ChangeListener { public void stateChanged(ChangeEvent e4) { ViewFlow.setText2("加血位置:"+ViewFlow.slider1.getValue()+"/170"); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyChangeListener2 implements ChangeListener { public void stateChanged(ChangeEvent e5) { ViewFlow.setText3("加血速度:"+ViewFlow.slider2.getValue()+" 毫秒/次"); MyActionListener.myTimer.setDelay(ViewFlow.slider2.getValue()); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; //界面类 class ViewFlow { Container jfContainer=null; JButton jbt1=null; JButton jbt2=null; static JButton jbt3=null; JPanel jp1=null; JPanel jp2=null; JPanel jp3=null; JPanel jp4=null; static JSlider slider1=null; static JSlider slider2=null; static JTextField jf1=new JTextField("请启动游戏",15); static JTextField jf2=new JTextField("加血位置:100"+"/170",15); static JTextField jf3=new JTextField("加血速度:1500"+" 毫秒/次",15); static JRadioButton jrb1=null; static JRadioButton jrb2=null; JMenuBar jmb=null; JMenu helpMenu=null; static JMenuItem helpMenuItem1=null; static JMenuItem helpMenuItem2=null; static JMenuItem helpMenuItem3=null; static JMenuItem helpMenuItem4=null; JMenu hightSet=null; static JMenuItem hightSetItem1=null; static JMenuItem hightSetItem2=null; static JMenuItem hightSetItem3=null; JMenu exchangeMenu=null; static JMenuItem exchangeItem1=null; static JMenuItem exchangeItem2=null; ButtonGroup bg=null; ViewFlow() { JFrame jf=new JFrame("武林外挂1.0"); jf.setSize(218,490); jf.setLocation(550,70); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfContainer=jf.getContentPane(); jfContainer.setLayout(new GridLayout(4,1,10,15)); //面版 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); //jp1.setSize(20,5); //jp2.setSize(30,30); jp1.setLayout(new FlowLayout(FlowLayout.CENTER,20,5)); jp2.setLayout(new FlowLayout(FlowLayout.CENTER,20,5)); jp3.setLayout(new FlowLayout(FlowLayout.CENTER,20,5)); jp1.setBorder(BorderFactory.createTitledBorder("主控制区")); jp2.setBorder(BorderFactory.createTitledBorder("加血位置调整")); jp3.setBorder(BorderFactory.createTitledBorder("加血速度调整")); jp4.setBorder(BorderFactory.createTitledBorder("打怪模式设定")); jbt1=new JButton("开启"); jbt2=new JButton("停止"); jbt3=new JButton("在线升级"); jbt3.setSize(10,20); jfContainer.add(jp1);//框架加入面版1 jfContainer.add(jp2);//框架加入面版2 jfContainer.add(jp3);//框架加入面版3 jfContainer.add(jp4);//框架加入面版4 //滑杆1 slider1=new JSlider(75,170,100); slider1.setPaintTicks(true); slider1.setMajorTickSpacing(20); slider1.setMinorTickSpacing(2); slider1.setSnapToTicks(true); //slider1.setPaintLabels(true);//显示刻度数字 slider1.setPaintTrack(true); //滑杆2 slider2=new JSlider(300,3000,1500); slider2.setPaintTicks(true); slider2.setMajorTickSpacing(300); slider2.setMinorTickSpacing(50); slider2.setSnapToTicks(true); //slider2.setPaintLabels(true);//显示刻度数字 slider2.setPaintTrack(true); //单选按键 jrb1=new JRadioButton("手动打怪"); jrb2=new JRadioButton("自动打怪"); bg=new ButtonGroup(); //菜单 jmb=new JMenuBar(); jmb.setOpaque(true); jf.setJMenuBar(jmb); hightSet=buildHeightFileNenu();//生成高级选项菜单 jmb.add(buildHeightFileNenu());//加载菜单 exchangeMenu=builExchangeFileNenu();//生成问题交流菜单 jmb.add(exchangeMenu);//加载菜单 helpMenu=buildHelpFileMenu();//生成帮助菜单 jmb.add(helpMenu);//加载菜单 //面版 jp1.add(jbt1);//面版1加入按键 jp1.add(jbt2);//面版1加入按键 jp1.add(jf1); bg.add(jrb1); bg.add(jrb2); jp2.add(slider1); jp2.add(jf2); jp3.add(slider2); jp3.add(jf3); jp4.add(jrb1); jp4.add(jrb2); jp4.add(jbt3); jf.setVisible(true); } // public JMenu buildHeightFileNenu() { JMenu file2=new JMenu("高级设置");//菜单1 hightSetItem1=new JMenuItem("加血速度");//菜单2_菜单项1 hightSetItem2=new JMenuItem("加血位置");//菜单2_菜单项2 hightSetItem3=new JMenuItem("打怪模式");//菜单3_菜单项3 file2.add(hightSetItem1); file2.addSeparator(); file2.add(hightSetItem2); file2.addSeparator(); file2.add(hightSetItem3); return file2; } public JMenu builExchangeFileNenu() { JMenu file2=new JMenu("问题交流");//菜单2 exchangeItem1=new JMenuItem("论坛交流");//菜单2_菜单项1 exchangeItem2=new JMenuItem("龙旋风论坛");//菜单2_菜单项2 file2.add(exchangeItem1); file2.addSeparator(); file2.add(exchangeItem2); return file2; } public JMenu buildHelpFileMenu()//菜单内容生成 { JMenu file1=new JMenu("帮助");//菜单3 helpMenuItem1=new JMenuItem("使用帮助");//菜单1_菜单项1 helpMenuItem2=new JMenuItem("在线更新");//菜单1_菜单项2 helpMenuItem3=new JMenuItem("作者主页");//菜单1_菜单项2 helpMenuItem4=new JMenuItem("关于");//菜单1_菜单项3 file1.add(helpMenuItem1); file1.addSeparator(); file1.add(helpMenuItem2); file1.addSeparator(); file1.add(helpMenuItem3); file1.addSeparator(); file1.add(helpMenuItem4); return file1; } public void addActionlistener() { jbt1.addActionListener(new MyActionListener()); jbt2.addActionListener(new MyActionListener3()); jbt3.addActionListener(new MyActionListener4()); slider1.addChangeListener(new MyChangeListener1()); slider2.addChangeListener(new MyChangeListener2()); jrb1.addItemListener(new MyItemListener1()); jrb2.addItemListener(new MyItemListener1()); MyActionListener4 MenuItemListener=new MyActionListener4();//菜单监视器 //帮助菜单 helpMenuItem1.addActionListener(MenuItemListener); helpMenuItem2.addActionListener(MenuItemListener); helpMenuItem3.addActionListener(MenuItemListener); helpMenuItem4.addActionListener(MenuItemListener); //高级设置 hightSetItem1.addActionListener(MenuItemListener); hightSetItem2.addActionListener(MenuItemListener); hightSetItem3.addActionListener(MenuItemListener); //问题交流 exchangeItem1.addActionListener(MenuItemListener); exchangeItem2.addActionListener(MenuItemListener); } public static void setText1(String str) { jf1.setText(str); } public static void setText2(String str) { jf2.setText(str); } public static void setText3(String str) { jf3.setText(str); } }
package game; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.lang.*; import java.io.*; class MyItemListener1 implements ItemListener { public void itemStateChanged(ItemEvent e6) { if(e6.getSource()==ViewFlow.jrb1) { MyActionListener2.ip=0;//手动 //System.out.println(ViewFlow.ip);//测试单选键1 } else if(e6.getSource()==ViewFlow.jrb2) { MyActionListener2.ip=1;//自动 //System.out.println(ViewFlow.ip);//测试单选键2 } } }
评论
55 楼
sunnymoon
2008-12-11
jack100200 写道
awary 写道
貌似和按键精灵的原理差不多..我都汗死你们了,过于关注时髦语言、高级语言写的程序,既然说到不时挂挂游戏,就连新人都会慕名去寻找门槛低的模拟按键类的脚本封装的程序,比如按键精灵、模拟精灵、按键游侠等等,2000-2001年这样的东西就起来了。不要整体都关在一个小房子里苦修绝世武功嘛,有空也得出去多走走看看整个世界的。
是的原理和按键精灵差不多,之前用按键精灵朋友的号经常被盗,所以就写出自已的东西来,不用担心有木马病毒被偷。
另外,这断代码是学生时代用Java写出来的,把它贴出来和大家分享一下Java的强大和易用,只要想的到就做得到。
此外对于一个开发者来说,语言本身不重要,只要你喜欢任何语言都可以写得出来这样的程序。虽然按键精灵用的是JavaScript脚本语言写的。
大家在一起分享一下自已玩过的玩具,不是像仁兄形容的那样。
话又说回来,真正工作中写的代码不见得比这断代码复杂,工作中的我深刻的感觉到这一点,当然我工作时间不长。
送仁兄一句话:多解决些问题,少谈些主义。
54 楼
jack100200
2008-12-10
awary 写道
貌似和按键精灵的原理差不多..
我都汗死你们了,过于关注时髦语言、高级语言写的程序,既然说到不时挂挂游戏,就连新人都会慕名去寻找门槛低的模拟按键类的脚本封装的程序,比如按键精灵、模拟精灵、按键游侠等等,2000-2001年这样的东西就起来了。不要整体都关在一个小房子里苦修绝世武功嘛,有空也得出去多走走看看整个世界的。
53 楼
lsk
2008-12-02
真是长了见识..什么时候一定要去试下.
52 楼
cpdw
2008-12-02
曾经也想写一个颜色比对的外挂,但是由于怕麻烦没有坚持下来,佩服楼主,加油
51 楼
herryhcm
2008-12-01
唉~~~
我玩游戏那会用的是 hook windows api 的方法, 做的挂 。
真是各显神通呀。。。。。
我玩游戏那会用的是 hook windows api 的方法, 做的挂 。
真是各显神通呀。。。。。
50 楼
netfork
2008-11-30
确实是很有创意,让我想起我当年写的盗取超星图片馆中电子书的软件了。。。
49 楼
form_rr
2008-11-30
楼主的创意非常好!呵呵!
但是冒险岛这个游戏好像不能用Robot类来发送键盘的key,唉!
可能是这类游戏加密了!
但是冒险岛这个游戏好像不能用Robot类来发送键盘的key,唉!
可能是这类游戏加密了!
48 楼
xueyinglan
2008-11-29
有个问题不清楚,你如何能精确知道游戏画面中的颜色值呢.
47 楼
china8jie
2008-11-29
我想知道 Rebot 這個類在哪里
46 楼
cosmic_dust
2008-11-29
不错哦,兴趣使然!长LZ比较有创新精神
45 楼
totobacoo
2008-11-28
repsihWDX 写道
支持个```第一次看到用色彩比对搞外挂。。。还以为是解析封包那种。。
取色做判断的外挂形式,太普遍了。
44 楼
sunnymoon
2008-11-27
牛人就是多,
中国什么都缺,就是不缺人才
中国什么都缺,就是不缺人才
43 楼
dlxiao
2008-11-27
武林242基址
总基址->0x0094AFFC
CALL基址->0x00947534
自动寻路CALL->0x0042A7F0
自动寻路1->0x0094D1E0
自动寻路2->0x009474E8
拾物CALL->0x00583F80
选怪CALL->0x00583FF0
接受复活CALL->0x005B1A30
死亡回城CALL->0x005B1050
请神CALL->0x005B35D0
发包CALL->0x005897C0
普通攻击CALL->0x005B0C30
技能CALL->0x004626C0
卖CALL->0x005B2540
买CALL->0x005B24C0
使用物品CALL->0x00583DB0
TABCALL->0x0045BD60
快捷F偏移->0x0000090C
快捷1偏移->0x00000900
发言->0x005898A0
NPC打开->0x005842B0
NPC关闭->0x006CAE50
PC-PUSH->0x008F54D4
星星报警->0x0094D16C
飞天->0x0045A339
穿墙->0x00406394
无限视角->0x00404DF7
总基址->0x0094AFFC
CALL基址->0x00947534
自动寻路CALL->0x0042A7F0
自动寻路1->0x0094D1E0
自动寻路2->0x009474E8
拾物CALL->0x00583F80
选怪CALL->0x00583FF0
接受复活CALL->0x005B1A30
死亡回城CALL->0x005B1050
请神CALL->0x005B35D0
发包CALL->0x005897C0
普通攻击CALL->0x005B0C30
技能CALL->0x004626C0
卖CALL->0x005B2540
买CALL->0x005B24C0
使用物品CALL->0x00583DB0
TABCALL->0x0045BD60
快捷F偏移->0x0000090C
快捷1偏移->0x00000900
发言->0x005898A0
NPC打开->0x005842B0
NPC关闭->0x006CAE50
PC-PUSH->0x008F54D4
星星报警->0x0094D16C
飞天->0x0045A339
穿墙->0x00406394
无限视角->0x00404DF7
42 楼
kingxyz
2008-11-27
这样的做法比直接改数据包安全多了!不用担心被封!
楼主的思路还是比较清晰的。
只是现在有更高级外挂版本了——ROBOTLET吧,呵呵,有兴趣的可以看下!
楼主的思路还是比较清晰的。
只是现在有更高级外挂版本了——ROBOTLET吧,呵呵,有兴趣的可以看下!
41 楼
kong_bai
2008-11-27
很好很强大....
40 楼
laozhou
2008-11-27
要是早点出来就好了,现在我都不玩网游了
39 楼
rainv
2008-11-27
谢谢,第一次看到Java还有这种用法。
38 楼
sunnymoon
2008-11-27
xixixi8899 写道
模拟鼠标键盘操作只能针对一个窗口进行,现在想挂机赚钱的外挂,都必须要一台机子开很多游戏窗口,也就是多开。模拟鼠标键盘在多开情况下就没用了。做挂一般都是找CALL的方式。不要游戏客户端的是脱机挂,那个难度更大,收入也更很可观。JAVA做那样的挂是不行的。现在做挂要过NP,多开,防封,答题,麻烦着呢。
当时正是国产游戏风行的时候,几乎没有任何安全措施,在这种情况下出现了这几段代码。
我想道高一尺,魔高一丈,总会有办法克服的。希望有免费好用的外挂给玩家们,虽然本人不玩网游。
37 楼
sunnymoon
2008-11-27
。做挂一般都是找CALL的方式。
模拟鼠标键盘操作只能针对一个窗口进行,现在想挂机赚钱的外挂,都必须要一台机子开很多游戏窗口,也就是多开。模拟鼠标键盘在多开情况下就没用了。做挂一般都是找CALL的方式。不要游戏客户端的是脱机挂,那个难度更大,收入也更很可观。JAVA做那样的挂是不行的。现在做挂要过NP,多开,防封,答题,麻烦着呢。
高手!
很久以前写的,拿出来分享一下。
xixixi8899 写道
模拟鼠标键盘操作只能针对一个窗口进行,现在想挂机赚钱的外挂,都必须要一台机子开很多游戏窗口,也就是多开。模拟鼠标键盘在多开情况下就没用了。做挂一般都是找CALL的方式。不要游戏客户端的是脱机挂,那个难度更大,收入也更很可观。JAVA做那样的挂是不行的。现在做挂要过NP,多开,防封,答题,麻烦着呢。
高手!
很久以前写的,拿出来分享一下。
36 楼
xixixi8899
2008-11-27
模拟鼠标键盘操作只能针对一个窗口进行,现在想挂机赚钱的外挂,都必须要一台机子开很多游戏窗口,也就是多开。模拟鼠标键盘在多开情况下就没用了。做挂一般都是找CALL的方式。不要游戏客户端的是脱机挂,那个难度更大,收入也更很可观。JAVA做那样的挂是不行的。现在做挂要过NP,多开,防封,答题,麻烦着呢。
发表评论
-
robotarm发布(android应用第三方开发包)
2011-12-06 11:29 1297每个人的心中都有一个机械手臂 你可以把它看成是一套 ... -
[开源项目系列]JpetStore5.0 之 查看某一类宠物
2008-12-24 11:40 1319功能1:查看某一种类宠物 系统对宠物商店中宠物的组织: ... -
[开源项目系列]JpetStore5.0 之 struts-config.xml配制文件
2008-12-22 00:05 1738<?xml version="1.0&qu ... -
[开源项目系列]JpetStore5.0 之 Web.xml配制
2008-12-21 13:04 1387由于 JpetStroe 是基于 Struts+Ibatis ... -
[开源项目系列]JpetStore5.0 之 NetBeans上完美部署(更新2008.12.18)
2008-12-17 23:43 1613JpetStore是一个很好的学习使用的开源项目,无论是对初学 ... -
和Sun一起开源(武林外传游戏外挂Java源代码) - 博客版
2008-11-25 09:12 1778以下是我在大三时,武林外传游戏还在公测时写的一个外挂 ...
相关推荐
"JAVA 实例源代码-java"这个资源提供了这样一个机会,让你能够在实践中探索和理解Java编程。 首先,让我们深入了解一下Java的基本概念。Java由Sun Microsystems(现为Oracle Corporation)于1995年发布,设计目标是...
总的来说,"java程序设计-慕课版 +课后源代码+ppt+课后题答案"这套资源为Java初学者提供了一个全面的学习路径。从理论到实践,从基础到进阶,覆盖了Java编程的各个重要方面。通过系统学习和不断实践,读者可以逐步...
以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 ...
Java源代码下载通常指的是获取Java开发工具包(JDK)中的源码,这对于开发者来说是一项重要的活动,因为源代码能够帮助他们深入理解Java语言的工作原理,进行调试和学习。Java作为一个开源项目,Oracle公司提供了源...
这个名为"SUN公司官网JAVA源代码"的压缩包很可能包含了一些Java编程的基础到高级的示例,让我们来深入探讨一下Java源代码中的关键知识点。 1. **Java语法**:Java的语法基础是任何程序员入门的起点。它包括变量声明...
在深入探讨如何在Ubuntu下安装sun-java6-jdk和eclipse之前,我们先来了解一些基础知识,这将有助于更好地理解整个安装过程。 ### Java在Linux系统中的重要性 Java是一种广泛使用的编程语言,它以其“一次编写,...
Java源代码主要由Java平台标准版(Java SE)、企业版(Java EE)和微型版(Java ME)组成,涵盖了大量的类库和框架。 1. **Java SE**:Java标准版是Java开发的基础,包括核心类库如集合、I/O、多线程、网络编程、...
本课程设计的Java程序源代码提供了一个学习和实践Java编程的宝贵资源。 首先,让我们深入理解Java程序的组成部分。一个Java程序通常由以下几个部分构成: 1. **主类(Main Class)**:Java程序的入口点,通过`...
通过阅读和理解这些源代码,开发者不仅可以学习到Java的设计原则,还能发现性能优化的技巧,甚至可以参与到开源社区,为Java的发展贡献自己的力量。对于有志于成为Java专家的人来说,这份源代码无疑是一本开放的教科...
学习这个Java拼图游戏源代码,可以帮助初学者深入理解Java编程基础,尤其是面向对象编程、GUI设计和算法实现。通过阅读和分析代码,你可以了解到如何将现实世界的游戏规则转化为计算机语言,这对于提升编程思维和...
【JAVA学习源代码】这个主题涵盖了Java编程语言的学习资源,特别是包含了"JAVA程序设计教程(附源码)"这本书的PDF格式。这是一本全面的教材,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言。Java是一种广泛...
在“Java 第1章 了解java含源代码”中,我们将会探讨Java的基础知识,包括它的历史、特性、语法以及如何阅读和理解Java源代码。 1. **Java的历史**:Java的诞生源于C++,由James Gosling领导的团队开发,旨在创造一...
JDBC 是 Sun Microsystems(现已被 Oracle 收购)为 Java 平台定义的标准 API,用于规范数据库访问,让开发者可以编写与数据库无关的代码。 首先,我们来详细了解一下 MySQL Connector/J 的功能和工作原理。这个 ...
从前面介绍的Java发展史中我们了解到OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea、UltraViolet都是从OpenJDK源码衍生出的发行版。...
JDBC 是由 Sun Microsystems 提供的一组 Java API,用于在 Java 应用程序和各种数据库之间建立连接,执行 SQL 查询以及处理结果。它提供了一种标准的方法来访问不同的数据库系统,使得开发人员无需关注底层数据库的...
在这个特定的版本——mysql-connector-java-5.1.40-bin.jar中,我们找到了这个连接器的5.1系列的一个稳定版本。 首先,让我们了解JDBC的作用。JDBC是Sun Microsystems(现为Oracle公司)为Java编程语言设计的一套...
"mysql-connector-java-gpl-5.1.36"是MySQL Connector/J的一个特定版本,发布于GPL(GNU General Public License)许可下,意味着它是开源且可自由分发的。 MySQL Connector/J 5.1.36是针对MySQL 5.1系列数据库...
Java JDK中的源代码是学习和理解Java编程语言及其运行机制的关键资源。这些源文件包含了Java开发工具集(Java Development Kit)的核心类库,涵盖了从基本的语法结构到高级特性的实现。下面我们将深入探讨这些源代码...
Java 1.7.0 开源版 OpenJDK 是一个广泛使用的开源 Java 开发和运行环境,由 OpenJDK 社区维护。OpenJDK 是 Java Development Kit (JDK) 的一个实现,遵循 GNU General Public License (GPLv2) 许可协议,允许开发者...
【标题】"sun-java6-jdk" 是Oracle公司(前身为Sun Microsystems)为Java开发环境提供的一个关键组件,它包含了Java Development Kit(JDK),是Java编程语言的基础工具集。这个压缩包文件提供了用于开发、编译、...