问题1:java -jar xxx.jar,运行jar包没有主属性清单

解决:打开压缩包打开文件夹META-INF,找到MANIFEST.MF文件,增加:

Main-Class: hadoop.HdfsTest(注意:冒号后面要有个空格,不然会提示invalid or corrupt jarfile,没有META-INF也会出现这个错误,而提示没有主属性清单一般是有META-INF文件夹但下面没有MANIFEST.MF文件 )

其中hadoop.HdfsTest为包名.类名

问题2:intelllij idea打包不含有META-INF

解决:选择“Main Class”后,选择“copy to the output  and link via manifest”,打包时Directory for META-INF/MAINFEST.MF,此项默认为D:\workshop\DbUtil\src\main\java,需要改成:D:\workshop\DbUtil\src\main\resources,如果不这样修改,打成的jar包里没有包含META-INF/MAINFEST.MF文件。

若要将所有包放在一个目录里,则可新建个目录lib,将包拖动进去,然后注意改下面的classPath,前面加上目录:lib\

问题3:怎样运行有依赖的jar程序?

解决1:没有依赖时,java -jar xxx.jar, 要求jar 包含所依赖的所有东西,并且含有META-INF及其MANIFEST.MF, 否则会提示没有主属性清单

解决2:运行 eg:java -cp hbase_handles.jar; myhadoop.HdfsTest

其中-cp:classpath

hbase_handles.jar 指类路径下的jar文件,就是-cp指定的文件,不同的jar文件在windows中用";"隔开,在linux中用":"隔开

myhadoop.HdfsTest 这是一个类名,指主入口的类,myhadoop是一个包名,HdfsTest是这个包下的类名。

理解:如果hbase_handles.jar中包含所有依赖的jar,或者在MANIFEST.MF中已经指定了主属性入口即Main-Class及所有依赖的jar,即classpath,那么

java -jar hbase_handles.jar与

java -cp hbase_handles.jar; myhadoop.HdfsTest效果是一样的

本例:

Manifest-Version: 1.0

Class-Path: lib\xz-1.0.jar lib\asm-3.1.jar lib\guice-3.0.jar lib\avro-

1.7.4.jar lib\joni-2.1.2.jar lib\junit-4.12.jar lib\jsch-0.1.42.jar l

ib\xmlenc-0.52.jar lib\guava-12.0.1.jar lib\jets3t-0.9.0.jar lib\jett

y-6.1.26.jar lib\jsr305-1.3.9.jar lib\paranamer-2.3.jar lib\activatio

n-1.1.jar lib\commons-el-1.0.jar lib\commons-io-2.4.jar lib\hbase-it-

1.1.3.jar lib\httpcore-4.1.3.jar lib\javax.inject-1.jar lib\jaxb-api-

2.2.2.jar lib\jcodings-1.0.8.jar lib\jettison-1.3.3.jar lib\jsp-2.1-6

.1.14.jar lib\aopalliance-1.0.jar lib\commons-cli-1.2.jar lib\commons

-net-3.1.jar lib\disruptor-3.3.0.jar lib\jersey-core-1.9.jar lib\jers

ey-json-1.9.jar lib\libthrift-0.9.0.jar lib\servlet-api-2.5.jar lib\s

lf4j-api-1.7.7.jar lib\zookeeper-3.4.6.jar lib\commons-lang-2.6.jar l

ib\commons-math-2.2.jar lib\hbase-rest-1.1.3.jar lib\httpclient-4.2.5

.jar lib\jersey-guice-1.9.jar lib\commons-codec-1.9.jar lib\guice-ser

vlet-3.0.jar lib\hadoop-auth-2.5.1.jar lib\hadoop-hdfs-2.5.1.jar lib\

hbase-shell-1.1.3.jar lib\jackson-xc-1.9.13.jar lib\jackson-xc-1.9.13

.jar lib\jaxb-impl-2.2.3-1.jar lib\jersey-client-1.9.jar lib\jersey-s

erver-1.9.jar lib\jetty-util-6.1.26.jar lib\netty-3.2.4.Final.jar lib

\api-util-1.0.0-M20.jar lib\hbase-client-1.1.3.jar lib\hbase-common-1

.1.3.jar lib\hbase-server-1.1.3.jar lib\hbase-thrift-1.1.3.jar lib\js

p-api-2.1-6.1.14.jar lib\leveldbjni-all-1.8.jar lib\metrics-core-2.2.

0.jar lib\commons-logging-1.2.jar lib\commons-math3-3.1.1.jar lib\had

oop-client-2.5.1.jar lib\hadoop-common-2.5.1.jar lib\jamon-runtime-2.

3.1.jar lib\java-xmlbuilder-0.4.jar lib\protobuf-java-2.5.0.jar lib\s

nappy-java-1.0.4.1.jar lib\spymemcached-2.11.6.jar lib\commons-digest

er-1.8.jar lib\hbase-examples-1.1.3.jar lib\hbase-it-1.1.3-tests.jar

lib\hbase-protocol-1.1.3.jar lib\jackson-jaxrs-1.9.13.jar lib\jruby-c

omplete-1.6.8.jar lib\commons-daemon-1.0.13.jar lib\hadoop-yarn-api-2

.5.1.jar lib\hbase-procedure-1.1.3.jar lib\jasper-runtime-5.5.23.jar

lib\api-asn1-api-1.0.0-M20.jar lib\commons-compress-1.4.1.jar lib\com

mons-httpclient-3.1.jar lib\jasper-compiler-5.5.23.jar lib\jetty-ssle

ngine-6.1.26.jar lib\netty-all-4.0.23.Final.jar lib\servlet-api-2.5-6

.1.14.jar lib\apacheds-i18n-2.0.0-M15.jar lib\commons-beanutils-1.7.0

.jar lib\hbase-annotations-1.1.3.jar lib\hbase-prefix-tree-1.1.3.jar

lib\jackson-core-asl-1.9.13.jar lib\hadoop-annotations-2.5.1.jar lib\

hadoop-yarn-client-2.5.1.jar lib\hadoop-yarn-common-2.5.1.jar lib\hba

se-common-1.1.3-tests.jar lib\hbase-server-1.1.3-tests.jar lib\common

s-collections-3.2.2.jar lib\commons-configuration-1.6.jar lib\hbase-h

adoop-compat-1.1.3.jar lib\jackson-mapper-asl-1.9.13.jar lib\hbase-ha

doop2-compat-1.1.3.jar lib\hbase-resource-bundle-1.1.3.jar lib\common

s-beanutils-core-1.8.0.jar lib\findbugs-annotations-1.3.9-1.jar lib\h

trace-core-3.1.0-incubating.jar lib\hbase-annotations-1.1.3-tests.jar

lib\hadoop-yarn-server-common-2.5.1.jar lib\apacheds-kerberos-codec-

2.0.0-M15.jar lib\hadoop-mapreduce-client-app-2.5.1.jar lib\hadoop-ma

preduce-client-core-2.5.1.jar lib\hadoop-mapreduce-client-common-2.5.

1.jar lib\hadoop-mapreduce-client-shuffle-2.5.1.jar lib\hadoop-mapred

uce-client-jobclient-2.5.1.jar lib\spark-1.6.1-yarn-shuffle.jar lib\m

ysql-connector-java-5.1.39-bin.jar lib\spark-assembly-1.6.1-hadoop2.7

.1.jar

Main-Class: myhadoop.HdfsTest

可以看到hbase_handles.jar中如此多的依赖,当然我们可以删除其中的依赖,然后在运行的时候手动的增加依赖。如下:

Manifest-Version: 1.0

Class-Path:

Main-Class: myhadoop.HdfsTest

可以看到,当我们去除MANIFEST.MF中的依赖时,运行出现了错误,NoClassDefFoundError,说明依赖包的类没有找到。

当下面加上我们所依赖路径下的全部包时

java -cp D:\***\workspace\hbase_handles\out\artifacts\hbase_handles_jar\lib\*;hbase_handles.jar; myhadoop.HdfsTest

运行正常。

jar包依赖的添加我们可以用fatjar的形式也可以用这种一个个添加的形式,至于intellij idea中打包类似fatjar的还不是太了解。

java 打包运行_java 打包与运行相关推荐

  1. java 打包 根目录_java打包

    java打包 编译时打包: javac -d "要把包打到哪:盘符或者.(.表示当前目录)" 文件名.java 执行打包的.class文件 java -cp(cp代表临时的环境变量 ...

  2. java 打包工具_Java打包Windows安装程序

    目前对于开发Windows桌面程序而言,Java Swing并不是最好的选择,但是对于Java/Android程序员来说,Swing是最快上手和最容易熟悉的语言,和Android类似,Swing也提供 ...

  3. java c 速度_Java和C#运行速度对比:Java比C#快约3倍

    测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. Java代码: package javatest; public class ...

  4. java打包维护_java打包详解

    from yahh2008的blog:  http://www.matrix.org.cn/blog/yahh2008/ 兄弟,对java着迷吗,或者是为了自己的生计,不论怎样都欢迎你进入精彩java ...

  5. java运行时_java编译时与运行时概念与实例详解

    Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...

  6. java 打包目录_Java打包文件目录问 zip文件

    Java打包文件目录问 zip文件. /** * 资源打包下载类 * Created by Ruan Banshu on 2015/4/13. */ public class ZipOpUtil { ...

  7. java 模拟电梯_java模拟电梯运行简单实现,swing界面

    每次只能一个人,,,功能不全 import javax.swing.*; import java.awt.*; import java.util.*; public class Hufan exten ...

  8. java文件不能运行_java文件不能运行怎么办?

    java文件不能运行怎么办? java文件不能运行的解决办法: 1.安装好Java虚拟机后,打开桌面上"我的电脑",点击菜单"工具"→"文件夹选项&q ...

  9. java jvm原理_JAVA和JVM运行原理

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器.它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序. 编译器负责把Java ...

最新文章

  1. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(HTML5和CSS3)
  2. Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分
  3. qt creator:一款能够在windows/linux/mac系统上开发c程序的IDE
  4. python读什么类型文件最快的软件_使用python读取数据科学最常用的文件格式(转)...
  5. python含金量最高的考试_中国最难的五大考试,第二个含金量最高,考过年薪30万起!...
  6. js去掉字符串中的所有空格
  7. 我的世界javamod怎么装_装暖气片,10个有8个人都想知道的这点事儿!
  8. 怎么将手机QQ浏览器里面的文章分享给QQ好友
  9. HDU3788 ZOJ问题
  10. PB 程序发布相关
  11. 开源软件漏洞安全风险分析
  12. Android adb shell命令详解及实例
  13. java+poodle漏洞修复_如何修复 POODLE SSLv3 安全漏洞 (CVE-2014-3566)
  14. 大一下数据结构编程实验——线性结构及其应用
  15. 极客时间 IT 20+ 张 各架构 高清技能图谱
  16. 使用matlab绘制条形图、面积图、饼图、柱状图
  17. java内存模型浅析_浅谈java内存模型
  18. python launcher卸载后蓝屏_大毒瘤!卸载WeGame解决XPS 15蓝屏问题
  19. php一张纸对折,给你一张纸,你最多能对折几次?
  20. 计算机组成原理寄存推实验报告,计算机组成原理移位寄存实验报告.doc

热门文章

  1. hive linux时间戳转换,Hive 中 时间戳,字符串转换
  2. php gmssl,支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱GmSSL
  3. 在UE商城购买了并安装的插件迁移方式
  4. Ubuntu下的Rabbitvcs安装配置
  5. MSN无法登陆报80048820错误
  6. 5分钟看懂区块链-区块链技术最最最好使用技巧
  7. ThinkPad P52 安装Ubuntu16双系统踩雷与建议 (图显P1000)
  8. 基于802.11n物理层的OFDM通信链路simulink仿真,包括FEC编码、插入导频、OFDM成帧、STBC编码
  9. 地方社区(兰州论坛)成功运营 经典十问十答
  10. 家具建材行业电商平台解决方案