东东东 陈煜东的博客

月份存档: 十二月 2012

通过SSH创建私有git仓库

开源的代码能找到第三方的git仓库存放代码,但是私有的代码却不能放在那上面。而且对于免费私有的git仓库来说,还是比较不方便的。

有了自己的Linux服务器,那么就可以自己创建一个私有的git仓库了。接下来,就讲讲如何创建自己的私有的git仓库。

在Linux服务器上

第一步,先创建一个专门由于git仓库的一个账号吧,这样也方便进行管理。可以参考这篇文章Linux新建用户的命令

#新建一个git用户组
sudo groupadd git

#新建一个git用户,创建目录,并禁止shell登录,添加到git用户组
sudo useradd git -m -s /sbin/nologin -d /home/git -g git 

第二步,新建一个git仓库,这个仓库叫“git bare repository”,git裸仓库。

$ mkdir repo.git
$ chown -R git:git repo.git #改权限
$ cd repo.git
$ git --bare init
Initialized empty Git repository in /home/ams/repo.git/

这个仓库和本地的那个不一样,可以发现本地的那个仓库有在project下有一个.git的目录,而project下还有自己的代码。但是这个git裸仓库它没有自己的project,他只有和本地.git目录下一样的内容。

在客户端下

使用TortoiseGit图形界面,使用portable git内核。

第一步,右键目录,选择git 克隆,然后如图设置

git clone 仓库

第二步,在确定后,会出来一个密码提示框,让输入密码。

第三步,就等待下载结束,这样本地就能有一个本地仓库了。

总结:这样一个最简单简易的git私有仓库就建好了,本地可以继续向服务器提交代码,但是也需要密码才能。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 通过SSH创建私有git仓库 – https://www.chenyudong.com/archives/git-over-ssh-create-private-repository.html

分类: Linux

解决Could not create the Java Virtual Machine

安装完openjdk64bit之后,运行java出现问题。

本篇记录tomcat的配置。请新建文件${TOMCAT}/bin/setenv.sh(或者Windows下:${TOMCAT}/bin/setenv.bat),tomcat会自动读取该配置。

OutOfMemoryError: Java heap space 堆空间不足

Error occurred during initialization of VM Could not reserve enough space for object heap Error: Could not create the Java Virtual Machine.

发现是虚拟机要使用的堆容量不足。

修改环境变量,调整堆内存大小

1.Linux修改环境变量

vi /etc/environment

2.增加此行

export _JAVA_OPTIONS="-Xms64m -Xmx64m -Xmn32m"

其中的64m表示使用64M的内存。-Xms是堆的最小大小,-Xmx是堆的最大值,-Xmn是堆中的新生代最小值。Xmn中的值不能超过总的堆内存大小

3.生效环境变量

source /etc/environment

4.运行java。看看能否运行,如果还是不能运行,到第二步,减小内存。

java -version

OutOfMemoryError: PermGen space 永久代保存区域溢出

PermGen是虚拟机中的永久代,不属于堆。里面主要有class的信息等。出现这个错误一般都是加载的class过多了。比如你的tomcat有许多的应用,每个应用的class文件或者jar包非常多。虽然Java在运行程序时,根据需要加载class文件,但是一旦加载后,移除该class的就会比较少了,但是java肯定有这个机制,只是这个机制的判断比较复杂,要如何判断一个class不再使用,确实比较麻烦。

要设置Java的PermGen,见下面的参数

JAVA_OPTIONS="-XX:PermSize=64M -XX:MaxPermSize=128m"

这个是设置初始的PermGen的大小为64M,最大的PermGen为128m。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 解决Could not create the Java Virtual Machine – https://www.chenyudong.com/archives/could-not-create-the-java-virtual-machine.html

分类: Java

struts action json 示例

想使用Ajax来请求数据,但是后台都是使用struts和一堆的Action写的,这个要如何写呢?

大家应该都知道JSON和Ajax是什么吧?如果还不知道也不会继续阅读下去。

采用Action来返回JSON数据

第一步,导入struts2-json-plugin.jar包。如果没有该jar包,那么到http://struts.apache.org/download.cgi下载一个struts包,里面包含该jar包。

第二步:编写一个Action类

package com.chenyudong.action;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;

public class AjaxAction extends ActionSupport {
    private static final long serialVersionUID = -5279892367628798557L;
    
    Map<String,Object> map = new HashMap<String,Object>();
    List<Object> list = new LinkedList<Object>();

    public Map<String, Object> getMap() {return map;}
    public void setMap(Map<String, Object> map) {this.map = map;}
    public List<Object> getList() {return list;}
    public void setList(List<Object> list) {this.list = list;}

    public String test(){
        map.put("username", "abc"); 
        return SUCCESS;
    }
}

第三步:配置struts.xml文件

<package name="struts2" extends="struts-default,json-default">
    <action name="ajax" class="com.chenyudong.action.AjaxAction" method="test">
        <result type="json"></result>
    </action>
</package>

第四步:访问网页得到结果

{"list":[],"map":{"username":"abc"}}

该方法需要注意的地方,在AjaxAction类中,有成员变量map和list,在方法中,我没有使用list成员变量,由于设置get和set方法,我的输出结果中,有list值。也就是使用该方法,会出现成员变量中的所有有get的成员都会输出。如果想要不想显示无关的list或者map,使用注解@JSON(serialize=false)

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: struts action json 示例 – https://www.chenyudong.com/archives/struts-action-json-example.html

分类: JavaEE

java 64bit 32bit environment path install

在编写Java程序的时候,程序员需要安装JDK,JDK里面已经包含了JRE,JRE里包含了JVM虚拟机了。Eclipse的运行需要JRE的支持。所以我们需要JRE。 JDK有64bit和32bit之分,Eclipse也有64bit和32bit之分。

为什么是64bit?

现在内存越来越大,而32bit的系统只能寻址4G的空间,由于一些系统中断的地址占用,32bit的系统只能识别3G的内存。要想充分利用剩余的内存,只能换成64bit操作系统。

64bit有什么劣势

由于64bit的系统是最近发展起来的,有的软件只能运行于32bit上,在64bit环境中不是太好,所以软件的兼容性是需要解决的。许多人不愿升级到64bit操作系统就是这个原因。

为什么需要32bit的JDK

写一个项目需要使用JMF,而JMF是2002年左右出来的东西,当时还不支持64bit的系统。于是在我的64bit的JDK上不能运行,会报错误。无奈,只能从别人的32bit的JDK拷贝到我的电脑上运行。

更改环境之前需要做什么

删除一些文件。如果系统之前是使用exe安装方式安装的JDK,那么在C://windows/system32会有3个文件,是java.exe javaw.exe javaws.exe。为什么当时使用exe安装JDK的时候不要配置环境变量,就可以运行java程序?就是因为安装文件在这个目录下放了这几个文件。

获得32bit的JDK。可以下载一个32bit的JDK。

获得32bit的Eclipse。如果直接在32bit的jre上运行64bit的eclipse会出现问题的。会出现如下错误

Failed to load the JNI shared library "F:\jdk1.7.0_03\bin\..\jre\bin\client\jvm.dll".

如何更改环境变量

右键计算机-属性,高级系统设置。

检测是否成功

打开cmd,输入命令java -version

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: java 64bit 32bit environment path install – https://www.chenyudong.com/archives/java-64bit-32bit-environment-path-install.html

分类: Java

MyEclipse禁用JavaScript检查功能

Myeclipse对Javascript的检测特别不习惯,有时候JS文件里面加着struts代码,就会报错。只能禁用JavaScript检查功能了。

在MyEclipse的Project目录下有一个隐藏文件.project,这个文件放着一些project的配置

我直接贴出来吧,将以下的删除即可。

<buildcommand>
    <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
    <arguments>
    </arguments>
</buildcommand>

<nature>org.eclipse.wst.jsdt.core.jsNature</nature>

具体情况可见该文件。这样重启MyEclipse就不会启用Javascript检查功能了。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>trybest</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
            <arguments>
            </arguments>
            </buildCommand>
    </buildSpec>
    <natures>
        <nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
        <nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: MyEclipse禁用JavaScript检查功能 – https://www.chenyudong.com/archives/myeclipse-disable-javascript-validatation.html

分类: JavaEE

windows 8安装wireshark和winpcap

要抓取网络数据包,wireshark自然是首选。其他的sniff没用过,但是其他人说不好用。以前也有用过wireshark,但是在win7下安装没有任何问题,这次换成win8了,安装有些问题。WireShark下载地址:http://www.wireshark.org/download.html

我下的是Wireshark 64bit的,这个安装是没有问题的,只是这个软件依赖winpcap抓取数据,但是winpcap4.1.2安装却失败了,不能安装。上winpcap官网查看,还没说支持Windows 8,当时支持Windows XP/2003/Vista/2008/Win7/2008R2 (x86 and x64)。

上网搜了一下,解决办法比较简单。

下载winpcap.exe,然后点击右键菜单 – 属性 – 兼容性,选择兼容模式为Windows 7(如图)。然后再运行winpcap.exe,这样就能安装winpcap了,然后再安装WireShark就成功了。

如图设置

修改winpcap的兼容模式

修改winpcap的兼容模式

参考文章:http://microsoftarena.net/winpcap-on-windows-8-how-to/

运行Wireshark后如果没有显示网卡的话,那么要用管理员身份运行程序才能见到网卡。特别是在Linux下,需要root权限才能使用。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: windows 8安装wireshark和winpcap – https://www.chenyudong.com/archives/windows-8-install-wireshark-and-winpcap.html

分类: 软件

Android ListView小记和读取写入SIM联系人

看着自己的手机不能管理SIM卡,而且第三方软件排序不好,或者是对中文编码不支持,所以想自己写个管理SIM联系人的一个小应用,虽然不怎么规范,但是先能达到我的目的再说,以后的东西只能慢慢去改进,有必要的时候重构。

另外觉得ListView这个类感觉好麻烦,不会配置,但是通过我的这次的开发,感觉有些理解了ListView的布局。

现在一共用了4个文件,SimpleSIM.java,activity_simple_sim.xml,Contact.java,SIMManager.java。读取了联系人的信息。

对于ListView的理解,我是这样的。首先一个Activity要有一个自己的布局,就是占满屏幕的那个布局。接下来的ListView众多的项,每一项要有自己的布局,这个布局文件可以自己新建一个布局文件,也可以像我这样和Activity共用一个布局文件。不过推荐使用单独的一个布局文件,我的这次是为了方便,以后会改成一个单独的文件的。在ListView的每个项中,布局要自己控制,要在每个项中的哪个位置放文字,就用SimpleAdapter上的参数,可以放置具体文字,具体位置可以在xml布局文件中的id里面查找出来。

这里的联系人排序用到了一个转汉字转拼音的一个开源的类库http://code.google.com/p/han2pinyin/,感觉还行,就用了。这样英文和中文就可以同时排序了。

整理完后,会将整个项目开源,如果有什么疑问可以先联系我。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Android ListView小记和读取写入SIM联系人 – https://www.chenyudong.com/archives/android-listview-first-use-and-sim-contact-write-read.html

分类: 软件

samsung galaxy nexus i9250 android升级小记

galaxy nexus刷机教程见http://www.chenyudong.com/archives/galaxy-nexus-reinstall-the-system.html

自从发布了Nexus 4 和Android 4.2后,我就迫不及待的想升级到4.2系统了。可是升级到Android 4.2后,感觉时钟真的很难看。记录一下遇到的一些情况吧。

找不到开发人员选项

想用真机调试一些,结果发现没有开发人员选项。本想吐槽的,原来让它出现很简单。方法如下:到 设置关于手机版本号(JOP40C) 连续点击7次,开发者选项就出现了。

升级4.2.1失败?

突然接到OTA推送,900+KB的一个更新,上网搜索后发现是一个修复“12月”的一个bug。重启后,发现一只在躺着的机器人那,有个红色的感叹号。登了好久,没反应,直接扣电池重启。不知道会不会有什么异常。

在网上看见也有人是类似的情况,原来是当时刷机的时候把官方的recovery给刷成第三方的了,而ota升级需要官方的recovery。要想解决这个时期,就不能ota升级,必须自己手工升级。

升级4.2.2前

看了下论坛,说4.2.2打电话屏幕不自动关闭,近距离感应器不管用。4.2.1升级4.2.2的基带,距离感应器失效解决办法 http://bbs.gfan.com/forum.php?mod=viewthread&tid=5845862

但是wifi好像不能连接,那我还是再等等吧。

升级4.3

线刷4.3

安装qq4.2,发现不能使用视频和更换皮肤。先使用android 2012的qq

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: samsung galaxy nexus i9250 android升级小记 – https://www.chenyudong.com/archives/samsung-galaxy-nexus-i9250-update-to-google-android-note.html

分类: 生活

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑