jar在java中作为一种项目的发布形式比较普遍,往往为了容易管理更需要作为一种系统服务发布——起码服务器重启了不用人工去重新打开你所以往运行的jar文件。

这里简单的介绍下怎么将jar发布到winNT平台服务上,有以下几个准备工作和注意的问题。

首先:

我们需要哪些东西?

1.你所需要运行的jar包,以及它所依赖的第三方包;

2.javaService.exe,这个可以到网上方便下载到,注意:32位的操作系统和64位的需要不同的javaService.exe;

有了以上东西我们就可以开始发布服务了,然后我们将这些东西整理到一个文件夹下,例如:我将它们全部放到d:/sewinntserver文件夹下面,如图:

红色框中的文件是待会使用javaService名称生成的,在不需要理会。

然后,就是运行javaService命令发布服务了!

说明:

1. -install SE : 是你要发布服务的名称;

2. 你系统环境中设置JAVA_HOME,指定你所需要使用的jre;

3. 在-Djava.class.path中指定你需要运行的jar,这里有个需要注意的地方后面会提到;

4. 设置jvm的基本参数,主要就是内存的分配;

5. 指定信息文件和异常文件,及路径;

运行命令后,如果出现...successfully installed, 就ok了,去查看下我们的服务。

这里可以对我们的服务进行管理。

//------------------------------------------------------------------------------------

如果你会打jar包,并且项目中没有一些诡异的情况,像上面一样发布服务应该没有问题,但是...

如果遇到问题,你必须关注一下问题:

1.怎么打jar包?

如果你的工程稍微大一点,引用了第三方jar包,那么建议使用MyEclipse进行打包——这的确是个懒人的做法,因为它很简单。

--选择工程 -- export

选择 Runnable JAR file,Next :

选择存储路径,以及打包的方式。

这里提供三种方式,简单的理解:第一种方式将第三方jar包会“打散”和你的工程混在一起;第二种方式将第三方jar包完整的保存在你的jar包中,用配置文件调用;第三种方式不会将第三方jar打到你的jar包中,只是用配置文件去应用。

建议使用第一种方式打包!!!

Finish结束!

2.log4j的异常,不能正确引用。

错误代码:(这些都可以从我们配置的err.txt中找到!!!)

java.lang.NoClassDefFoundError: org/apache/log4j/Logger

at com.baitengsoft.FTDB.Socket.server.FTManage_Server.(FTManage_Server.java:31)

Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger

at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:252)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

... 1 more

我当时采用了第二种方式打包,因为打出来的jar包很整洁,但是在发布服务时遇到log4j不能正确引用的问题,后来换成第一种方式打包就没有问题了。这个问题比较诡异!

3.jdbc driver 不能正确启用的问题

错误代码:

java.lang.SecurityException: invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/SQLServerException.class

at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:438)

at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:231)

at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)

at java.util.jar.JarVerifier.processEntry(JarVerifier.java:277)

at java.util.jar.JarVerifier.update(JarVerifier.java:188)

at java.util.jar.JarFile.initializeVerifier(JarFile.java:321)

at java.util.jar.JarFile.getInputStream(JarFile.java:386)

at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:689)

at sun.misc.Resource.cachedInputStream(Resource.java:59)

at sun.misc.Resource.getByteBuffer(Resource.java:154)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:249)

at java.net.URLClassLoader.access$000(URLClassLoader.java:56)

at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:252)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

这个问题上面稍微提过一下,如果将jdbc驱动包打入到你的jar包中往往会出现这个问题。

对了,这里是指sql Server jdbc driver,其他的没有试验过!

怎么解决这个问题呢?

第一:不要将jdbc驱动程序打入到你的jar中;

第二:将jdbc驱动单独拿出来和你的jar包放在一起,从上面的文件夹中可以看出...;

第三:在javaService命令中将jdbc jar包引入。

经过这样处理就ok了!

4.服务怎么卸载?

这个简单!

5.还是有问题?

注意你服务器和javaservice是否兼容!

//---------------------------------------------------------------------------------

如果你碰到其他诡异的问题,请留言!!!

java service包_利用 javaService 发布服务(jar包)相关推荐

  1. 常用jar包_几个解决 Maven Jar 包冲突的小技巧.

    前言 大家在项目中肯定有碰到过Maven的Jar包冲突问题,经常出现的场景为: 本地运行报NoSuchMethodError,ClassNotFoundException.明明在依赖里有这个Jar包啊 ...

  2. java如何知道需导入哪个包_怎么知道缺少哪个jar包,求助!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.icss.framework; import java.lang.reflect.InvocationTargetExceptio ...

  3. python 枪表情包_利用python简单生成表情包

    哈哈,先来看下运行后的结果吧(下图) 说明:(表情即文字都可以自定义)先下载一个python的pygame包①进入到命令提示行 win + R ②进入命令提示行后 直接输入 pip install p ...

  4. jar包 jdk 停_一文读懂jar包的小秘密

    简介 java程序员每天不是在创建jar包就是在创建jar包的路上,并且各种依赖引用都是以jar包的形式展示的.但是随着现代IDE的出现,我想很多程序员已经基本上很少直接和jar包打交道了. 换句话说 ...

  5. python anaconda下载包_用Anaconda安装本地python包

    Anaconda确实带来了很多方便,但是之前也过多的依赖了conda自带的一键下载python包的功能.这不,这几天突然要用FastFM这个包,无奈conda里没有,于是只能从github下载下来,实 ...

  6. Java开发过程中开发工具Eclipse中导入jar包的过程

    欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...

  7. java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件

    问题: 多个*.java文件编译 *.java文件依赖其他的jar包 如下文件结构: F:\jar_pra child --child01 --MyChild.java --child02 --MyC ...

  8. idea中将java项目中的单个类打包成jar包

    文章目录 打包jar包 导入jar包使用 JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包.JAR文件与z ...

  9. java导入jar包源码_eclipse中导入jar包的源码

    在日常开发工作中,我们时常会需要查看下第三方jar包的源码来更加正确的理解该jar包或者框架提供的功能.下面是笔者知道的两种添加jar包源码的方式: 方式一:configure build path中 ...

最新文章

  1. C#开源磁盘/内存缓存引擎
  2. 在博客园添加Lisp(或其它)代码高亮
  3. qt 删除文件夹_Qt 贪吃蛇制作(含源码)
  4. 常见b2c网站购物车的设计
  5. php实现微信清粉功能,PHP实现微信提现功能
  6. free: seconds argument `1‘ failed
  7. ocx控件 postmessage消息会消失_实战经验:如何检测CMFCTabCtrl控件标签页切换事件...
  8. 地表最强mysql命令行连接工具mycli
  9. Python 最强编辑器PyCharm详细使用指南!
  10. chrome和火狐获取资源
  11. c语言开发视频监控系统,基于Crotex_A8平台的本地视频监控系统.doc
  12. MCSA / Windows Server 2016 安装,配置和管理 Nano Server
  13. 学习日记day22 平面设计 构图
  14. Java 2 实用教程(第5版)耿祥义版 习题七
  15. numpy到pytorch,鸟枪换炮
  16. Autoware.auto 毫米波雷达目标检测demo展示
  17. 上班一个月挣10万,居然全靠它...
  18. 13.华为秋招一二面
  19. 全局地址池和接口地址池
  20. 【已解决】在Overleaf/latex环境编辑Elsevier -> JVCI模板,参考文献显示为问号/不显示参考文献的问题

热门文章

  1. python语言包含的错误_Python语言环境错误:不支持的语言环境设置
  2. iOS 10 的坑:新机首次安装 app,请求网络权限“是否允许使用数据”
  3. 8月23日RSG素描:从套路到心理能量
  4. 计算机打印驱动怎么安装,打印机安装步骤,教您电脑怎么安装打印机驱动
  5. mysql忘记账号密码忘记了_mysql忘记帐号密码 解决办法。
  6. setup_machine_fdt
  7. 晶能转债,正元转02上市价格预测
  8. 知乎高清原图下载python极简脚本
  9. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数
  10. 电商平台下单(乐优)