2012年8月24日星期五

eclipse 4.2.0 juno 同步svn错误解决


右键使用svn share project出现以下错误:

org.tigris.subversion.javahl.ClientException: Unsupported working copy format
svn: This client is too old to work with working copy 'E:\android workspace\xf19_GPS_share'.  You need
to get a newer Subversion client, or to downgrade this working copy.
See http://subversion.tigris.org/faq.html#working-copy-format-change
for details.

org.tigris.subversion.javahl.ClientException: Unsupported working copy format
svn: This client is too old to work with working copy 'E:\android workspace\xf19_GPS_share'.  You need
to get a newer Subversion client, or to downgrade this working copy.
See http://subversion.tigris.org/faq.html#working-copy-format-change
for details.



解决办法:
1.下载最新的subversion 1.8.x,在install new software中添加最新subversion,地址为:http://subclipse.tigris.org/update_1.8.x/
2.在项目右键-team-share project,然后直接下一步完成即可

升级成功:
subversion:1.8.3
subclipse:1.8.16

Eclipse 4.2.0下svn使用

安装svn

1.选择安装插件


2.添加插件地址:http://subclipse.tigris.org/update_1.4.x

点击确定重启即可安装完成

myEclipse9.0下svn使用

配置svn

1.下载SVN插件: site-1.8.16.zip
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
2.全部文件解压到:X:\...\MyEclipse 9.0\dropins(MyEclipse的安装目录)
3.重启MyEclipse即可出现SVN(重启会很慢,等大概1分钟)


myeclipse项目同步到svn


1.安装TortoiseSVN
2.在项目文件下右击,选择svn checkout
3.URl of repository填入:
https://xunfang-19-gps-service.googlecode.com/svn/trunk/ 
(google code注册的项目名字,注意开头为https,否则commit会提示405错误)
checkout directory填入:
E:\myEclipse workspace\GpsShareServer (注意选择文件夹,要在当前路径生成.svn文件夹)
点击确定提交

4.输入用户名密码

5.提交成功

还原版本


1.还原到指定版本:

2.在其他机器恢复程序:
 
必须安装有TortoiseSVN,在文件夹右击,选择svn checkout,然后填入信息


2012年8月11日星期六

android的AsyncTask类的执行顺序测试


package com.smalt.testasynctask;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;

/**
 * 测试AsyncTask类执行顺序
 *
 * @author Administrator
 *
 */
public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testAsyncTask tat = new testAsyncTask();
tat.execute("");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

/**
* 继承AsyncTask类
*
* @author Administrator
*
*/
class testAsyncTask extends AsyncTask<String, Integer, String> {

@Override
protected String doInBackground(String... params) {
// 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用
// publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
Log.i("info", "doInBcakgroud()");
publishProgress(2);
return null;
}

@Override
protected void onPreExecute() {
// 该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。
super.onPreExecute();
Log.i("info", "onPreExecute()");
}

@Override
protected void onProgressUpdate(Integer... values) {
// 在publishProgress方法被调用后,UI
// thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
super.onProgressUpdate(values);
Log.i("info", "onProgressUpdate()");
}

@Override
protected void onPostExecute(String result) {
// 在doInBackground 执行完成后,onPostExecute 方法将被UI
// thread调用,后台的计算结果将通过该方法传递到UI thread.
super.onPostExecute(result);
Log.i("info", "onPostExecute()");
}
}

}

2012年8月9日星期四

java遍历文件夹并复制文件到指定目录



package com.smalt.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

import javax.swing.JTextArea;

/**
 * java遍历文件夹并复制文件到指定目录
 */
public class TestRead {

// 允许复制的文件类型
public static String[] filterFile = { ".java", ".xml", ".xdl",
".properties", ".sql", ".jupiter", ".wsdl", ".txt" };
private long total = 0l;

// private static Pattern pattern =
// Pattern.compile("[A-z][:]/[A-z]*/OMC[0-9A-z]{0,}");

public static void main(String[] args) throws Exception {

Scanner scanner = new Scanner(System.in);
System.out.println("输入源地址:");
String srcStr = scanner.next();
String destStr;
System.out.println("输入目标地址:");
destStr = scanner.next();
String answer = null;
do {
File src = new File(srcStr);
File des = new File(destStr);
new TestRead().copyFolder(src, des, new String[] { ".java", ".xml",
".xdl", ".properties", ".sql", ".jupiter", ".txt" }, null);
System.out.println("Continue ?y or n");
answer = scanner.next();
} while (answer.equalsIgnoreCase("Y"));
scanner.close();
}

/**
 * 复制文件夹
 *
 * @param folder
 * @param filterFile
 * @param status
 * @throws Exception
 */
public void copyFolder(File srcFolder, File destFolder,
String[] filterFile, JTextArea status) throws Exception {
File[] files = srcFolder.listFiles();
for (File file : files) {
if (file.isFile()) {
String pathname = destFolder + File.separator + file.getName();

for (String suff : filterFile) {
if (pathname.endsWith(suff)) {
File dest = new File(pathname);
File destPar = dest.getParentFile();
destPar.mkdirs();
if (!dest.exists()) {
dest.createNewFile();
}
copyFile(file, dest, status);
}
}
} else {
copyFolder(file, destFolder, filterFile, status);
}
}
}

/***
 * 复制文件
 *
 * @param src
 * @param dest
 * @param status
 * @throws IOException
 */
private void copyFile(File src, File dest, JTextArea status)
throws Exception {
BufferedInputStream reader = null;
BufferedOutputStream writer = null;
try {
reader = new BufferedInputStream(new FileInputStream(src));
writer = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buff = new byte[reader.available()];
while ((reader.read(buff)) != -1) {
writer.write(buff);
}
total++;
String temp = "\ncopy:\n" + src + "\tsize:" + src.length()
+ "\nto:\n" + dest + "\tsize:" + dest.length()
+ "\n complate\n totoal:" + total;
System.out.println(temp);
// status.append(temp);
} catch (Exception e) {
throw e;
} finally {
writer.flush();
writer.close();
reader.close();

}
}

}

java 复制文件a到b并打印b中内容


package com.smalt.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TestFile {

/**
* 复制文件a到文件b并且打印b中的内容
*
* @param args
*/
public static void main(String[] args) {
try {
FileReader fr = new FileReader(GlobalUtil.READ_PATH);// 创建FileReader对象,用来读取字符流
BufferedReader br = new BufferedReader(fr); // 缓冲指定文件的输入
FileWriter fw = new FileWriter(GlobalUtil.WRITE_PATH);// 创建FileWriter对象,用来输出字符流
BufferedWriter bw = new BufferedWriter(fw); // 将缓冲对文件的输出
int ch = 0;
while ((ch = fr.read()) != -1) {
System.out.print((char) ch);// 打印读入字符
bw.write(ch);// 写入字符
}
// bw.flush();//记得刷新或者 bw.close();
// 输出写入的文件:
System.out.printf("\n写入文件为:\n");
BufferedReader in = new BufferedReader(new FileReader(
GlobalUtil.WRITE_PATH));
String s, s2 = new String();
while ((s = in.readLine()) != null)
s2 += s + "\n ";
System.out.println(s2);

in.close();
bw.close();
br.close();
fw.close();
br.close();
fr.close();

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