事件回顾:公司需求要自己实现一个即时通讯替换掉现在的第三方即时通讯。于是各种查阅资料,百度之后实现了一个简单的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中,以后遇到同样的问题只能先这么解决。

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

  1. Android Studio创建Java项目

    我的简书:简书 在使用Android Stduio的过程中,可能需要测试一些java的东西,简单的可以使用Test包中些测试类进行测试,但是毕竟有些java相关的东西无法引用. 那么就需要使用Andr ...

  2. [Java] 使用Android Studio编写Java测试代码

    目录 一.创建"Java or Kotlin Library" 模组. 1.1 新建Android Project. 1.2 新建 "Java or Kotlin Lib ...

  3. Android Studio编写java工程并生成可执行jar

    Android Studio编写java工程并生成可执行jar 1.新建一个空的Android工程 2.新建一个java module 3.添加main方法 4.引用三方jar 5.打包输出为可执行j ...

  4. androidstudio使用mac字体_如何在Android Studio编写的项目中使用自定义字体

    有很多方法可以在字段上设置自定义字体系列,我使用如下所示. 要将字体添加为资源,请在Android Studio中执行以下步骤: 1)右键单击res文件夹,然后转到新建> Android资源目录 ...

  5. 如何将Java项目打包部署到Linux服务器进行访问

    1. 什么是Docker? Docker 是一个开源项目,诞生于 2013 年初, 初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 ...

  6. 写好的java项目如何部署在公司服务器上,并能让局域网内其他同事访问到,以及遇到的坑!

    ** 如何把自己写好的代码部署在外部服务器上呢? ** 我用的springboot框架在eclipse中写好的项目 ; 部署的步骤: 1. 修改项目的pom文件,需要改3处(项目jar改成war;添加 ...

  7. 建一个java项目并部署到weblogic服务器

     标签: java / eclipse / weblogic / 6792 编辑 删除 新建一个项目的步骤 打开eclipse,右键点击new–>java project,会出现如下页面.填 ...

  8. Android Studio编写运行测试纯java代码可带main()函数

    问题 小伙伴们在做安卓项目的时候,是不是有时候会忘记某些api的使用方法,不太确定他们的结果是怎样的,需要写一些测试代码,验证看看我们的写法是否正确.刚开始的时候我是在页面上写一个Button,添加点 ...

  9. 在Android Studio编写代码时,使用MaterialCardView的项目无法正常运行怎么办?简简单单搞定它_莫韵乐与bug的奇妙冒险

    在Android Studio编写代码时,使用MaterialCardView布局的项目闪退怎么办?简简单单搞定它 当我想用MaterialCardView去做一个好看的界面的时候,应用居然闪退了 经 ...

最新文章

  1. reid笔记 yolov5 deepsort
  2. 【rsyslogd】rsyslog 中 timereported 与 timegenerated 区别
  3. C++/Cli中事件对象处理函数的添加与删除
  4. Qt操作Office的一个实例--口算题生成器制作。
  5. VTK:图像索贝尔Sobel用法实战
  6. VB用API实现各种对话框(总结)(转载)
  7. 连接Oracle9i,因字符集造成乱码的解决方法
  8. Git小乌龟(TortoiseGit)使用详情
  9. 墨者学院——投票系统程序设计缺陷分析
  10. Tess4J OCR简单使用教程
  11. 弘玑Cyclone上榜36氪中国超自动化先锋企业
  12. ICLR 2020 图神经学习论文汇总
  13. 如何将pdf转换成txt转换器破解版
  14. 美国东北大学计算机硕士,美国东北大学计算机硕士
  15. MySQL 五.索引与算法
  16. 订单外卖小程序前台后台项目设计
  17. python数据结构之线性顺序表
  18. android高德地图上加自定义菜单,自定义UI控件-UI界面定制-开发指南-Android 导航SDK | 高德地图API...
  19. python从列表中随机抽取n个元素
  20. 运算符,++,--,*,/和%的运用和区别

热门文章

  1. ASCII码为160的空格,填坑
  2. HTTPS协议握手过程见解
  3. Traditional Recommendation Methods(传统推荐系统CF,MF)
  4. flask中SQLAlchemy使用MySQL的mediumtext字段类型
  5. 读取手机联系人简单方法(id,姓名,手机号)
  6. python 命名管道_命名管道实践
  7. LeetCode1036. 逃离大迷宫(BFS)
  8. TypeError: quantize() got an unexpected keyword argument ‘empty_init‘解决方案
  9. Seve (Radio Edit) 音乐播放器 V 1.0
  10. linux安装docker教程 centos 7