在学习Redis的过程中,在学到Redis客户端Jedis的时候,考虑到能不能在ubuntu下用Vim编写Java程序并且能够运行呢?

  于是,首先在网上调研了一番用Vim写Java程序的可实现性。

  相对于我们熟悉的IDE来说,使用Vim编写程序并且在Ubuntu下通过命令行运行还是比较麻烦的:

  • 首先没有自动补全功能,当然自动补全可以通过插件来实现,但是目前的插件有的时候自动补全不能工作。
  • 文件系统比较复杂,没有很清晰的文件目录结构。
  • 代码几乎手敲,什么都是手敲。
  • 使用API的时候不知道要重写那些方法,需要查阅API手册,会很麻烦。
  • 使用命令行运行的时候,导入第三方包很麻烦,环境变量什么的很烦人。

  总结来说:可以用,但是不适合。

  当然,你要是说用Linux版本的eclipse不就行了嘛,那当然了,但是就想搞清楚一下。

  

  1.安装JDK配置环境变量什么的就不细说了,运行java -version就能知道能不能正确使用:

root@myubuntu:/home/software# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) -Bit Server VM (build 25.161-b12, mixed mode)

  2.首先将要执行的java程序放在/home/workspace/JedisTest/src下,将需要导入的jar包放在/home/workspace/JedisTest/lib下

root@myubuntu:/home/workspace# tree
.
└── JedisTest
├── bin
├── lib
│   └── jedis-2.9..jar
└── src
└── ubuntuJedis.java directories, files

  3.编译。

  -cp指定环境变量,可以用-classpath代替,-d指定编译的类文件路径

root@myubuntu:/home/workspace/JedisTest# javac -cp /home/workspace/JedisTest/lib/jedis-2.9..jar -d /home/workspace/JedisTest/bin src/ubuntuJedis.java
root@myubuntu:/home/workspace/JedisTest# tree
.
├── bin
│   └── ubuntuJedis.class
├── lib
│   └── jedis-2.9..jar
└── src
└── ubuntuJedis.java directories, files

  4.运行

  首先看一下Redis没有字段:

127.0.0.1:> keys *
(empty list or set)

  使用java命令运行,注意的是-cp:jar包路径 + “/” + jar包 + “:” + 类文件路径 + “” + 类名称,linux中使用冒号作为分隔符。

root@myubuntu:/home/workspace/JedisTest# java -cp /home/workspace/JedisTest/lib/jedis-2.9..jar:/home/workspace/JedisTest/bin/ ubuntuJedis
ubuntuJedis
root@myubuntu:/home/workspace/JedisTest# redis-cli
127.0.0.1:> keys *
) "ubuntu"
127.0.0.1:> get ubuntu
"ubuntuJedis"

  5.总结

  主要还是环境变量的问题,也可以在/etc/profile文件中修改环境变量,不管怎么样都是很麻烦。

  所以,还是用IDE吧。

(记录)Ubuntu系统中运行需要导入jar包的Java程序的更多相关文章

  1. 在Linux下运行引入了外部jar包的java程序

    如图:H.java里引入了commons-io-2.2.jar 代码如下: import org.apache.commons.io.IOUtils; public class H{ public s ...

  2. idea中运行maven安装jar包到本地仓库跳过test

  3. Android使用KSOAP2调用WebService及正确导入jar包的问题(转)

    Android使用KSOAP2调用WebService及正确导入jar包的问题(转)     错误信息 最近在学Android使用KSOAP2调用现有的Webservice的方法,期间在网上找了很多代 ...

  4. Android 系统中运行jar文件

    在android系统中运行jar操作步骤: 1.       打包编译jar包 2.       将jar包导入android设备中 adb push test.jar  /data/local/tm ...

  5. 使用mybatis assembly插件打成tar包,在linux系统中运行服务

    使用mybatis assembly插件打成tar包,在linux系统中运行服务 assembly插件插件地址: 链接:https://pan.baidu.com/s/1i6bWPxF 密码:gad5 ...

  6. Java开发过程中开发工具Eclipse中导入jar包的过程

    欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...

  7. 在Debian/Ubuntu系统中安装*.sh与*.bin文件

    在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...

  8. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

  9. 二、Android Studio使用——导入jar包,运行、debug都不是问题

    [新建AndroidStudio工程,lib导入jar包]   我们的项目代码都在app里面,可以看作是一个Model.   src 下面除了我们的代码之外,还有单元测试. 把JAR复制到libs文件 ...

随机推荐

  1. Spring boot 官网学习笔记 - Configuration Class(@import)

    推荐使用 Java-based configuration ,也可以使用xml we generally recommend that your primary source be a single ...

  2. 2019-ccpc秦皇岛现场赛

    https://www.cnblogs.com/31415926535x/p/11625462.html 昨天和队友模拟了下今年秦皇岛的区域赛,,,(我全程在演 题目链接 D - Decimal 签到 ...

  3. linux 更改文件所属用户及用户组

      在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组.在Linux中,对于文件的权限(rw ...

  4. js模拟下拉菜单-键盘、鼠标(代码详解)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Android Studio 优秀插件:GsonFormat

    作为一个Android程序猿,当你看到后台给你的json数据格式时: { "id":123, "url": "http://img.donever.c ...

  6. java工具类之Arrays、Collections以及比较器

    一.Comparable和Comparator的详解 Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实 ...

  7. e课表项目第二次冲刺周期第六天

    昨天干了什么? 昨天是这次冲刺周期的第五天,我们的冲刺周期已经快过了一半,我们已经实现了对第一层界面的设计,所以我们的进度和我们的时间正好吻合,所以我们有信心完成我们的软件.我在网上搜了一些关于监听的 ...

  8. 跑的比谁都快 51Nod - 1789

    香港记者跑的比谁都快是众所周知的常识.   现在,香港记者站在一颗有  nn 个点的树的根结点上(即1号点),编号为  ii 的点拥有权值  a[i]a[i] ,数据保证每个点的编号都小于它任意孩子结 ...

  9. 线程池和lambda表达式

    线程池1.什么是线程池.一个用来创建和管理线程的容器;2.线程池的作用.提高线程的复用性,降低资源消耗提高线程的响应速度,提高线程的可管理性3.线程的核心思想;线程的复用 4.线程池的创建Execut ...

  10. Vue中插槽指令

    08.29自我总结 Vue中插槽指令 意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id ...