生疏了n久的javac,java命令行

早上试图将Eclipse项目拷到linux服务器执行,无奈的javac,java居然都耗费了一个小时。。

 

拿jfreechar的代码做示例,


生疏了n久的javac,java命令行

丢到linux上面,得到如下目录结构:


 

一。首先编译,javac:  javac -encoding gbk

javac -encoding gbk 


-cp /usr/local/brand/temp:./org.jfree-2.jar /usr/local/brand/temp/jfreechart/*.java

 1.由于代码是gbk编码,需要指定encodeing参数,否则就是:

warning: unmappable character for encoding ASCII
        //??????????????

2. cp指定classpath参数。这里有三点:

 a)linux下指定多个使用:分割

 b)jar需要指定到文件,可以使用path/*通配符,但是path/*.jar就要找不到了。最好的办法是jar放到系统的classpath目录
    对java文件,则需要指定到package根目录,比如/usr/local/brand/temp就会包含到jfreechart目录下的2个java类

 c) 对编译的文件,需要指定详细文件路径,支持*批量编译多个文件。对与有main类的项目,只需要编译main类,会自动加载引用类。

 

 

二。然后就是java,运行了:  java -Dfile.encoding="GBK"

java -Dfile.encoding="GBK"


 -cp /usr/local/brand/temp:./org.jfree-2.jar  jfreechart.BarChartDemo

 

1.这里与javac的最大不同是类文件按package定义指定,即xx.xx.xx,而不是文件目录路径。并且运行java需要到src根目录下。

2. javac中指定的encoding仅仅是说明源代码文件的编码方式,而在实际java运行过程中,指定的编码则是系统参数file.encoding .下面的日志就是加上-D参数前后的输出,可以看到不指定之前,从DB取到的记录、以及默认的日志输出,都会是乱码。

 

 <<<=================?uin=19878334 ????????|???? 1 | 0        
============>???????? uin==19878334                           
 ????:item-0B4302BD-82170000100000000000000005FC3C63.0.gif   
 ????:item-0B4302BD-82170000100000000000000005FC3C63.1.gif   
 ????????:oldCode|newCodeBE512F0130000000000000002FD4DA0D | BE
 <<<=================?uin=19878334 ????????|????1 | 1        
============>导用户商品开始 :uin==19878334                   
 产品图片:item-0B4302BD-82170000100000000000000005FC3C63.0.gif
 产品图片:item-0B4302BD-82170000100000000000000005FC3C63.1.gif

你可能感兴趣的:(java,eclipse,linux,jfreechart)