启动Java应用的Shell脚本

启动Java应用的Shell脚本,第1张

对于Java应用程序(非web应用) 在部署后 常常需要一个启动脚本来加载一些第三方的jar包 并启动应用

对于java应用程序 我一般喜欢将程序的目录结构写成如下的方式

myapp

| lib

| bin

| packages

一些配置文件和属性文件

一个startup sh 或bat启动脚本

其中 packages是程序的根包 其中有子包和class文件等

在包中 有一个Main calss的类 这个作老悄为程序的入口

下面给出一个最一般的写法

startup sh #!/bin/sh

programdir=

num=$#

temp=$CLASSPATH

#setting libs path

libs= /lib/*

append(){

temp=$temp : $

}

for file in $libsdo

append $file

done

咐含野export CLASSPATH=$temp: : /:$programdir

export LANG=zh_CN

nohup java classpath $CLASSPATH    packaages xxx yyy Main &

这样 只要按照上面的方式组织程序 启动脚本就需要改动下Main前面的包路径即可

nohup 上面脚本中最后一行前有nohup 这是将程序的输入衡喊输出都将附加到当前目录的 nohup out 文件中

lishixinzhi/Article/program/Java/hx/201311/25993

编写好的shell脚本(如:test),返伏可以采取两种方式进行运行:\x0d\x0a一、 $ sh test\x0d\x0a一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。\x0d\x0a也可以采用 $ ksh test\x0d\x0a这种方式要求shell具有“可读”的访问权限。\x0d\x0a二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。\x0d\x0achmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限)\x0d\x0achmod +rx test(同上)\x0d\x0achmod u+rx test(只有文件属主具有读和执行的访问权限)\x0d\x0a按照上述要求哗穗设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚乱世卜本了。\x0d\x0a1、test(如果命令检索路径包含当前目录)\x0d\x0a2、./test(如果命令减缩路径不包含当前目录)\x0d\x0a*说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。

上一篇 我写了在xcode里面添加 run script 来执行脚李源本,可是打包之后发现,只有用 xcode 运行的时候才会执行这个 shell 命令,查了很多资料,最后哪腊态我觉得应该是我理解错了,这里的 run script 很可能只是为了方便自动化打包局差之类的场景适用,而并不是真正的运行时执行脚本。那该怎么实现呢?

参阅博客一

参阅博客二

参阅博客三

但是有一个问题,因为脚本是:

adb需要管理员权限,所以一直提示没有权限执行脚本。

查了一下资料,可以用 with administrator privileges ,这时候又报"用户名密码不正确",不知道为啥,最终抛弃了 NSTask ,找到了 这个库 ,它自动帮我们处理权限问题,最终:

按理说这样应该就没啥问题了,可是这是由又报 someting went wrong:6005 ,又是一顿google, 最终发现 :


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12424411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存