android studio编写java项目,并部署到Tomcat服务器

事件回顾:公司需求要自己实现一个即时通讯替换掉现在的第三方即时通讯。于是各种查阅资料,百度之后实现了一个简单的demo(由于本篇不是关于即时通讯的所以就不贴代码了),服务端代码能正常的在本地运行(在android studio中运行一个带有main函数的类),在同一局域网的客户端可以访问到。可是只能在本地运行没用啊,既然是服务端必须要在服务器上运行才行。身为android程序员的我们问题就来了:
一、如何在服务器上运行java
方法一:
服务器在本质上跟我们的电脑一样,所以我们可以直接在服务器上安装android studio。然后就是跟在本地一样的运行代码。
这种方法虽然简单,但是非常不建议。因为服务器资源很宝贵,而且有的服务器是不能安装这些软件的(主流的服务器没有图形界面)。
方法二:
部署到tomcat中,java项目跟web项目部署到服务器有点区别。步骤:
1,将java项目打成jar包。
2,将jar包拷贝到\tomcat\webapps目录下(其实在服务器的任意目录下都行,不一定必须在tomcat目录下)。
3,在这个目录下运行java -jar xxx.jar。
相比方法一,这种方法在所有不同系统的服务器上都行,而且对服务器的内存消耗少,更可行。

二、如何用android studio生成jar包
在android studio中生成jar的方式有很多但都是在对应的module的build.gradle文件中加入代码,根据不同的需求选用相应的方法。
方式一:
在这里插入图片描述
然后再运行在这里插入图片描述
在build/libs中查看生成的jar
在这里插入图片描述
这种方式生成的jar是不包含第三方jar以及依赖文件的,而且运行java -jar xxx.jar会报错,如下图:
在这里插入图片描述
解压这个jar包后发现META-INF文件夹下面的MANIFEST.MF文件没有Main-Class,为其添加这个属性然后替换到jar包中的同名文件。重新运行java -jar serveDemo.jar。
在这里插入图片描述
成功!
关于解压jar的方法,可以将其后缀改成zip。将文件修改成功后再改成.jar。这种方法有点麻烦而且jar包中不包含应用的第三方依赖,当你想要将依赖的第三方jar或sdk都打在一起,可以使用下面方法。
方法二:在build.gradle中添加以下代码
在这里插入图片描述
然后双击Gradle\Demo\shadow\shadowJar:
在这里插入图片描述
同样在build\libs中会生成对应的jar,将jar包放到webApps目录下然后运行java -jar xxxx.jar。一次成功!同样将其解压后可以看到依赖的第三方包也在目录里在这里插入图片描述
我遇到了一个问题就是上面代码注释部分 include(dependency(‘com.alibaba:fastjson:1.2.58’))并不能正常打入jar包中,希望哪位大大能指点一下。最后只能到github上把fastjson.jar下载然后放到libs中,以后遇到同样的问题只能先这么解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值