发表于: 2017-09-19 23:06:15
2 752
今天完成的事情:
1.对本地项目进行打包然后添加到远程服务器上运行
首次用“java -jar”命令执行报错,百度出的答案。出错原因是没有指定主类,只是执行了项目的jar包。
然后用“java -cp”命令执行helloworld程序,成功输出。
2.jar和压缩包的区别
JAR 文件格式以流行的 ZIP 文件格式为基础。JAR 格式允许您压缩文件以提高存储效率。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
3.jar包和war包的区别
war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块。而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的.
war包:是做好一个web应用后,通常是网站,打成包部署到容器中。
jar包:通常是开发时要引用通用类,打成包便于存放管理。
4.听老大讲金融项目与其技术架构
(1)利息计算方式:先息后本,等额本息,先本后息,等额本金
(2)投资-----还款-----提现
(3)开户(实名认证)
(4)资金流水,对账系统
(5)众筹等的第一笔的利息计算和最后一笔的超买情况
(6)资金池,债权池
5.有关jar的几个命令
(1)jar打包命令
jar -cvf xx.jar *.*
说明一下:*.*表示把当前目录下面以及子目录的所有class都打到这个xx.jar里。
-cvf的含义,可以自己去用jar命令去查看
如果要单独对某个或某些class文件进行打包,可以这样:
jar -cvf xx.jar Foo.class Bar.class
(2)运行jar
java -jar xx.jar
要运行一个jar,则此jar内部的META-INF\MANIFEST.MF文件里必须指明要执行的main方法类
具体格式如:
Manifest-Version: 1.0
Created-By: 1.6.0_03 (Sun Microsystems Inc.)
Main-class: Test
如果此处的Test.class在com.xx包下面,则需要指明。
如果在运行时报了invalid or corrupt jarfile错误,则需要检查Main-class: Test 之间是不是缺少了空格
(3)指定运行jar里面的class
java -cp xx.jar com.xx.Test
(4)编译某个java文件,但是依赖某个jar
javac -cp xx.jar Test.java
(Test.java里面import了xx.jar里面的某个class)
(5)运行某个java文件,但是依赖某个jar
java -cp .;xx.jar Test
注意:引用xx.jar的时候,不要漏掉.;(这个表示当前目录)
6.连接池
数据库连接池的思想实现,即就是将数据库作为对象储存在一个vector对象中,一旦数据库连接建立后,不同的数据访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大的节省系统资源和时间。
在实际开发中,特别是web应用系统中,如果JSP.Servlet或者EJB使用JDBC直接访问数据库的数据,每一次数据访问请求都必须经历建立数据库连接,打开数据库,存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件消耗资源又浪费时间的工作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至导致系统崩溃,而数据库连接池技术是解决这个问题最常见的方法。
明天计划的事情:
在远程服务器上运行数据库操作的处理,并且改变其数据量,观察其程序运行时的不同。
遇到的问题:
如果说在mybatis中添加连接池的话,由于mybatis对JDBC进行了封装,所以除了实体类和接口类可以看到,其余的程序都在配置文件中,远程服务器对jar包运行时会报找不到主类的错。如果既要解决又要保证程序修改方便,是不是需要把增删改查数据库的这些代码封装,然后建一个主方法进行对数据库的操作呢!或者说直接用JDBC连接数据库,在添上连接池对数据库进行一些数据处理。
收获:
1.可以在远程服务器上运行有main方法的程序
2.了解了下金融业务和技术架构的实现过程
3.在处理大量数据的时候,若程序需要多次访问数据库,添加连接池时非常有必要的。
评论