??xml version="1.0" encoding="utf-8" standalone="yes"?>
软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 />
]]>
一ƾ能分析pȝ性能瓉的优化Y件。它通过对系l全方位的诊断,扑ֈpȝ性能的瓶颈所在,然后有针Ҏ(gu)地q行修改、优化。此外它q具有间谍Y件和恶意软g扫描清除功能Q也能将你的隐私信息从电(sh)脑中抚w。针对个人免费用。Advanced
WindowsCare Personal已更名ؓAdvanced SystemCare?br />注册?
79818-39C67-6AD87-1B8D4
]]>
一开始按|上说的用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
]]>数据库服务管理工?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
]]>
]]>
//---------------------------------------------------------------
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
]]>
Ҏ(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%
]]>
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
]]>
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
<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>