热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java运行jar包命令,javajar包运行命令linux

具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。-Xbootclasspatha:在系统class加载后加载。然后测试运行,一切正常!注意使用相


java命令执行jar包的方式是众所周知的。 可以将Java APP应用程序项目打包到jar中。 当然,您必须指定包含main函数的main class作为此jar包的程序入口。


具体方法是修改jar包中目录META-INF下的MANIFEST.MF文件。


例如,有一个名为test.jar的jar包。 那里有一个带有主函数的主类: test.some class name


在MANIFEST.MF中添加以下语句:


main-class : test.some class name


然后,可以通过在控制台中输入java-jartest.jar来运行此jar。


但是,我们的项目需要引用其他第三方的jar包。 在eclipse中以项目jar包的形式引用了这个名为some.jar的包。 被放在项目的lib子目录下。 在最后一个项目包时还注入了此some.jar,但是在java-jar中运行此test.jar时没有发现Class异常


那么怎么办?


可以采用在运行时将其添加到classpath的方式吗? 在运行jar的同时添加classpath参数。


Java-class path some.jar-jar test.jar


用这个方法不行。 由于使用classpath指定的jar由AppClassloader加载,因此如果将-jar参数添加到java命令中,AppClassloader将只关注test.jar中的class


我该怎么引用其他的jar包?


纯真的天空、使用Bootstrap Classloader来加载这些类


在运行时可以使用以下参数:


-Xbootclasspath:完全取代了系统Javaclasspath。 最好不要用。


-Xbootclasspath/a:在加载系统类后加载。 一般都用这个。


-Xbootclasspath/p:在加载系统类之前加载。 使用时请注意。 如果和系统类冲突就不好了。


win32 Java-xbootclass path/a : some.jar; some2.jar; -jartest.jar


UNIX Java-xbootclasspath/a : some.jar : some2. jar :-jar test.jar


win32系统上的每个jar用分号分隔,unix系统下用冒号分隔


yjfdsp、使用Extension Classloader来加载


您可以将需要加载的jar丢弃在%JRE_HOME%/lib/ext下。 此目录下的jar包将在Bootstrap Classloader完成后由扩展类loader加载。 很方便,很安心。 )


方法三、还是用AppClassloader来加载,不过不需要classpath参数了


将以下代码添加到MANIFEST.MF中:


Class-Path: lib/some.jar


lib是与test.jar相同目录的子目录,test.jar引用的some.jar包位于此处。


然后测试执行,一切正常!


如果需要引用多个jar包:


class-path : lib/some.jar lib/some2. jar


用空格分隔各个jar就可以了。 请注意,使用相对路径。


此外,如果META-INF包含INDEX.LIST文件,则Class-Path配置可能无效。 INDEX.LIST是打包Jar打包工具时生成的索引文件,删除不会影响其执行。


方法四、自定义Classloader来加载


此方法是最终解决方案,基本上tomcat、jboss等著名的Java APP应用程序就是这样做的。


这种方式有点复杂,需要特意贴上来讨论。 有关ClassLoader的原理和自定义ClassLoader的信息,请参见此http://Cui Xiaodong 214.blog.163.com/blog/static/95163982009135859761


总结:


这四种方法都可以使用。 特别是当程序在非常简单的环境中运行时。 但是,在执行多任务、多个APP应用的环境中,每个APP应用期望是独立的,而第一个和第二个场景可能影响其他APP应用,因此期望选择第三和第四个。

实战一分快三三期必中jar丢弃在%JRE_HOME%/lib/ext下。 此目录下的jar包将在Bootstrap Classloader完成后由扩展类loader加载。 很方便,很安心。 )


方法三、还是用AppClassloader来加载,不过不需要classpath参数了


将以下代码添加到MANIFEST.MF中:


Class-Path: lib/some.jar


lib是与test.jar相同目录的子目录,test.jar引用的some.jar包位于此处。


然后测试执行,一切正常!


如果需要引用多个jar包:


class-path : lib/some.jar lib/some2. jar


用空格分隔各个jar就可以了。 请注意,使用相对路径。


此外,如果META-INF包含INDEX.LIST文件,则Class-Path配置可能无效。 INDEX.LIST是打包Jar打包工具时生成的索引文件,删除不会影响其执行。


方法四、自定义Classloader来加载


此方法是最终解决方案,基本上tomcat、jboss等著名的Java APP应用程序就是这样做的。


这种方式有点复杂,需要特意贴上来讨论。 有关ClassLoader的原理和自定义ClassLoader的信息,请参见此http://Cui Xiaodong 214.blog.163.com/blog/static/95163982009135859761


总结:


这四种方法都可以使用。 特别是当程序在非常简单的环境中运行时。 但是,在执行多任务、多个APP应用的环境中,每个APP应用期望是独立的,而第一个和第二个场景可能影响其他APP应用,因此期望选择第三和第四个。


推荐阅读
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
author-avatar
BB15107669916
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有