最近要跑爬虫程序,需要打包成jar发在linux服务器中运行。主要是第三方的lib包与配置文件,不进行打包,方便修改。

1.eclipse中src中源码编译后生成的源码在bin文件中,把里面源码单独拿出。

2.编写MANIFEST.MF文件

Manifest-Version:  1.0
Class-Path: lib/commons-codec-1.9.jar lib/commons-logging-1.2.jar lib/fluent-hc-4.5.3.jar lib/httpclient-4.5.3.jar lib/httpclient-cache-4.5.3.jar lib/httpclient-win-4.5.3.jar lib/httpcore-4.4.6.jar lib/httpmime-4.5.3.jar lib/jna-4.1.0.jar lib/jna-platform-4.1.0.jar
Main-Class: com.zyw.main.Main

这里需要注意MANIFEST.MF文件的格式有:

  1. Manifest-Version,classPath,Main-Class冒号后面都有空格
  2. Main-Class后一行必须是空行
  3. Main-Class后面为主类完整路径名

如下图:

3.在程序中读取配置文件示例

public void getConf(){
// 获得当前目录路径
String rootPath = System.getProperty("user.dir").replace("\\", "/");
String jdbc=rootPath+"/conf/jdbc.conf";
Properties env = new Properties();
FileInputStream fis = null;
try {
fis = new FileInputStream(jdbc);
env.load(fis);
} catch (Exception ex) {
} finally {
try {
if(fis!=null){
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(env.getProperty("jdbc.usename"));
System.out.println(env.getProperty("jdbc.password"));
}

4.Jar命令打包与运行

jar cvfm JarDemo.jar MANIFEST.MF   com/   ##打包命令
java -jar JarDemo.jar ##运行命令

Java程序命令行打包Jar的更多相关文章

  1. 一些坑 Java 执行命令行命令 Spring Boot 打包为jar ResourceUtils.getFile 等出现的问题

    Java 执行命令行命令 这个没技术含量的东西耗费了我半个多小时 String command = ....; Process process = Runtime.getRuntime().exec( ...

  2. 通过JAVA调用命令行程序

    这是我在把数据导入到数据库时遇到问题,总结下来的.包含两个方法,一个方法是读取文件路径下的文件列表,主方法是执行cmd命令,在导入时想得到导入一个文件的时间,涉及到线程阻塞问题,这个问题理解不是很深, ...

  3. C语言基于窗体命令行打包,解包和浏览程序

    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#inc ...

  4. Java命令行启动jar包更改默认端口以及配置文件的几种方式

    Java命令行启动jar包更改默认端口以及配置文件的几种方式 java -jar xxx.jar --server.port=8081 默认如果jar包没有启动文件,可以采用这种方式进行启动 java ...

  5. android 7.0 多渠道打包 - 美团开源工具Walle 命令行打包

    在Android 7.0(Nougat)推出了新的应用签名方案APK Signature Scheme v2后,之前快速生成渠道包的方式(美团Android自动化之旅-生成渠道包)已经行不通了,对此美 ...

  6. mac下使用命令行打包出现bash gradle command not found的解决方案

    命令行打包的时候出现 bash gradle command not found这个问题,主要是因为gradle环境丢失.需要重新配置gradle的环境变量. 1. gradle路径的查找 然后gra ...

  7. 你使用 Web 平台安装程序命令行工具

    你使用 Web 平台安装程序命令行工具 获取的软件由其所有者授权给你.Microsoft 未授予你第三方软件的任何权利.已成功加载主源: https://go.microsoft.com/?linki ...

  8. Linux java 命令行编译 jar包

    Java 命令行编译成class,然后在打包成jar文件. 编译成class javac -classpath $CLASS_PATH -d class ./src/Hello.java 可以通过ja ...

  9. Java环境变量配置以及作用、JDK与JRE区别以及命令行引入jar包

    在配置环境变量中: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAV ...

随机推荐

  1. json_encode把中文字符的数组转为json格式

    function ch_json_encode($data) { /** * 将中文编码 * @param array $data * @returnstring */ function ch_url ...

  2. C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例

    一个奇怪的C语言问题,涉及到指针.数组.堆栈.以及printf.以下实现: 整数向字符串的转换,返回字符串指针,并在main函数中调用printf显示. #include<stdio.h> ...

  3. CRM实施中应避免的5大问题

    越来越多的人认识到,杂乱的客户信息应该统一管理.曾经人们用excel表格甚至是纸笔来记录客户信息,可是假设想知道这个客户我们销售接触过几次?邮件里都谈了什么?在线客服都和客户聊了什么?报价单发的啥价格 ...

  4. Android获取系统时间的多种方法

    Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现. 现总结如下: 方法一: ? 1 2 3 4 5 ...

  5. Spring MVC【入门】

    Spring MVC[入门]就这一篇! MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Mod ...

  6. 信息安全-加密:MD5

    ylbtech-信息安全-加密:MD5 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值( ...

  7. 百度ai和图灵123实现简单的语音对话

    百度ai和图灵123实现简单的语音对话

  8. c# post方式请求java form表单api

    using System; using System.Collections.Generic; using System.Net.Http; namespace ConsoleApplication1 ...

  9. JS装饰器模式

    装饰器模式:在不改变原对象的基础上,通过对其进行包装拓展(添加属性或者方法),保护原有功能的完整性需要条件:原对象,新内容(属性/方法)个人理解:重新实现一下,原对象的方法,在方法内容,先执行原对象的 ...

  10. oracle常规操作

    dbms_job.broken(job1,true);