当前位置: 首页 > news >正文

教你在 OSX 下最简单搭建 Clojure 开发环境的步骤

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前一阵子对 Clojure 产生了兴趣,买了几本书,上网看了看其他人写的环境搭建教程,发现一个个都是尽量往复杂里说,看着那些复杂的步骤,好不容易产生的一点想要尝试的心情都被打消了,于是一直拖着都没有搭环境,天天只是看看书上的例子。

昨天看了 Notch 直播的 48 小时游戏编程,被小小震撼一把,觉得应该向牛人学习,就先从这个环境搭建做起,仔细研究了一下 Clojure 的文档,才发现原来其实很简单。

在 OSX 下最简化的 Clojure 环境甚至只需用下载拷贝一个 Clojure 压缩包就可以了,只是被很多人人为地搞复杂了,他们又要加什么 Clojure 项目管理工具 leiningen,又要搞什么 maven2 来构建 Java 项目,设置半天路径。。。是个人都会被他们搞糊涂。

好了,言归正传,今天我就写一个最简单的 Clojure 搭建环境,暂时不去管什么 leiningen,maven2,只把 Clojure 的 REPL 搞出来,让你马上就能在这个环境下调试 Clojure 代码。

首先,查看一下自己的 OSX 环境下有没有安装 java,一般来说都是安装好的,打开一个终端,输入命令:java -version 如下:

Air:python-code admin$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
Air:python-code admin$

显示我们的 OSX 已经安装了 java 1.6.0 的版本。

很好,接下来去下载一个 Clojure 的压缩包,地址在这里:

Clojure 1.5.1

下载回来之后解压,然后从终端进入该目录,如下:

Air:~ admin$ cd clojure-1.5.1/
Air:clojure-1.5.1 admin$ ls
build.xml		clojure-1.5.1.jar	epl-v10.html		src
changes.md		clojure.iml		pom.xml			test
clojure-1.5.1-slim.jar	doc			readme.txt
Air:clojure-1.5.1 admin$

最后就是在这个终端里输入命令:java -cp clojure-1.5.1.jar clojure.main 截图如下:

Air:clojure-1.5.1 admin$ java -cp clojure-1.5.1.jar clojure.main
Clojure 1.5.1
user=>

这条命令有3个参数,第一个 -cp 表示 -classpath 

整条命令的意思是:启动一个新的 JVM 进程,启动的 classpath 包含了当前目录中的 clojure-1.5.1.jar 文件,并且以类 clojure.main 作为它的主入口。

好了,这时就可以试验 Clojure 的代码了,比如:
user=>  (+ 3 4)
7
user=>

OK,运算结果正确显示,说明我们最简单的 Clojure REPL 环境已经搭建成功了!

当然了,也许有朋友连这都嫌麻烦,那也有办法,可以用浏览器访问这个地址:www.tryclj.com 

这里不需要做任何配置,直接在浏览器上就可以试验 Clojure,看看截图:


好了,现在再没有偷懒的借口了吧!那就一起来学习 Clojure 吧!

转载于:https://my.oschina.net/freeblues/blog/184772

相关文章:

  • Java命令学习系列(七)——javap
  • 点滴积累【C#】---将Excel数据导入到数据库
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • JS操作DOM的几个属性与方法
  • 201771010101 白玛次仁《面向对象程序设计(Java)》第十一周学习总结
  • 【持续更新】jQuery 实用技巧
  • 学JS的心路历程-函式(五)箭头函式
  • 【转】Ruby入门教程(一)
  • 进程【TLCL】
  • 深入数据库索引背后算法及数据结构
  • 基于游标的分页接口实现
  • Docker1---安装
  • 如何利用极致业务基础平台构建一个通用企业ERP之十二收款单设计
  • 如何给esxi打补丁
  • OpenCart之信息中心(Information)模块教程
  • [NodeJS] 关于Buffer
  • 0基础学习移动端适配
  • 2017年终总结、随想
  • React+TypeScript入门
  • TCP拥塞控制
  • Vue2.0 实现互斥
  • 复杂数据处理
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 源码安装memcached和php memcache扩展
  • ​secrets --- 生成管理密码的安全随机数​
  • (02)vite环境变量配置
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (四) Graphivz 颜色选择
  • (转)程序员技术练级攻略
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core引入性能分析引导优化
  • .net Signalr 使用笔记
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • [20150904]exp slow.txt
  • [android] 练习PopupWindow实现对话框
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [BJDCTF2020]The mystery of ip
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [codeforces]Recover the String
  • [echarts] y轴不显示0
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意
  • [Flutter]打包IPA
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
  • [Git].gitignore失效的原因
  • [HackMyVM]靶场 Quick3
  • [hdu 1711] Number Sequence [kmp]
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [js] 正则表达式