<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1450003752462962032</id><updated>2012-02-17T05:19:12.107+08:00</updated><category term='Solaris'/><category term='OS Virtualization'/><category term='Java'/><category term='Blog'/><category term='C/C++'/><title type='text'>Simple Life</title><subtitle type='html'>记录我看到或者想到的一些技术方面的信息</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-8707789738700764545</id><published>2009-02-24T11:19:00.003+08:00</published><updated>2009-02-24T11:25:30.000+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS Virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Solaris的虚拟化(转帖)</title><content type='html'>Solaris10的革命性功能之一 Solaris 10 N1 Grid Container&lt;br /&gt;&lt;br /&gt;最近刚刚发布的 Solaris 10 操作系统，号称Sun公司的真正意义上的里程碑式操作系统，带来了诸多突破性技术，如 Solaris Containers、动态跟踪 (DTrace)、预测性自我修复和ZFS动态文件系统等。&lt;br /&gt;比较感兴趣的是Solaris Container，也就是N1 Grid Container－－网格？！现在好像比较流行这个，Oracle 10g 也是Grid的意思。。。。&lt;br /&gt;这个Solaris Container号称可以让每个 Solaris 10 创建多达 8192 个的安全、无故障软件分区，相对于SunFire 3800/4800/6800/4900/6900/12K/15K/25K的硬件分区好像更夸张一点，感觉有点像PC上的VMware。IBM最近的P5系列也是，好像现在各大厂商都热衷于这个，叫什么server virtualization&lt;br /&gt;&lt;br /&gt;开始上手：&lt;br /&gt;root@b1000:/# uname -a&lt;br /&gt;SunOS b1000 5.10 s10_63 sun4u sparc SUNW,Sun-Blade-1000&lt;br /&gt;刚装完的系统，只有一个global zone&lt;br /&gt;root@b1000:/# zoneadm list -vc&lt;br /&gt;  ID NAME             STATUS         PATH                          &lt;br /&gt;   0 global           running        /&lt;br /&gt;&lt;br /&gt;首先创建一个目录，用来存放新的soft zone的文件。&lt;br /&gt;root@b1000:/# mkdir -p /zone/zone1&lt;br /&gt;root@b1000:/# ls -ld /zone/zone1&lt;br /&gt;drwxr-xr-x   2 root     other        512 Dec  4 14:42 /zone/zone1&lt;br /&gt;&lt;br /&gt;创建一个zone1的软分区：&lt;br /&gt;root@b1000:/# zonecfg -z zone1&lt;br /&gt;zone1: No such zone configured&lt;br /&gt;Use 'create' to begin configuring a new zone.&lt;br /&gt;zonecfg:zone1&gt;; create&lt;br /&gt;zonecfg:zone1&gt;; set zonepath=/zone/zone1&lt;br /&gt;zonecfg:zone1&gt;; set autoboot=true&lt;br /&gt;zonecfg:zone1&gt;; add net&lt;br /&gt;zonecfg:zone1:net&gt;; set address=192.168.0.101&lt;br /&gt;zonecfg:zone1:net&gt;; set physical=eri0&lt;br /&gt;zonecfg:zone1:net&gt;; end&lt;br /&gt;zonecfg:zone1&gt;; info&lt;br /&gt;zonepath: /zone/zone1&lt;br /&gt;autoboot: true&lt;br /&gt;pool:&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /lib&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /platform&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /sbin&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /usr&lt;br /&gt;net:&lt;br /&gt;        address: 192.168.0.101&lt;br /&gt;        physical: eri0&lt;br /&gt;zonecfg:zone1&gt;; verify&lt;br /&gt;zonecfg:zone1&gt;; commit&lt;br /&gt;zonecfg:zone1&gt;; ^D&lt;br /&gt;root@b1000:/#&lt;br /&gt;&lt;br /&gt;创建完成，查看zone1的信息：&lt;br /&gt;root@b1000:/# zonecfg -z zone1 info&lt;br /&gt;zonepath: /zone/zone1&lt;br /&gt;autoboot: true&lt;br /&gt;pool:&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /lib&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /platform&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /sbin&lt;br /&gt;inherit-pkg-dir:&lt;br /&gt;        dir: /usr&lt;br /&gt;net:&lt;br /&gt;        address: 192.168.0.101&lt;br /&gt;        physical: eri0&lt;br /&gt;root@b1000:/# zoneadm list -vc&lt;br /&gt;  ID NAME             STATUS         PATH                          &lt;br /&gt;   0 global           running        /                             &lt;br /&gt;   - zone1            configured     /zone/zone1&lt;br /&gt;&lt;br /&gt;安装操作系统文件刚刚配置完成的zone1：&lt;br /&gt;root@b1000:/# zoneadm -z zone1 install&lt;br /&gt;/zone/zone1 must not be group readable.&lt;br /&gt;/zone/zone1 must not be group executable.&lt;br /&gt;/zone/zone1 must not be world readable.&lt;br /&gt;/zone/zone1 must not be world executable.&lt;br /&gt;could not verify zonepath /zone/zone1 because of the above errors.&lt;br /&gt;zoneadm: zone zone1 failed to verify&lt;br /&gt;root@b1000:/# ls -ld /zone/zone1&lt;br /&gt;drwxr-xr-x   2 root     other        512 Dec  4 14:42 /zone/zone1&lt;br /&gt;root@b1000:/# chmod 0700 /zone/zone1&lt;br /&gt;root@b1000:/# ls -ld /zone/zone1&lt;br /&gt;drwx------   2 root     other        512 Dec  4 14:42 /zone/zone1&lt;br /&gt;root@b1000:/# zoneadm -z zone1 install&lt;br /&gt;Preparing to install zone &lt;zone1&gt;;.&lt;br /&gt;Copying &lt;2365&gt;; files to the zone.&lt;br /&gt;Initializing zone product registry.&lt;br /&gt;Determining zone package initialization order.&lt;br /&gt;Preparing to initialize &lt;994&gt;; packages on the zone.&lt;br /&gt;Initializing package &lt;57&gt;; of &lt;994&gt;;: percent complete: 5%&lt;br /&gt;......&lt;br /&gt;.....&lt;br /&gt;...&lt;br /&gt;这里大约需要二十分钟左右&lt;br /&gt;Initialized &lt;994&gt;; packages on zone.                                &lt;br /&gt;Zone &lt;zone1&gt;; is initialized.&lt;br /&gt;Installation of these packages generated errors: &lt;SUNWj5rt SUNWnsb SUNWmpatchmgr&gt;;&lt;br /&gt;Installation of these packages generated warnings: &lt;SUNWmoznav SUNWmozgm SUNWwbmc&lt;br /&gt;SUNWmga SUNWdclnt SUNWlvma SUNWlvmg SUNWrmui SUNWpmgr&gt;;&lt;br /&gt;The file &lt;/zone/zone1/root/var/sadm/system/logs/install_log&gt;; contains a log of the zone installation.&lt;br /&gt;root@b1000:/# zoneadm list -vc&lt;br /&gt;  ID NAME             STATUS         PATH                          &lt;br /&gt;   0 global           running        /                             &lt;br /&gt;   - zone1            installed      /zone/zone1&lt;br /&gt;&lt;br /&gt;启动这个zone：&lt;br /&gt;root@b1000:/# zoneadm -z zone1 boot&lt;br /&gt;&lt;br /&gt;进入zone1的Console：&lt;br /&gt;root@b1000:/# zlogin -C zone1&lt;br /&gt;[Connected to zone 'zone1' console]&lt;br /&gt;[NOTICE: Zone booting up]&lt;br /&gt;&lt;br /&gt;SunOS Release 5.10 Version s10_63 64-bit&lt;br /&gt;Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;Use is subject to license terms.&lt;br /&gt;Hostname: zone1&lt;br /&gt;The system is coming up.  Please wait.&lt;br /&gt;&lt;br /&gt;Select a Language&lt;br /&gt;  0. English&lt;br /&gt;  1. Simplified Chinese&lt;br /&gt;  2. Traditional Chinese&lt;br /&gt;&lt;br /&gt;Please make a choice (0 - 2), or press h or ? for help:&lt;br /&gt;&lt;br /&gt;接下来的和平时安装系统一样，设置主机名，时区，域名解析方式等等，&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;System identification is completed.&lt;br /&gt;&lt;br /&gt;rebooting system due to change(s) in /etc/default/init&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[NOTICE: Zone rebooting]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SunOS Release 5.10 Version s10_63 64-bit&lt;br /&gt;Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;Use is subject to license terms.&lt;br /&gt;Hostname: MyWeb&lt;br /&gt;The system is coming up.  Please wait.&lt;br /&gt;starting rpc services: rpcbind done.&lt;br /&gt;syslog service starting.&lt;br /&gt;Dec  4 15:18:42 MyWeb sendmail[8940]: My unqualified host name (MyWeb) unknown; sleeping for retry&lt;br /&gt;Dec  4 15:19:42 MyWeb sendmail[8940]: unable to qualify my own domain name (MyWeb) -- using short name&lt;br /&gt;WARNING: local host name (MyWeb) is not qualified; see cf/README: WHO AM I?&lt;br /&gt;/etc/mail/aliases: 12 aliases, longest 10 bytes, 138 bytes total&lt;br /&gt;Dec  4 15:19:42 MyWeb sendmail[8941]: My unqualified host name (MyWeb) unknown; sleeping for retry&lt;br /&gt;Dec  4 15:19:42 MyWeb sendmail[8942]: My unqualified host name (MyWeb) unknown; sleeping for retry&lt;br /&gt;&lt;br /&gt;STSF Font Server Daemon.&lt;br /&gt;&lt;br /&gt;Standard Type Services Framework 0.11.1&lt;br /&gt;Copyright (c) 2001-2004 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;STSF is Open Source Software. http://stsf.freedesktop.org&lt;br /&gt;&lt;br /&gt;Creating new rsa public/private host key pair&lt;br /&gt;Creating new dsa public/private host key pair&lt;br /&gt;The system is ready.&lt;br /&gt;&lt;br /&gt;哈哈，完成啦。。。。。。。。&lt;br /&gt;虚拟的主机MyWeb启动成功，登陆。。。。。&lt;br /&gt;MyWeb console login: root&lt;br /&gt;Password:&lt;br /&gt;Dec  4 15:21:53 MyWeb login: ROOT LOGIN /dev/console&lt;br /&gt;Sun Microsystems Inc.   SunOS 5.10      s10_63  May 2004&lt;br /&gt;# df -k&lt;br /&gt;Filesystem            kbytes    used   avail capacity  Mounted on&lt;br /&gt;/                    10080200 2702923 7276475    28%    /&lt;br /&gt;/dev                 10080200 2702923 7276475    28%    /dev&lt;br /&gt;/lib                 10080200 2702923 7276475    28%    /lib&lt;br /&gt;/platform            10080200 2702923 7276475    28%    /platform&lt;br /&gt;/sbin                10080200 2702923 7276475    28%    /sbin&lt;br /&gt;/usr                 10080200 2702923 7276475    28%    /usr&lt;br /&gt;proc                       0       0       0     0%    /proc&lt;br /&gt;mnttab                     0       0       0     0%    /etc/mnttab&lt;br /&gt;fd                         0       0       0     0%    /dev/fd&lt;br /&gt;swap                 2737048      48 2737000     1%    /var/run&lt;br /&gt;swap                 2737000       0 2737000     0%    /tmp&lt;br /&gt;# ifconfig -a&lt;br /&gt;lo0:1: flags=1000849&lt;UP,LOOPBACK,RUNNING,MULTICAST,IPv4&gt;; mtu 8232 index 1&lt;br /&gt;        inet 127.0.0.1 netmask ff000000&lt;br /&gt;eri0:1: flags=1000843&lt;UP,BROADCAST,RUNNING,MULTICAST,IPv4&gt;; mtu 1500 index 2&lt;br /&gt;        inet 192.168.0.101 netmask ffffff00 broadcast 192.168.0.255&lt;br /&gt;# ps -ef&lt;br /&gt;     UID   PID  PPID   C    STIME TTY         TIME CMD&lt;br /&gt;    root  9054  8810   0 15:20:20 ?           0:00 /usr/lib/saf/sac -t 300&lt;br /&gt;    root  8906  8802   0 15:18:39 ?           0:00 /usr/sbin/nscd&lt;br /&gt;    root  8802  8802   0 15:18:27 ?           0:00 zsched&lt;br /&gt;    root  9055  8810   0 15:20:20 console     0:00 -sh&lt;br /&gt;    root  8810  8802   0 15:18:38 ?           0:00 init&lt;br /&gt;    root  8899  8802   0 15:18:39 ?           0:00 /usr/lib/autofs/automountd&lt;br /&gt;  daemon  8833  8802   0 15:18:39 ?           0:00 /usr/lib/crypto/kcfd&lt;br /&gt;    root  8895  8802   0 15:18:39 ?           0:00 /usr/sbin/syslogd&lt;br /&gt;  daemon  8858  8802   0 15:18:39 ?           0:00 /usr/sbin/rpcbind&lt;br /&gt;    root  8904  8802   0 15:18:39 ?           0:00 /usr/sbin/cron&lt;br /&gt;    root  8911  8802   0 15:18:40 ?           0:00 /usr/sbin/inetd -s&lt;br /&gt;    root  8967  8963   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot&lt;br /&gt;    root  8964  8963   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot&lt;br /&gt;    root  8949  8802   0 15:19:43 ?           0:00 /usr/lib/utmpd&lt;br /&gt;    root  8965  8802   0 15:19:43 ?           0:00 /usr/lib/im/htt -port 9010 -s&lt;br /&gt;yslog -message_locale C&lt;br /&gt;    root  8963  8802   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot&lt;br /&gt;    root  8966  8965   0 15:19:43 ?           0:00 htt_server -port 9010 -syslog&lt;br /&gt;-message_locale C&lt;br /&gt;    root  9030  8802   0 15:19:45 ?           0:00 /usr/lib/dmi/snmpXdmid -s MyW&lt;br /&gt;eb&lt;br /&gt;    root  9058  8802   0 15:20:20 ?           0:00 /usr/lib/ssh/sshd&lt;br /&gt;    root  9057  9054   0 15:20:20 ?           0:00 /usr/lib/saf/ttymon&lt;br /&gt;  daemon  8974  8802   0 15:19:44 ?           0:02 /usr/lib/ST/stfontserverd&lt;br /&gt;    root  9028  8802   0 15:19:45 ?           0:00 /usr/lib/dmi/dmispd&lt;br /&gt;    root  9059  8802   0 15:20:43 ?           0:00 /usr/lib/sendmail -bd -q15m&lt;br /&gt;    root  9022  8802   0 15:19:45 ?           0:00 /usr/lib/snmp/snmpdx -y -c /e&lt;br /&gt;tc/snmp/conf&lt;br /&gt;    root  8999  8802   0 15:19:44 ?           0:00 /usr/dt/bin/dtlogin -daemon&lt;br /&gt;    root  9042  8802   0 15:19:46 ?           0:00 /usr/sfw/sbin/snmpd&lt;br /&gt;   smmsp  9060  8802   0 15:20:43 ?           0:00 /usr/lib/sendmail -Ac -q15m&lt;br /&gt;    root  9069  9055   0 15:22:47 console     0:00 ps -ef&lt;br /&gt;不用的Sendmail停掉&lt;br /&gt;# mv /etc/rc2.d/S88sendmail /etc/rc2.d/s88sendmail&lt;br /&gt;# /etc/init.d/sendmail stop&lt;br /&gt;# prtdiag -v&lt;br /&gt;prtdiag can only be run in the global zone&lt;br /&gt;哦，prtdiag不能在zone里用&lt;br /&gt;&lt;br /&gt;prtconf有信息出来：&lt;br /&gt;# prtconf&lt;br /&gt;System Configuration:  Sun Microsystems  sun4u&lt;br /&gt;Memory size: 1024 Megabytes&lt;br /&gt;System Peripherals (Software Nodes):&lt;br /&gt;&lt;br /&gt;prtconf: devinfo facility not available&lt;br /&gt;&lt;br /&gt;# exit&lt;br /&gt;&lt;br /&gt;按 ~ 然后按 . 退出zone1的Console，回到global zone，也就是真正的B1000&lt;br /&gt;MyWeb console login: ~.&lt;br /&gt;[Connection to zone 'zone1' console closed]&lt;br /&gt;root@b1000:/#&lt;br /&gt;root@b1000:/#&lt;br /&gt;root@b1000:/# zoneadm list -vc&lt;br /&gt;  ID NAME             STATUS         PATH                          &lt;br /&gt;   0 global           running        /                             &lt;br /&gt;   1 zone1            running        /zone/zone1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;root@b1000:/# telnet 192.168.0.101&lt;br /&gt;Trying 192.168.0.101...&lt;br /&gt;Connected to 192.168.0.101.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;login: root&lt;br /&gt;Password:&lt;br /&gt;Not on system console&lt;br /&gt;Connection to 192.168.0.101 closed by foreign host.&lt;br /&gt;忘改/etc/default/login了。。。。。。。。。。。&lt;br /&gt;总结：&lt;br /&gt;1. 提高了系统的利用率，可以一个当N个使唤&lt;br /&gt;2. 应用系统可以跑在互不干扰的动态系统域里&lt;br /&gt;3. 完全可以把一个zone的root密码告诉别人，用来练手不错，整瘫了大不了&lt;br /&gt;   zoneadm -z zone1 uninstall再zoneadm -z zone1 install就ok了&lt;br /&gt;4. 应该还有许多好玩的功能待发掘。&lt;br /&gt;更多内容参考: &lt;a href="http://www.sun.com/bigadmin/content/zones/"&gt;http://www.sun.com/bigadmin/content/zones/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-8707789738700764545?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/8707789738700764545/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2009/02/solaris.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/8707789738700764545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/8707789738700764545'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2009/02/solaris.html' title='Solaris的虚拟化(转帖)'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-5816235637993506148</id><published>2009-02-21T22:10:00.002+08:00</published><updated>2009-02-21T22:13:22.787+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>BlogSpot模板</title><content type='html'>虽然百度的Blog比较好访问一些。但是我还是喜欢Google的产品。Google的东西在功能和习惯上更加适合我。&lt;br /&gt;有一个比较好的Blog Template的网站:&lt;br /&gt;http://btemplates.com/&lt;br /&gt;&lt;br /&gt;如果我以后发现了不错的模版网站的话，我也会加到这里面来。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-5816235637993506148?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/5816235637993506148/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2009/02/blogspot.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/5816235637993506148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/5816235637993506148'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2009/02/blogspot.html' title='BlogSpot模板'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-3000690781479736553</id><published>2007-05-12T16:43:00.001+08:00</published><updated>2009-02-20T17:13:39.966+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>C++ 创建Jvm</title><content type='html'>http://it.bbs.tongfu.net/tpc/3/9/16565.htm&lt;br /&gt;&lt;br /&gt;有时用户已经安装了自己的jdk或者jre,如果想创建自己想要的版本的jdk会受到影响.&lt;br /&gt;因此改成从自己指定的目录手动加载jvm.dll来创建Java虚拟机.&lt;br /&gt;//通过下面的代码来自定义jvm的路径&lt;br /&gt; HINSTANCE handle = LoadLibrary(L"G:\\VisualProjects\\JNITest\\debug\\jre1.5.0\\bin\\client\\jvm.dll"); &lt;br /&gt; &lt;br /&gt; if( handle == 0)&lt;br /&gt; {&lt;br /&gt;  printf("Failed to load jvm dll\n");&lt;br /&gt;  exit(-1);&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  printf("Load jvm dll success\n");&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; typedef int  (__stdcall  * CreateJavaVM)(JavaVM**,void **,JavaVMInitArgs *);&lt;br /&gt;&lt;br /&gt; CreateJavaVM createJVM = (CreateJavaVM)GetProcAddress(handle,"JNI_CreateJavaVM");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; createJVM(&amp;jvm, (void **)&amp;env, &amp;args);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-3000690781479736553?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/3000690781479736553/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2007/05/c-jvm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/3000690781479736553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/3000690781479736553'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2007/05/c-jvm.html' title='C++ 创建Jvm'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-4282059069582915206</id><published>2007-05-09T21:20:00.001+08:00</published><updated>2009-02-20T17:12:18.234+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java应用程序中上传文件到web服务器</title><content type='html'>应用HttpClient和UploadFile在应用程序中上传文件:&lt;br /&gt;&lt;br /&gt;http://www.theserverside.com/tt/articles/article.tss?l=HttpClient_FileUpload&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-4282059069582915206?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/4282059069582915206/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2007/05/javaweb.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/4282059069582915206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/4282059069582915206'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2007/05/javaweb.html' title='Java应用程序中上传文件到web服务器'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-5636978018596933629</id><published>2007-05-04T07:57:00.001+08:00</published><updated>2009-02-20T17:12:51.883+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>jstring和wstring的双向转换</title><content type='html'>wstring wstr = (wchar_t *)env-&gt;GetStringChars(jstr, NULL);&lt;br /&gt; &lt;br /&gt;jstring jstr = env-&gt;NewString((jchar *)wstr.c_str(), wstr.length());&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-5636978018596933629?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/5636978018596933629/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2007/05/jstringwstring.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/5636978018596933629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/5636978018596933629'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2007/05/jstringwstring.html' title='jstring和wstring的双向转换'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1450003752462962032.post-2688151395663234057</id><published>2007-05-03T10:40:00.000+08:00</published><updated>2009-02-20T17:11:35.764+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title type='text'>C++中的Wstring和string的转换</title><content type='html'>//Converting a WChar string to a Ansi stringstring WChar2Ansi(LPCWSTR pwszSrc){ int nLen = WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL);&lt;br /&gt;if (nLen&lt;= 0) return string("");&lt;br /&gt;char* pszDst = new char[nLen];&lt;br /&gt;if (NULL == pszDst) return string("");&lt;br /&gt;WideCharToMultiByte(CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL); pszDst[nLen -1] = 0;&lt;br /&gt;string strTemp(pszDst); delete [] pszDst;&lt;br /&gt;return strTemp;}&lt;br /&gt;string ws2s(wstring&amp; inputws){ return WChar2Ansi(inputws.c_str()); }&lt;br /&gt;//Converting a Ansi string to WChar stringwstring Ansi2WChar(LPCSTR pszSrc, int nLen){ int nSize = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pszSrc, nLen, 0, 0); if(nSize &lt;= 0) return NULL;&lt;br /&gt;WCHAR *pwszDst = new WCHAR[nSize+1]; if( NULL == pwszDst) return NULL;&lt;br /&gt;MultiByteToWideChar(CP_ACP, 0,(LPCSTR)pszSrc, nLen, pwszDst, nSize); pwszDst[nSize] = 0;&lt;br /&gt;if( pwszDst[0] == 0xFEFF) // skip Oxfeff for(int i = 0; i &lt; nSize; i ++) pwszDst[i] = pwszDst[i+1];&lt;br /&gt;wstring wcharString(pwszDst); delete pwszDst;&lt;br /&gt;return wcharString;}&lt;br /&gt;wstring s2ws(const string&amp; s){ return Ansi2WChar(s.c_str(),s.size());}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1450003752462962032-2688151395663234057?l=fanyijun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fanyijun.blogspot.com/feeds/2688151395663234057/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://fanyijun.blogspot.com/2007/05/cwstringstring.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/2688151395663234057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1450003752462962032/posts/default/2688151395663234057'/><link rel='alternate' type='text/html' href='http://fanyijun.blogspot.com/2007/05/cwstringstring.html' title='C++中的Wstring和string的转换'/><author><name>范毅军</name><uri>http://www.blogger.com/profile/10110105567271882653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
