java的jar包相关问题

一、使用javac java命令时如何导入需要的lib

在开发java类时,用到了别的jar包,可以使用-classpath或者-cp参数来导入这些包

例如:写了个类C:\Test.java,它用到的lib分别是D:\abc.jar和E:\efg.jar,则编译和运行命令:

javac -cp D:\abc.jar;E:\efg.jar; C:\Test.java

java -cp D:\abc.jar;E:\efg.jar; C:\Test

注意:最后一个;后面必须要用空格把这个类和lib包分开。linux下,需要把;替换成:路径当然也要替换成linux格式的。

二、如何把.class文件打包成jar包

第一步:编写并准备java类

第二步:编译该java类为对应的class

第三步:使用jar命令进行打包

            1,没有main函数,不需要直接运行的:jar cvf xx.jar 包/A.class 包/B.class 。。。(多了可用*)

            2,有main函数,需要运行的,需要创建一个清单文件manifest.mf内容如下:

Manifest-Version: 1.0

Created-By: 1.5.0_06

Main-Class: 包.Main类 (注意:后面一定要会车)

打包命令:jar -cvfm xx.jar manifest.mf 包/Main类.class

第四步:通过java -jar xx.jar进行运行

error MSB8008: 指定的平台工具集(v120)未安装或无效

由于昨天安装了vs2013,今天卸载了并装上vs2010,然后运行项目就出现了这样的错误:

error MSB8008: 指定的平台工具集(v120)未安装或无效。请确保选择受支持的 PlatformToolset 值。

解决方法:

指定的平台工具集(v120) –>该参数修改为V100.

修改方法:

Project > Properties > Configuration Properties > General (General) > Platform Toolset >> v100

VC++报错“fatal error C1083:Cannot open source file:”的解决办法

错误现象:fatal   error   C1083:   Cannot   open   source   file:   ‘D:\Program   Files\Microsoft   Visual   Studio\VC98\MFC\SRC\APPMODUL.CPP ‘

原因一:VC的安装路径改变了。

例如:你用VC写好了一个项目。后来把VC卸载了,又安装到其他文件夹里。再用VC运行该项目,就会报此错误,因为编译系统找不到APPMODUL.CPP。

原因二:把别人的项目拿来用,但是你所用电脑上VC所安装的位置和原作者的不一样,也会出现这样的错误。

解决方法:在源程序文件夹里找到以“.dsp”为后缀的文件(比如:test.dsp),用记事本打开;找到SOURCE=”D:(注:具体目录不一定是唯一的)\VC98\MFC\SRC\APPMODUL.CPP”,改成你”APPMODUL.CPP”文件的路径。例如:C:\Program   Files\Microsoft   Visual   Studio\VC98\MFC\SRC\APPMODUL.CPP

Erlang虚拟机常用启动参数

在接触Erlang过程中,了解到Erlang虚拟机的一些常用启动参数。Erlang启动参数有3种:emulator flags, flags 和plain arguments。这里暂且看emulator flags ,它是以“+”开头的,用来控制模拟器的行为。




Erlang入门实例程序

#vi geometry.erl

%% —注释
%% Excerpted from “Programming Erlang”
%%—

-module(geometry).
-export([area/1]).

area({rectangle, Width, Height}) -> Width Height;
area({square, X}) -> X
X;
area({circle, R}) -> 3.14159 R R.

Erlang当前的工作空间路径的修改方法

请看下面的一个例子:

-module(hello).

-compile(export_all).

start()->”hello world”.

然后在Erlang Shell中进行编译hello.erl源文件:

1> c(hello).    

有可能会发生如下的错误:

./hello.erl:none: no such file or directory

error

      hello.erl文件无法找到,hello.erl源文件应该被在哪个目录下才可以被Erlang编译器找到?对于 Windows用户来说,用户点击Erlang图标启动的Erlang Shell的工作路径是Erlang安装目录下的usr目录下,将hello.erl源文件copy到该目录下就可以直接用 c(hello)命令进行编译了,其中的hello为模块名称,即为不带.erl扩展名的源文件名。

      如果不想以该目录作为默认工作目录,则可以在Erlang图标点右击鼠标,选择弹出菜单项“属性”,然后修改“Erlang 属性”对话框中 “起始位置”的值,原值为“(Erlang安装路径)\usr”,改为你想要的工作目录值即可。

      通过执行以下命名可以查询当前的Erlang工作目录:

2> pwd().

e:/erl5.9.1/usr

ok

      请注意pwd()返回的目录名称与标准的Windows目录名并不一样,使用的是正斜杠分隔符“/”,如果想在Erlang Shell中切换当前的工作目录,则可以使用以下命令:

3> cd(“e:/ErlangWork”).

e:/ErlangWork

ok

      cd(dir)命令中的工作目录名同样是使用正斜杠分隔符“/”,而不能使用Windows标准的反斜杠分隔符“\”,如果你使用Windows标准目录名,则cd(dir)命令执行时不会提示有使用错误信息,则并没有正确切换到新的工作目录中。

      如果在命令行模式下执行erl.exe直接进入Erlang Shell的话,则当前目录即为Erlang的工作目录,而不会受Erlang图标属性中的“起始位置”设置的影响,如果想用户在任何方式进入 Erlang Shell时都自动切换到指定的工作目录,则可以在用户目录中的编辑一个.erlang文件:

c:cd(“e:/ErlangWork”).

io:format(“My new work in: ~p!n”, [element(2, file:get_cwd())]).

      这里所指用户目录一般为C:\Documents and Settings(当前登录用户名),比如当前你以ITuser账号登录Windows系统,则用户目录为C:\Documents and Settings\ITuser,该文件在Windows平台下,可以理解成一个只有扩展名没有文件名的文件,这样的文件在Windows的文件浏览器 中可以进行一般的浏览、删除操作,但无法将一个正常的文件名重命名成这样的文件,所以一般需要用记事本将以上代码编辑进一个空文档中,然后另存文件,选择 保存类型为“所有文件”,文件名为“.erlang”进行保存。

静夜之思

身在异国他乡的我,在这宁静的夜晚,第一次如此刻骨铭心的想家…想着爸妈,想着老妹,想着他们的各种唠叨,想着他们的音容笑貌…算是第一次出远门,从最初的期待与忐忑,到兴奋与迷茫,到新奇与不安,再到心如止水,再到归心似箭…都说“别人的金窝银窝,不如自家的狗窝”,我是真心想家了…

使纯文本自动转换为Web网页的方法(用php实现)

如何将纯文本自动转换为Web网页?以下是使用php语言进行实现的方法。

首先是把纯ASCII文件读取到一个PHP数组中。通过file()函数可以完成,这个函数会把文件的每一行都转换成为一个用数字索引的数组中的元素。然后,标题和作者行(假设这两个都是文件的前两行)都通过array_shift()函数从数组里提取出来,放到单独的变量里。数组剩下的成员然后连接成一个字符串。这个字符串现在就包括了整篇文章的正文。文章正文里像“’”、“<”和“>”这样的特殊符号通过htmlspecialchars()函数被转换成相应的HTML符号。为了保留文章的原始格式,分行和分段通过nl2br()函数被转换成HTML的元素。文章中间多个空格通过简单的字符串替换被压缩成为一个空格。

文章正文里的URL用正则表达式来检测,两边是元素。当页面在Web浏览器里显示的时候,它会把URL转换成为可点击的超链接。

然后用标准的HTML规则创建输出的HTML页面。文章的标题、作者和正文都用CSS样式规则格式化。尽管这段脚本没有这样做,但是你可以在这个地方自定义最终页面的外观,你可以向模板添加图形元素、颜色或者其他眩目的内容。

一旦HTML页面构建完成,它就可以被送到浏览器或者用file_put_contents()保存为静态文件。要注意的是,在保存的时候,原来的文件名会被分解,一个新的文件名(叫做filename.html)会为新创建的Web页面创建。然后就可以把这个Web页面发布到Web服务器上、保存到光盘上或者对它进行进一步编辑。

注意:在使用这个脚本创建和保存HTML文件到磁盘的时候,要确保这个脚本对文件保存的目录有写权限。

若有标准格式的ASCII纯文本数据文件,你可以相当迅速用PHP把它转换成为可使用的Web页面。如果你已经有了一个Web网站,并计划把新的Web页面加入进来,那么调试页面生成器所使用的模板,使之适应原有Web网站的外观是相当容易的。

解决eclipse中Invalid project description.'xxx' overlaps the location of another project: 'xxxx'

      导入一个android源码项目时,出现如下错误信息:

      Invalid project description

      ——>detail: ->>>Invalid project description. xxxx(project path) overlaps the location of another project: ‘xxxx’

      最后发现是我把源码把放到了workspace目录下了的原因导致的。

      eclipse在创建项目的时候需要在workspace目录下创建一个同名的目录。

      但发现workspace目录下已存在对应的目录时,就会报上面的处错误信息了。

      解决办法,就是将源码包移到非workspace目录下。

 

      另外,有时候目录下确实没有同名的项目文件夹,但也会报这样的错误。最后发现是备份在那儿的rar压缩文件所致,移出目录后问题成功解决。原来连压缩的文件内含有重名也不行,这是无语啊。

 

游戏动态画面开发基础

 

      游戏中的动态元素如角色移动、爆炸、过场等特效,这些动画的形成,有两种方式:系统提供Animation类的特效和自己手动实现。

1.Animation动画

分为四种效果:

AlphaAnimation:透明度渐变动画;

AcaleAnimation:渐变尺寸缩放动画;

TranslateAnimation:移动动画;

RotateAnimation:旋转动画。

动画创建:

Animation alphaA = new AlphaAnimation(float fromAlpha,float toAlpha)

Animation scaleA = new ScaleAnimation(float fromX,float toX,float fromY,float toY,int pivotXType,float pivotXValue,int pivotYType,float pivotYValue)

Animation translateA = new TranslateAnimation(float fromXDelta,float toXDelta,float fromYDelta,float toYDelta)

Animation rotateA = new RotateAnimation(float fromDegrees,float toDegrees,int pivotXType,float pivotXValue,int pivotYType,float pivotYValue)

      在Animation中的四种动画创建都是new出来的,根据参数的不同可以构造出不同的动画效果。它们都有一些通用的方法:restart(),重新播放动画;setDuration(int time),设置动画播放时间,单位是毫秒。

      除了以上四种特效之外,View还为特效提供了监听器。首先实现

android.view.Animation.AnimationListenter接口,然后重新该接口的3个抽象类:

@Override

public void onAnimationStart(Animation animation){

    //动画开始时响应的函数

}

@Override

public void onAnimationEnd(Animation animation){

    //动画结束时响应的函数

}

@Override

public void onAnimationRepeat(Animation animation){

    //动画重播时响应的函数

}

    三个函数监听动画的不同状态,其中三个函数的参数都表示当前播放的或者播放结束的动画实例;通过此参数可以对多个设置监听的动画进行判断和匹配。

    最后使用动画实例Animation.setAnimationListener(AnimationListener listener)设置动画监听器即可。

2.自定义动画

(1)动态位图

只要不断改变位图的X或者Y轴的坐标,即可让一张位图形成动态的效果。

注意,使用SurfaceView的话,只有在视图执行完构造函数之后才可获取视图的宽高,在此之前获取的屏幕宽高都为0,原因是SurfaceView视图还没创建。

(2)帧动画

利用多帧图形形成的动画,帧动画其实就是多帧图形一帧一帧按照一定的顺序播放而形成的。

(3)剪切图动画

    类似于帧动画的形式,唯一的区别就是动态物体的动作帧全部放在了一张图片中,然后再通过设置可视区域完成。

    程序逻辑中一直让当前帧不断循环变化,这样每次重绘画布都会显示不同的帧,从而达到动态的效果。