记一次Ubuntu18装Gitblit 出现A JNI error has occurred问题
原因
原因:装的时候参考了很多教程,但是用java -jar gitblit.jar命令根本不行,出现以下错误:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread “main” java.lang.NoClassDefFoundError: org/kohsuke/args4j/CmdLineException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
百度上都是说什么jdk有多个版本,瞎扯!!!!害人不浅,就因为这个折腾了很久,后来是直接用
java -cp “gitblit.jar:ext/*” com.gitblit.GitBlitServer --baseFolder data
或者
./gitblit.sh
两者必需在主目录才行运行起来的;
下面记一下安装的整个过程,以及添加开机启动,百度过很多文章都没法用他们说的service gitblit start进行启动的,汗!!!
下载gitblit-1.9.1
官网:http://gitblit.github.io/gitblit/
下载好后tar命令解压到自己想装的目录:
tar -xvf gitblit-1.9.1.tar.gz /home/programs/
解压后,默认配置文件在data目录下的default.properties
vim defaults.properties
进入编辑后 对相关的几个重要的配置参数进行修改
Server.httpPort 是对http协议进行的配置,可自定义 若参数设为0则为禁用此端口,例如将server.https设为0则是禁用https的端口 ,这里若只用http协议可以将其设为8989 ,将httpsPort和sshPort的端口设为0禁用,根据个人具体需要来设置
设置修改编辑完成后按ESC 输入:wq 保存退出
配置完成后: 可以切换到目录 /home/programs/gitblit-1.9.1
执行命令
java -cp “gitblit.jar:ext/*” com.gitblit.GitBlitServer --baseFolder data
或者
./gitblit.sh
就可以运行起来了;
添加到开机自启动
发现一个现象:就是在/home/programs/gitblit-1.9.1目录的时候执行./gitblit.sh是可以的,但是如果不是这个目录下直接运行
/home/programs/gitblit-1.9.1/gitblit.sh
会报错:错误: 找不到或无法加载主类 com.gitblit.GitBlitServer
所以解决方法是编辑gitblit.sh
命令:vim gitblit.sh
在前面添加如下代码:
cd /home/programs/gitblit-1.9.1 (也就是切换程序的主目录)
nohup java -cp “gitblit.jar:ext/*” com.gitblit.GitBlitServer --baseFolder data &>/home/programs/gitblit-1.9.1/log/log.out &
效果如图:
保存退出;
然后就可以在其他目录也能运行/home/programs/gitblit-1.9.1/gitblit.sh 命令了,
最后添加到启动项:vim /etc/rc.local
把命令/home/programs/gitblit-1.9.1/gitblit.sh添加到里面即可;启动前记得先加载jdk环境也就是在/etc/rc.local 中添加,不然运行不起来
效果图:
还有要在data目录里创建temp目录,不然启动也是报错的,要注意权限!不同的用户可以用
/home/programs/gitblit-1.9.1/gitblit.sh命令直接启动看看启动信息有没有报错,
一开始我的就是报了log 和 temp不存在,于是创建了,后来又报权限不够,在/home/programs/gitblit-1.9.1目录用
chmod 777 -R *
命令给下权限就行了
我这里是指定了启动的输出日志,所以要手动在目录里创建log目录,不然命令起不来,会报没有此文件夹的错误。
添加启动成功了,到此安装好了!
最后贴上ubuntu18 的添加开机启动设置:https://www.jianshu.com/p/79d24b4af4e5