??xml version="1.0" encoding="utf-8" standalone="yes"?>91麻豆产精品久久久久久,久久综合九色欧美综合狠狠,深夜福利视频在线免费观看http://www.aygfsteel.com/Reg/category/45435.htmlzh-cnThu, 28 Jun 2012 10:43:42 GMTThu, 28 Jun 2012 10:43:42 GMT60|络_(IP地址切换?v2.0.0.3 final <font color=red>附AU3源码</font>Q更斎ͼhttp://www.aygfsteel.com/Reg/archive/2012/06/19/381088.html艾L艾LTue, 19 Jun 2012 05:05:00 GMThttp://www.aygfsteel.com/Reg/archive/2012/06/19/381088.htmlhttp://www.aygfsteel.com/Reg/comments/381088.htmlhttp://www.aygfsteel.com/Reg/archive/2012/06/19/381088.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/381088.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/381088.html|络_ v2.0.0.3
软g说明Q适合多网l办公用,到杀软提C,请允讔R过Q如360
应用q_Q?a class="linkwin7" >Win7/Vista/WinXP/
软g大小Q?96 KB
~写语言QAU3
作者邮:1015208770@163.com
下蝲地址1Q?/strike>http://www.aygfsteel.com/Files/Reg/NetworkSpirit.rar(内部函数调用有时候出C正常的问?
下蝲地址2Q?a href="http://www.aygfsteel.com/Files/Reg/NetworkSpirit.rar">http://www.aygfsteel.com/Files/Reg/NetworkSpirit.zip(q个?.0.0.4版本Q更C个版本号Q修复上个版本内部函数调用问?
源码地址1Q?a href="http://www.aygfsteel.com/Files/Reg/NetworkSpirit(code).rar">http://www.aygfsteel.com/Files/Reg/NetworkSpirit(code).rar(2.0.0.3源码)

MD5:
文g版本: 2.0.0.3
修改旉: 2012-06-19, 12:34:44
MD5: 09CBAE1D6436C4EAE867AB802140E26F
SHA1: 4B2DA60F609948A46989C417E44C17515B8FAA9B
CRC32: D3A9D77E

更新说明Q?br />1.源代码重?br />2.全新UI
3.正式更名为网l精?IP地址切换?

功能说明Q?br />1.支持多模式切?br />2.自动屏蔽VMware虚拟|卡讄
3.自动判断|线是否已连?br />
软g截图Q?br />



艾L 2012-06-19 13:05 发表评论
]]>
<font color=red>advanced systemcare 5.2注册?lt;/font>http://www.aygfsteel.com/Reg/archive/2012/04/06/373431.html艾L艾LFri, 06 Apr 2012 01:21:00 GMThttp://www.aygfsteel.com/Reg/archive/2012/04/06/373431.htmlhttp://www.aygfsteel.com/Reg/comments/373431.htmlhttp://www.aygfsteel.com/Reg/archive/2012/04/06/373431.html#Feedback2http://www.aygfsteel.com/Reg/comments/commentRss/373431.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/373431.html
一ƾ能分析pȝ性能瓉的优化Y件。它通过对系l全方位的诊断,扑ֈpȝ性能的瓶颈所在,然后有针Ҏ(gu)地q行修改、优化。此外它q具有间谍Y件和恶意软g扫描清除功能Q也能将你的隐私信息从电(sh)脑中抚w。针对个人免费用。Advanced
WindowsCare Personal已更名ؓAdvanced SystemCare?br />注册?
79818-39C67-6AD87-1B8D4

艾L 2012-04-06 09:21 发表评论
]]>
a different object with the same identifier value was already associated with the sessionhttp://www.aygfsteel.com/Reg/archive/2011/04/05/347655.html艾L艾LTue, 05 Apr 2011 14:26:00 GMThttp://www.aygfsteel.com/Reg/archive/2011/04/05/347655.htmlhttp://www.aygfsteel.com/Reg/comments/347655.htmlhttp://www.aygfsteel.com/Reg/archive/2011/04/05/347655.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/347655.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/347655.htmlq个错误我一共遇到过两次Q一直没有找到很好的解决Ҏ(gu)Q这个错误生原因相信大安知道Q因为在hibernate中同一个session里面有了两个相同标识但是是不同实?
一开始按|上说的用session.merge(Object)报了一个错Q可能是没有用好Q改?nbsp;session.clear(); session.update(user);q样O(jin)K?
Ҏ(gu)为:

package org.springframework.orm.hibernate3.support;

    
public void modifyByMerge(User user) {
        Session session 
= getHibernateTemplate().getSessionFactory().
                          getCurrentSession();
        session.clear();
        session.update(user);
    }

目用的是spring 
+ hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session



艾L 2011-04-05 22:26 发表评论
]]>
数据库服务管理工?V2.0.0.1(原创Q望大家拍砖)http://www.aygfsteel.com/Reg/archive/2011/03/30/347285.html艾L艾LWed, 30 Mar 2011 07:23:00 GMThttp://www.aygfsteel.com/Reg/archive/2011/03/30/347285.htmlhttp://www.aygfsteel.com/Reg/comments/347285.htmlhttp://www.aygfsteel.com/Reg/archive/2011/03/30/347285.html#Feedback1http://www.aygfsteel.com/Reg/comments/commentRss/347285.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/347285.html数据库服务管理工?nbsp;V2.0.0.1
创始之初:在开发过E中Q烦于每ơ开机后都要用命令打开servers.msc启动服务Q或者把要启动的服务写成一个BAT 文gq行服务。我有点不太喜欢黑忽忽的H口Q所以了用AU3写了个小E序用来理q些服务?br /> 功能Q?br /> 1.支持oracle,sqlserver,mysql数据库服?br /> 2.支持讄服务启动模式
3.支持扚w启动服务
4.支持Windows(XP,VISTA,2008,7),其他Windowspȝ׃旉问题没来得急测试?br /> 注意:
1.oracle的监听器必需配置正确(下版改q这个问?

本地下蝲:http://www.aygfsteel.com/Files/Reg/数据库服务管理工?rar
分流地址:http://down.51cto.com/data/184705

艾L 2011-03-30 15:23 发表评论
]]>
让大背景囄不媄响网站加载速度http://www.aygfsteel.com/Reg/archive/2010/08/30/330279.html艾L艾LMon, 30 Aug 2010 06:25:00 GMThttp://www.aygfsteel.com/Reg/archive/2010/08/30/330279.htmlhttp://www.aygfsteel.com/Reg/comments/330279.htmlhttp://www.aygfsteel.com/Reg/archive/2010/08/30/330279.html#Feedback1http://www.aygfsteel.com/Reg/comments/commentRss/330279.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/330279.html<img src="/a.php?url=高质量大囄.jpg" width="88" height="98" hspace="5" vspace="5" border="0" lowsrc="/a.php?url=低质量图?jpg" />

艾L 2010-08-30 14:25 发表评论
]]>
囄上传q生成羃略图 http://www.aygfsteel.com/Reg/archive/2010/08/29/330183.html艾L艾LSun, 29 Aug 2010 08:11:00 GMThttp://www.aygfsteel.com/Reg/archive/2010/08/29/330183.htmlhttp://www.aygfsteel.com/Reg/comments/330183.htmlhttp://www.aygfsteel.com/Reg/archive/2010/08/29/330183.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/330183.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/330183.html1.负责处理囑֤的bean:
//---------------------------------------------------------------
package bean;

import javax.imageio.ImageIO;
import javax.imageio.IIOException;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.awt.image.AffineTransformOp;
import java.awt.geom.AffineTransform;

public class convertImage {


private String fileInput ;
private String fileOutput ;

public convertImage()
{

}
public String getFileInput() {
return fileInput;
}
public 
void setFileInput(String fileInput) {
this.fileInput = fileInput;
}
public String getFileOutput() {
return fileOutput;
}
public 
void setFileOutput(String fileOutput) {
this.fileOutput = fileOutput;
}

public 
void convert()
{
try {
File fi 
= new File(fileInput); //大图文g
File fo = new File(fileOutput); //要转换出的图文g
int nw = 150//定义宽ؓ150
int nh = 100//定义高ؓ100
AffineTransform transform = new AffineTransform();
BufferedImage bis 
= ImageIO.read(fi);
int w = bis.getWidth();
int h = bis.getHeight();

double sx = (double)nw/w;
double sy = (double)nh/h ;
//判断是横向图形还是坚向图?/span>
if ( w > h ) //横向囑Ş
{
if ( (int)(sx * h ) > nh ) //比较高不W合高度要求,按高度比例
{

 

sx 
= sy ;
nw 
= (int)(w*sx) ;
}
else
{
sy 
= sx ;
nh 
= (int)( h*sy) ;
}
}
else
{
if ( (int)(sy * w ) > nw ) 
{
sy 
= sx ;
nh 
= (int)(h * sy ) ;
}
else
{
sx 
= sy ;
nw 
= (int)(w*sx) ;
}
}

transform.setToScale(sx,sy);
AffineTransformOp ato 
= new AffineTransformOp(transform,null);
BufferedImage bid 
= new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,
"jpeg",fo);

catch(Exception e) 
{
e.printStackTrace();
}

}

2.上传文g的upload.jsp
--------------------------------------------------------------------
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>My JSP 'upload.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
<html:form action="/upload.do" enctype="multipart/form-data">
<html:file property="theFileone"/>
<html:submit/>
</html:form>

</body>
</html>
//------------------------------------------------------------------------
3.昄成功面

//------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=GB2312" %>
<%
String path 
= request.getContextPath();
String basePath 
= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'display.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
上传成功. 
<br>
</body>
</html>
//---------------------------------------------------------------------
4.Action 
//Created by MyEclipse Struts
//
 XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.1/xslt/JavaClass.xsl

package com.mk.struts.action;

import java.io.
*;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.mk.struts.form.UploadForm;

import bean.convertImage;

/*
* MyEclipse Struts
* Creation date: 03-28-2006

* XDoclet definition:
* @struts.action validate="true"
*/
public class UploadAction extends Action {

// --------------------------------------------------------- Instance Variables

// --------------------------------------------------------- Methods

/*
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

// TODO Auto-generated method stub
String encoding = request.getCharacterEncoding() ;
if ( (encoding != null )&& (encoding.equalsIgnoreCase("uft-8")))
{
response.setContentType(
"text/html;charset=gb2312") ; //如果没有扑֮~码Q编码格式设为gb2312 
}

UploadForm theForm 
= (UploadForm) form ;
FormFile fileone 
= theForm.getTheFileone() ; //取得上传的文件名

try
{
//开始上传文?/span>
String filePath = this.getServlet().getServletContext().getRealPath("/") ; //取得当前路径
InputStream stream = fileone.getInputStream() ; //把文件读?/span>
ByteArrayOutputStream baos = new ByteArrayOutputStream() ;

/*
* 建立一个上传文件的输出如果是linuxpȝh"\\" 换成 "/"
*/
OutputStream bos 
= new FileOutputStream(filePath + fileone.getFileName()) ;

request.setAttribute(
"fileName",filePath + "/" + fileone.getFileName() ) ;
int bytesRead = 0 ;
byte[] buffer = new byte[8192] ;
while( (bytesRead = stream.read(buffer,0,8192) ) != -1 )
{
bos.write(buffer,
0,bytesRead) ;
}

bos.close();
stream.close() ; 

//上传文g完成
String oldurl= filePath + fileone.getFileName() ;
String newurl
= filePath + "min_" + fileone.getFileName() ; //新的~略图保存地址

convertImage convert 
= new convertImage() ;
convert.setFileInput(oldurl) ;
convert.setFileOutput(newurl) ;
convert.convert() ;

}

catch(Exception e)
{
System.err.print(e) ;
}
return mapping.findForward("display");
}

}
来源:http://www.ideagrace.com/html/doc/2006/04/21/00776.html

艾L 2010-08-29 16:11 发表评论
]]>
如何在一台机器上启动多个Tomcat http://www.aygfsteel.com/Reg/archive/2010/07/24/327020.html艾L艾LSat, 24 Jul 2010 08:53:00 GMThttp://www.aygfsteel.com/Reg/archive/2010/07/24/327020.htmlhttp://www.aygfsteel.com/Reg/comments/327020.htmlhttp://www.aygfsteel.com/Reg/archive/2010/07/24/327020.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/327020.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/327020.html在有些应用中Q有旉要在一台机器上启动两个或多个TomcatQ如Tomcat+Eclipse+Geoserver应用中:

Ҏ(gu)Q?br /> 1、修改Server.xml
 所有涉及到端口的数字的首数字加1Q具体情况可视需要而定Q只要该端口没有被占用即可?br />  
 如:
 
    
<!-- Define an AJP 1.3 Connector on port 8009 -->
    
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443"/>


    
<!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them

2、修改Startup.bat

?nbsp;if not "%CATALINA_HOME%" == "" goto gotHome 语句注释掉,
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
rem if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR% 


艾L 2010-07-24 16:53 发表评论
]]>
新徏帐套报错问题解决Ҏ(gu)http://www.aygfsteel.com/Reg/archive/2010/07/11/325764.html艾L艾LSat, 10 Jul 2010 19:40:00 GMThttp://www.aygfsteel.com/Reg/archive/2010/07/11/325764.htmlhttp://www.aygfsteel.com/Reg/comments/325764.htmlhttp://www.aygfsteel.com/Reg/archive/2010/07/11/325764.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/325764.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/325764.htmlsp_configure 'show advanced options',1
reconfigure
go
sp_configure 
'xp_cmdshell',1
reconfigure
go

艾L 2010-07-11 03:40 发表评论
]]>
JNI之C++调用Javac?—?java.lang.Stringhttp://www.aygfsteel.com/Reg/archive/2009/11/18/302772.html艾L艾LWed, 18 Nov 2009 03:01:00 GMThttp://www.aygfsteel.com/Reg/archive/2009/11/18/302772.htmlhttp://www.aygfsteel.com/Reg/comments/302772.htmlhttp://www.aygfsteel.com/Reg/archive/2009/11/18/302772.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/302772.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/302772.html原文

JNI之C++调用Javac?—?java.lang.String

    Z么要用C++调用Javac?很难回答Q写着文章只是觉得JNI很有意思。于是开始编写一D用VC++在Windowspȝ里调用java的Stringc,在C++里调用Stringcd的一些方法?/p>

    JNI已经被开发了很多q_而在?q多的Java~程旉里从来没有接触过。直到最q研IJVM实现原理才注意到JNI?JNI既Java Native InterfaceQNativeq个词我见过我认为最恰当的翻译就是原生。原生的意思就是来自系l自qQ原汁原味的东西Q例如Win32 API。Javac需要在虚拟Zq行Q也׃是原生的Q同?NET Framework也不是原生的。JNI也就是Java原生接口。关于JNI的规范,以及Z么要使用它,它能做些什么,都在http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/jniTOC.html里记q着?/p>

    JNI是规范,它规定了虚拟机的接口Q而把具体的实现留l开发者?/p>

    JVM的实C是唯一的,目前存在很多UJava虚拟机,Sun HotspotQIBM JDKQ还有HP的,Kaffe{等。最行的就是Sun的HotspotQ最复杂的就是IBM JDKQ这是IBM的一贯作风。本文不讨论JVM的实玎ͼ只关注JNI。如果?zhn)安装了Sun的JDKQ?zhn)p在[JAVA_HOME]\include目录下找到jni.h。这个头文g是虚拟机的唯一接口Q你可以调用它声明的函数创徏一个JVM?/p>

    在说明C++调用JavacM前,我想先演CZ下如果编写Java Native Method?/p>

1Q编写带有NativeҎ(gu)的Javac?/p>

package org.colimas.jni.test;

public class JniTest {

    static { System.loadLibrary("JniTestImpl"); }  //JVM调用JniTestImpl.dll

    public JniTest(){
    }

    //原生Ҏ(gu)
    public native void print(String str);

    /**
    * @param args
    */
    public static void main(String[] args) {
            JniTest test=new JniTest();
            test.print("hello JVM"); //调用原生Ҏ(gu)
    }
}

2Q用javah生成c语言头文件?/p>

javah -jni org.colimas.jni.test.JniTest

目录里多了一个org_colimas_jni_test_JniTest.h文gQ打开文gQ内容如?

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class org_colimas_jni_test_JniTest */


#ifndef _Included_org_colimas_jni_test_JniTest
#define _Included_org_colimas_jni_test_JniTest
#ifdef __cplusplus

extern "C" {

#endif

/*
 * Class:     org_colimas_jni_test_JniTest
 * Method:    print
 * Signature: (Ljava/lang/String;)V
 */

JNIEXPORT void JNICALL Java_org_colimas_jni_test_JniTest_print
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}

#endif
#endif


其中的Java_org_colimas_jni_test_JniTest_print是JniTestc里面的print原生Ҏ(gu)的C语言声明?/p>

3Q编写C代码实现原生Ҏ(gu)print

#include <jni.h>
#include "org_colimas_jni_test_JniTest.h" //javah生成的头文g
#include <stdio.h>

JNIEXPORT void JNICALL Java_org_colimas_jni_test_JniTest_print
  (JNIEnv *env, jobject object,jstring str)
{
       //获得字符?br />        const char * txt=(*env)->GetStringUTFChars(env,str,0);
       printf("%s\n",txt); //打印到控制台
       return;
}


参数JNIEnv *envQ是JNI里最重要的变量。Java.exe创徏JVMQ之后JVM生成一个envQ该env相当于JVM内的SessionQ可以完成创建Java对象Q调用类Ҏ(gu)Q获得类的属性等{?/p>

在这里env方法的参数Str从JNI的jstringcd转换为常数char数组?/p>

4Q编?/p>

cl  /Ic:\j2sdk1.4.2_10\include /Ic:\j2sdk1.4.2_10\include\win32 /c  JniTestImpl.c

5Q连接ؓDLL

link /dll JniTestImpl.obj

6Q设|PATH

set PATH=C:\MyProject\Colimas\CD\JNI\MyJNI;%PATH%

7Q运?/p>

java org.colimas.jni.test.JniTest

q回l果

hello JVM

l束

    以上是实现Java原生Ҏ(gu)的开发过E,下面q入正题Q用C++调用Java的java.lang.StringcR?/p>

1. Objectcd创徏JVM?/p>

使用JavacM前必要创徏JVM环境。JDK由java.exe来完成。本文有Objectcȝ静态方法BeginJVM来创建,用EndJVM来关闭?/p>

创徏JVM之后会在创徏2个变量,分别是JNIEnv* env和JavaVM* jvmQJNIEnv上文已经说明QJavaVMQ顾名思义Q代表Java虚拟机,用它来关闭JVM?/p>

Objectcȝ头文?/p>

#include "jni.h"

class Object
{
public:
    static bool BeginJVM();
    static bool EndJVM();
    Object();
    virtual ~Object();

protected:
    static JNIEnv* env;
    static JavaVM* jvm;
};

object.cpp代码

#include "stdafx.h"
#include "JavaClasses.h"
#include "Object.h"

Object::Object()
{}

Object::~Object()
{}

JNIEnv* Object::env=NULL;
JavaVM* Object::jvm=NULL;

//创徏JVM

bool Object::BeginJVM()
{

    JavaVMOption options[3];
    JavaVMInitArgs vm_args;

    //各种参数
    options[0].optionString="-Xmx128m";
    options[1].optionString="-Verbose:gc";
    options[2].optionString="-Djava.class.path=.";

    vm_args.version=JNI_VERSION_1_2;
    vm_args.options=options;
    vm_args.nOptions=3;

    //创徏JVMQ获得jvm和env
    int res = JNI_CreateJavaVM(&jvm,(void **)&env, &vm_args);
    return true;
}

bool Object::EndJVM()
{
    //关闭JVM
    jvm->DestroyJavaVM();
    return true;
}

2. C++的Stringc调用java.lang.StringcL?/p>

~写C++版的Stringc,调用java StringcL法。调用的Ҏ(gu)如下Q?/p>

    String  replaceAll(String regex, String replacement);

    boolean endsWith(String str);

    int indexOf(String str);

    int compareTo(String anotherString);

    char charAt(int i);

String的头文g:

class String  :public Object
{
public:
//与要调用的JavaҎ(gu)名一致?br />     const char * replaceAll(char *regex,char *replacement);

    bool endsWith(char * str);

    int indexOf(char * str);

    int compareTo(char *anotherString);

    char charAt(int i);

    String(char *str);

    virtual ~String();
};

实现Q?/p>

#include "stdafx.h"
#include "String.h"
#include "jni.h"

using namespace std;

jclass clazz;    //全局变量Q用来传递class
jobject object;  //全局变量Q用来传递object
String::String(char *str)
{
    jstring jstr;

    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    //获得java.lang.Stringc?br />     clazz=Object::env->FindClass("java/lang/String");

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    //获得String(String str)构造体
    jmethodID mid= Object::env->GetMethodID(clazz,"<init>", "(Ljava/lang/String;)V");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    //字W串装为jstring?br />     jstr = Object::env->NewStringUTF(str);

    if (jstr == 0) {
        cerr << "Out of memory" <<endl;
        exit(-1);
    }

    cout << "invoking method" << endl;

    //创徏一个java.lang.String对象?br />     object=Object::env->NewObject(clazz,mid,jstr);
}

String::~String()
{}

char String::charAt(int i)
{
    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    if (object ==0 ){
        cout << "String object is not created" << endl;
        exit(-1);
    }

    jmethodID mid;

    //获得charAtҎ(gu)Q(IQC表示 参数为int型,q回char型。详l参见JNI规范
    mid = Object::env->GetMethodID(clazz,"charAt", "(I)C");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    jint ji=i;

    cout << "invoking method" << endl;

    //调用charAt
    jchar z = Object::env->CallCharMethod(object,mid,i);

    //q回l果?br />     return z;
}


int String::compareTo(char *anotherString)
{

    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    if (object ==0 ){
        cout << "String object is not created" << endl;
        exit(-1);
    }

    jmethodID mid;

    //(Ljava/lang/String;)I表示参数为java.lang.StringQ返回int
    mid= Object::env->GetMethodID(clazz,"compareTo", "(Ljava/lang/String;)I");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    jstring jstr = Object::env->NewStringUTF(anotherString);
    cout << "invoking method" << endl;

    //调用Ҏ(gu)
    jint z=Object::env->CallIntMethod(object,mid,jstr);

    //q回l果
    return z;
}


int String::indexOf(char *str)
{
    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    if (object ==0 ){
        cout << "String object is not created" << endl;
        exit(-1);
    }

    jmethodID mid;
    mid= Object::env->GetMethodID(clazz,"indexOf", "(Ljava/lang/String;)I");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    jstring jstr = Object::env->NewStringUTF(str);
    cout << "invoking method" << endl;

    jint z=Object::env->CallIntMethod(object,mid,jstr);
    return z;
}


bool String::endsWith(char *str)
{

    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    if (object ==0 ){
        cout << "String object is not created" << endl;
        exit(-1);
    }

    jmethodID mid;
    mid= Object::env->GetMethodID(clazz,"endsWith", "(Ljava/lang/String;)Z");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    jstring jstr = Object::env->NewStringUTF(str);
    cout << "invoking method" << endl;

    bool z = Object::env->CallBooleanMethod(object,mid,jstr);
    return z;
}


const char * String::replaceAll(char *regex, char *replacement)
{
    if (Object::env ==NULL){
        cout << "JVM is not created" << endl;
        exit(-1);
    }

    if (clazz ==0 ){
        cout << "Class is not found" << endl;
        exit(-1);
    }

    if (object ==0 ){
        cout << "String object is not created" << endl;
        exit(-1);
    }

    jmethodID mid;
    mid= Object::env->GetMethodID(clazz,"replaceAll", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");

    if (mid==0){
        cerr<< "GetMethodID Error for class" << endl;
        exit(-1);
    }

    jvalue array[2];
    jstring jreg = Object::env->NewStringUTF(regex);
    jstring jstr = Object::env->NewStringUTF(replacement);

    array[0].l=jreg;
    array[1].l=jstr;

    cout << "invoking method" << endl;

    //传入参数Q调用replaceAllҎ(gu)
    jobject z=Object::env->CallObjectMethodA(object,mid,array);
    const char *result=Object::env->GetStringUTFChars((jstring)z, 0);

    return (const char *)result;
}

3Q测?/p>

~写试代码

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;

    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)){
        cerr << _T("Fatal Error: MFC initialization failed") << endl;
        nRetCode = 1;
    } else{
        //创徏JVM
        Object::BeginJVM();

        String test("hello");

        //调用replaceAll
        const char *result = test.replaceAll("l","z");

        //q回l果
        cout<< result <<endl;

        //关闭JVM
        Object::EndJVM();
    }
    return nRetCode;
}


4Q运?/p>

~译需?jni.h和jvm.lib文g?/p>

jni.h在[JAVA_HOME]\include

jvm.lib在[JAVA_HOME]\lib

q行需要jvm.dll

jvm.dll在[JAVA_HOME]\ jre\bin\client

q行l果如下Q?/p>

invoking method

invoking method

hezzo

Press any key to continue

管本文的代码很有意思,但我q没有想到有什么h(hun)|以及应用到实际项目中的理由?/p>


本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/onlymilan/archive/2006/07/20/947652.aspx



艾L 2009-11-18 11:01 发表评论
]]>
父窗体和子窗体传?js+jquery)http://www.aygfsteel.com/Reg/archive/2009/11/15/302384.html艾L艾LSat, 14 Nov 2009 16:29:00 GMThttp://www.aygfsteel.com/Reg/archive/2009/11/15/302384.htmlhttp://www.aygfsteel.com/Reg/comments/302384.htmlhttp://www.aygfsteel.com/Reg/archive/2009/11/15/302384.html#Feedback0http://www.aygfsteel.com/Reg/comments/commentRss/302384.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/302384.htmlValue.jsp

   <script type="text/javascript" language="javascript">
    $(function()
      {
       $('#btn1').click(function(){
       var show=window.showModalDialog('show.jsp');
    var temp1=pd(show.id);
    if(temp1){
     temp1.childNodes[3].innerHTML=parseInt(temp1.childNodes[3].innerHTML)+1;
    }else{
     var tr=$('<tr>');
     var td1=$('<td>').html(show.id).appendTo(tr);
     var td2=$('<td>').html(show.name).appendTo(tr);
     var td3=$('<td>').html(show.price).appendTo(tr);
     var td4=$('<td>').html(1).appendTo(tr);
     
     $('#tbody1').append(tr);
    }
       });
      }
    )
  

  
     function pd(value){
      var boq;
      var tbody=$('#tbody1 tr');
      for(var i=1;i<tbody.length;i++){
       if(tbody[i].childNodes[0].innerHTML==value){
        boq=tbody[i];
       }
      }
      return boq;
     } 
   </script>
  </head>
  <body>
   <table>
   <tbody id="tbody1">
    <tr >
     <td>序号</td>
     <td>名称</td>
     <td>h</td>
     <td>数量</td>
    </tr>
   </tbody>
  
   </table>
    <input id="btn1" type="button"  />
  </body>

Show.jsp  <script type="text/javascript">
   function dddd(){
    var e={id:'',name:'',price:''};
   //alert(event.srcElement.innerHTML);
   e.id=event.srcElement.parentNode.childNodes[0].innerHTML;
   e.name=event.srcElement.parentNode.childNodes[1].innerHTML;
   e.price=event.srcElement.parentNode.childNodes[2].innerHTML;
   //alert(event.srcElement.parentNode.childNodes[0].innerHTML);
   window.returnValue=e;
 window.close();
   }
  </script>
  <body>
   <table>
    <tr onclick="dddd()">
     <td>zzz</td>
     <td>ddd</td>
     <td>eee</td>
    </tr>
    <tr  onclick="dddd()">
     <td>aaa</td>
     <td>bbb</td>
     <td>ccc</td>
    </tr>
    <tr  onclick="dddd()">
     <td>ttt</td>
     <td>ggg</td>
     <td>nnn</td>
    </tr>
   </table>
  </body>


艾L 2009-11-15 00:29 发表评论
]]>
递归?新思\)[JDBC+Servlet+javaBean]<font color=red>(新手版高手勿q?</font>http://www.aygfsteel.com/Reg/archive/2009/11/15/302380.html艾L艾LSat, 14 Nov 2009 16:06:00 GMThttp://www.aygfsteel.com/Reg/archive/2009/11/15/302380.htmlhttp://www.aygfsteel.com/Reg/comments/302380.htmlhttp://www.aygfsteel.com/Reg/archive/2009/11/15/302380.html#Feedback10http://www.aygfsteel.com/Reg/comments/commentRss/302380.htmlhttp://www.aygfsteel.com/Reg/services/trackbacks/302380.html 

BaseDao

 package com.common;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Common implements ICommon {

 //driver
 String classStr="oracle.jdbc.driver.OracleDriver";
 //connection
 String connStr="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
 //username
 String name="lw";
 //password
 String password="admin";
 

 //transact add/delete/update method
 public boolean tsg(String sql){
  boolean b=false;
  try {
   //loading driver
   Class.forName(classStr);
   //create connection
   Connection conn=DriverManager.getConnection(connStr,name,password);
   //create transact SQL object
   Statement sta=conn.createStatement();
   //transact SQL
   sta.executeUpdate(sql);
   //close sta
   sta.close();
   //close conn
   conn.close();
   //set b true
   b=true;
  } catch (SQLException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
  return b;
 }
 
 //transact select
 public ResultSet select(String sql){
  try {
   Class.forName(classStr);
   
   Connection conn=DriverManager.getConnection(connStr,name,password);
   
   Statement sta=conn.createStatement();
   
   ResultSet rs=sta.executeQuery(sql);
   
   return rs;
  } catch (Exception e) {
   // TODO: handle exception
  }
  return null;
 }
 
}


DemoDaoImpl

package com.demo.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.demo.bean.Dept;
import com.demo.common.BaseDaoImpl;
import com.demo.common.IBaseDao;

public class DemoDaoImpl implements IDemoDao {

 private IBaseDao baseDao = new BaseDaoImpl();

 public Dept queryDemoById(int id) {

  String sql = "select * from dept where did=" + id;

  ResultSet rs = baseDao.query(sql);

  Dept dept = new Dept();

  try {
   while (rs.next()) {
    dept.setDid(rs.getInt(1));
    dept.setDname(rs.getString(2));
    dept.setParentid(rs.getInt(3));
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }

  return dept;
 }

 public List<Dept> queryDemos(int id) {

  String sql = "select * from dept where parentid=" + id;

  ResultSet rs = baseDao.query(sql);

  List<Dept> list = new ArrayList<Dept>();

  try {
   while (rs.next()) {
    Dept dept = new Dept();
    dept.setDid(rs.getInt(1));
    dept.setDname(rs.getString(2));
    dept.setParentid(rs.getInt(3));
    list.add(dept);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }

  return list;
 }

 public static void main(String[] args) {
  IDemoDao dao = new DemoDaoImpl();
  Dept d = dao.queryDemoById(1);
  System.out.println(d);
 }
}

DemoServImpl

package com.demo.serv;

import java.util.List;

import com.demo.bean.Dept;
import com.demo.dao.DemoDaoImpl;
import com.demo.dao.IDemoDao;

public class DemoServImpl implements IDemoServ {

 private IDemoDao demoDao = new DemoDaoImpl();

 private static String htmlStr="";
 
 private void search(int id) {
  List<Dept> list = demoDao.queryDemos(id);
  htmlStr+="<ul>";
  for (Dept dept : list) {
   htmlStr+="<li>";
   htmlStr+="<a href='"+dept.getDid()+"'>"+dept.getDname()+"</a>";
   htmlStr+="</li>";
   search(dept.getDid());
  }
  htmlStr+="</ul>";
 }
 
 public String resHTML(int id){
  htmlStr="";
  search(id);
  return htmlStr;
 }
}

DemoServlet

 

package com.demo.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.demo.serv.DemoServImpl;
import com.demo.serv.IDemoServ;

public class DemoServlet extends HttpServlet {

 private IDemoServ demoserv = new DemoServImpl();

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("utf-8");
  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  int id = Integer.parseInt(request.getParameter("id"));
  String reshtml = demoserv.resHTML(id);
  out.write(reshtml);
  out.flush();
  out.close();
 }

}



艾L 2009-11-15 00:06 发表评论
]]>
վ֩ģ壺 ī| | ײ| ʯ| | | | ո| ۩| ͭ| | Ӧ| İ| | | | | ³ľ| | ױ| | | | ϻ| | | | ؿ˹| ƽ| С| ֹ| | ƽ| | | | ҵ| ű| ׼| | |