我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell如何执行/调用Java/Jar程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell如何执行/调用Java/Jar程序

这篇文章主要介绍了Shell如何执行/调用Java/Jar程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Shell执行/调用Java/Jar程序例子的实例详解

前言:

最近要写一个独立的Java程序去监控Hadoop和Oozie,通过Shell去调用.写代码到现在也4年多了,貌似就从来没在生产环境中写过一个独立的Java程序,不是部署到Tomcat就是直接丢给Hadoop.于是参考Hadoop等开源环境,自己写了一个demo,并且可以通过Ant打包生成可运行的程序.所以这里有三步:Java程序,Shell,Ant

     1.首先建立Java程序,由于是例子,所以这里很简单,只是输出传入参数的个数,

代码如下:

package com.guoyun.study.shell;  public class ShellJavaAnt {       public static void main(String[] args) {     System.out.println("arguments length:"+args.length);   }  }

    2.Shell脚本

Shell代码 

#!/bin/bash # PRG="${0}" while [ -h "${PRG}" ]; do  ls=`ls -ld "${PRG}"`  link=`expr "$ls" : '.*-> \(.*\)$'`  if expr "$link" : '/.*' > /dev/null; then   PRG="$link"  else   PRG=`dirname "${PRG}"`/"$link"  fi done  BASEDIR=`dirname ${PRG}` BASEDIR=`cd ${BASEDIR}/..;pwd`   if test -z ${JAVA_HOME} then   JAVA_BIN=java else   JAVA_BIN=${JAVA_HOME}/bin/java fi  CLASS_PATH=$BASEDIR/shell-run-java-by-ant-*.jar SERVICE_CLASS="com.guoyun.study.shell.ShellJavaAnt"  ${JAVA_BIN} -cp $CLASS_PATH ${SERVICE_CLASS} "${@}"  exit 0

    3.ANT

Xml代码 

<project name="shell-run-java-by-ant" default="release-jar" basedir=".">   <property file="build.properties" />     <property name="jar.name" value="shell-run-java-by-ant" />  <property name="version" value="0.1" />  <property name="package.name" value="${jar.name}-${version}" />   <property name="build.dir" location="build" />  <property name="build.cache.dir" location="${build.dir}/cache" />  <property name="build.lib.dir" location="${build.dir}/lib" />  <property name="javadoc.dir" location="javadoc" />  <property name="dist.dir" location="dist" />  <property name="dist.java.dir" location="${dist.jar}/java" />  <property name="package.dir" location="${dist.dir}/${package.name}" />  <property name="tar.file" location="${dist.dir}/${jar.name}-${version}.tar.gz" />    <property name="class="lazy" data-src.dir" location="class="lazy" data-src" />  <property name="java.class="lazy" data-src.dir" location="${class="lazy" data-src.dir}/java" />  <property name="test.class="lazy" data-src.dir" location="${class="lazy" data-src.dir}/test" />   <property name="classes.dir" location="${build.dir}/classes" />  <property name="lib.dir" value="${basedir}/lib"/>  <property name="script.dir" value="${basedir}/script"/>    <target name="release" description="sets properties for release builds.">     <echo message="Building in release mode..."/>     <property name="compile.mode" value="release"/>     <property name="java.debug" value="false"/>  </target>   <target name="init">   <tstamp/>   <mkdir dir="${build.dir}" />   <mkdir dir="${classes.dir}" />  </target>   <macrodef name="compile-source">   <sequential>   <javac class="lazy" data-srcdir="${java.class="lazy" data-src.dir}" destdir="${classes.dir}" debug="${java.debug}" debuglevel="lines,vars,source">    <classpath>     <fileset dir="lib">      <include name="***" />    </fileset>   </copy>   <copy todir="${package.dir}">    <fileset file="${build.dir}/${jar.name}-${version}.jar"/>   </copy>   <copy todir="${package.dir}/" file="build.xml"/>   <copy todir="${package.dir}/bin" includeEmptyDirs="false">       <fileset dir="${basedir}/script/shell">         <include name="***.sh" />     <include name="**" />    </tarfileset>    <tarfileset dir="${package.dir}" mode="777" prefix="${package.name}">     <include name="***.jar"/>     </fileset>    </classpath>   </javadoc>  </target>   <target name="release-jar" description="Build release and jar" depends="release,jar"/>   <target name="clean" description="clean up">   <delete dir="${build.dir}"/>   <delete dir="${classes.dir}" />   <delete dir="${dist.dir}"/>  </target>  </project>

    由于比较简单,这里就不多做注释,完整例子,请见附件.使用的话,只要进入你的工程,运行ant package,便会将程序打包到$YOUR_PROJECT/dist目录下.之后进入该程序运行bin/shell-java-ant  a b c d e f g,就会得到arguments length:7
这样子的输出.

感谢你能够认真阅读完这篇文章,希望小编分享的“Shell如何执行/调用Java/Jar程序”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell如何执行/调用Java/Jar程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell如何执行/调用Java/Jar程序

这篇文章主要介绍了Shell如何执行/调用Java/Jar程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Shell执行/调用Java/Jar程序例子的实例详解前言:最近要
2023-06-09

Shell执行/调用Java/Jar程序例子的实例详解

Shell执行/调用Java/Jar程序例子的实例详解 前言: 最近要写一个独立的Java程序去监控Hadoop和Oozie,通过Shell去调用.写代码到现在也4年多了,貌似就从来没在生产环境中写过一个独立的Java程序,不是部署到Tom
2022-06-04

Python调用Java可执行jar包问题

这篇文章主要介绍了Python调用Java可执行jar包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

如何执行java程序

首先我们在命令行运行Java程序需要借助jdk的环境依赖,打开jdk包,需要找到javac和java两个文件,如下图所示:接下来我们需要打开运行窗口,然后在运行窗口中输入cmd命令,如下图所示:在CMD命令行界面中我们输入cd命令进入到java程序文件所在的目
如何执行java程序
2014-07-08

java程序的jar包怎么利用shell脚本运行

这篇文章将为大家详细讲解有关java程序的jar包怎么利用shell脚本运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序
2023-05-31

Linux下用java -jar运行可执行jar包的方法教程

问题来源一般来说,一个稍微大些的项目都会有一些依赖的Jar包,而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持在线编译及打包,那么需要自己上传依赖的Jar包,然而可能服务器上已经存在了该项目所依赖的Jar包(比
2023-05-31

使用Shell脚本如何启动/停止Java的jar程序

本文介绍如何使用Shell脚本来开启和停止jar程序的后台运行,以及如何实现out大文件的切分。另外,补充一些后台运行的小知识。 启动脚本:start_upload.sh#!/bin/sh nohup java -jar UploadSch
2022-06-04

如何将Java程序打包成一个可执行的jar文件包

如何将Java程序打包成一个可执行的jar文件包?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、首先要确认自己写的程序有没有报错。2、第一次我写的是Web Project
2023-05-31

java中如何让线程顺序执行

下面由java入门程序栏目为大家介绍如何在java中让线程顺序执行,希望对大家有所帮助!我们需要完成这样一个应用场景:1.早上;2.测试人员、产品经理、开发人员陆续的来公司上班;3.产品经理规划新需求;4.开发人员开发新需求功能;5.测试人员测试新功能。规划需
java中如何让线程顺序执行
2020-07-30

java如何调用jar包的类

要调用一个JAR包中的类,您需要执行以下步骤:1. 将JAR包添加到Java项目的类路径中。您可以在命令行中使用`-cp`参数,或在IDE中将JAR包添加到项目的依赖或构建路径中。2. 在Java代码中使用`import`语句导入JAR包中
2023-08-08

Python实现调用jar或执行java代码的方法详解

这篇文章主要介绍了Python实现调用jar或执行java代码的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-21

centOS6中使用crontab定时运行执行jar程序的脚本

1、编写一个简单的java程序public class testshell {public static void main(String[] args) {int count = 0;for (String arg : args) {Sy
2022-06-04

Java如何调用C++程序

这篇文章将为大家详细讲解有关Java如何调用C++程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、编写Java程序:HelloWorld代码如下:package HelloWorld;public
2023-06-29

java如何调用Python程序

这篇文章主要介绍了java如何调用Python程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。因为工作需要,就简单学习了下,用的是IDEA ,jdk 1.81、本地Proc
2023-06-20

调用SQL触发器执行外部程序

标题:SQL触发器调用外部程序的具体代码示例正文:在使用SQL触发器时,有时候需要调用外部程序来处理一些特定的操作。本文将介绍如何在SQL触发器中调用外部程序,并给出具体的代码示例。一、创建触发器首先,我们需要创建一个触发器来监听数据库
调用SQL触发器执行外部程序
2024-02-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录