leinjava的简单介绍
今天给各位分享leinjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何直接运行 Clojure 脚本文件
对于大多数的脚本编程语言来说, 提供有现成的分别进入控制台与执行脚本文件的命令. 例如 Scala, Python 默认进入控制台(REPL), 接文件路径为参数则执行脚本文件. 还有分别进入控制台和执行脚本的命令是: irb 与 ruby, groovsh 与 groovy, php -a 与 php, perl -de1 和 perl. 可以 Clojure 本身就没有 clojure 这样的命令. 当我们试图在 Mac 下用 brew install clojure 安装时, 得到的提示是没有 clojure, 应该用 brew install leiningen 去安装 leiningen, 它是一个类似于 Scala sbt 的工具.
所以启动 Clojure REPL 的命令就是 lein repl , 其实还有一个办法来启动 Clojure 的控制台, 因为 Clojure 也是构筑于 JVM 之上的, 所以也能像启 Groovy/Scala 一样通过 java 指令加载 jar 文件来启动. 去官网 下载 Clojure 安装包(例如: ), 解压, 假定它的 jar 文件是 ~/Developers/clojure-1.8.0/clojure-1.8.0.jar , 那么也可以用命令 java -jar ~/Developers/clojure-1.8.0/clojure-1.8.0.jar 进到 Clojure 控制台.
进到 Clojure 的提示符 user= 下就可以测试 Clojure 代码了, 那么如何加载一个写在 clj 文件里的代码呢? 我们可以在 Clojure 控制台下用方法 load-file . 假定 ~/hello.clj 文件的内容是
(+ 1 2)
在 Clojure 控制台下
user= (load-file "~/hello.clj")3
这只是相当于我们在控制台输入 (+ 1 2) , 也看到了 3, 其实我们在 ~/hello.clj 中并没有打印输出结果. 所以如果真正是执行 ~/hello.clj 应该是什么也看不到了, 我们需要准确的执行 clojure 脚本文件的方法.
在此我们也顺道温习一下 Clojure 与 Java 的简单互操作, 创建了文件 ~/interop.clj , 内容如下:
(+ 1 2 3)
(println (. Math PI))
(println (. Math abs -3))
(println (. "foo" toUpperCase))
(println Math/PI)
(println (Math/abs -5))
(println (.toUpperCase "bar"))
(def n1 (new Integer "42"))
(println n1)
(let [n2 (Integer. "53")]
(println n2))
针对启动 Clojure 控制台的不同我们同样有两种方式执行 Clojure 脚本文件
一: 通过 clojure-x.x.x.jar 来执行 Clojure 脚本
➜ ~ java -jar ~/Developers/clojure-1.8.0/clojure-1.8.0.jar ~/interop.clj
3.141592653589793
3
FOO
3.141592653589793
5
BAR
42
53
上面的执行效果才是正确的, 其中 (+ 1 2 3) 没有 print 是不会有输出的.
把它编制成一个 bash 脚本 clojure 就是
#!/bin/bash
java -jar ~/Developers/clojure-1.8.0/clojure-1.8.0.jar $@
$@ 的意思是传什么给这个 clojure 脚本, 它就原原本本的送到 clojure-1.8.0.jar 的主程序. 然后把 clojure 用 chmod +x clojure 改成可执行. 再来看下
➜ ~ vi clojure
➜ ~ ./clojure
Clojure 1.8.0
user= ^D
➜ ~ ./clojure ~/interop.clj
3.141592653589793
3
FOO
3.141592653589793
5
BAR
42
53
没参数时进入控制台, 有参数时当成文件加载执行
二: lein 通过 exec 插件执行 clojure 脚本
lein 的插件安装可以参考 lein-exec . 全局安装的话只要在 ~/.lein/profiles.clj 中添加一行
{:user {:plugins [[lein-exec "0.3.6"]]}}
再次启动 lein 就会自动下载相应的插件依赖, 并加入了 exec 任务, 用 lein help exec 查看这个插件的具体命令使用方法. 简单的用来加载外部 clj 文件的指令是
➜ ~ lein exec ~/interop.clj
3.141592653589793
3
FOO
3.141592653589793
5
BAR
42
53
执行结果是一致的.
不仅如此, Clojure 也能用作系统脚本语言, 像其他脚本语言一样. 下载 放在 PATH 下, 并改成可执行.
之后只要在 clj 脚本第一行写上
#!/usr/bin/env lein-exec
或
#!/bin/bash lein-exec
就可以用 Clojure 快乐的写系统脚本了.
另外, 如果 clj 文件是放在一个 lein 项目中, 应该是可以通过 lein 任务来执行主函数中的代码的.
附: 在我目前的 ~/.lein/profiles.clj 文件中已用到了三个插件
{:user {:plugins [[venantius/ultra "0.4.1"]
[lein-iclojure "1.2"]
[lein-exec "0.3.6"] ]}}
分别是 控制台着色, 代码提示, 和执行插件.
为何Java程序员学习Clojure有优势?
当谈及编程语言时,很多程序员会产生浓厚的兴趣。还记得我们曾发过一篇《编程语言叛逃路线》吗?结果最流行的叛逃路线有:从Perl到Python,从Cobol到Java,从Java到C#或Ruby、C++。本文我们不是讨论哪门语言会高于另一门语言,我想说的是,人应该活到老,学到老。一个Java背景的爱好者,学习Clojure语言具备得天独厚的优势。其原因在于:了解Java ——受益颇多:class-paths(类路径),class loaders(类加载器),constructors(构造函数),methods(方法),static methods(静态方法),standard libraries(标准库),ar files(jar 文件)等等。了解JVM——heap(堆),garbage collection(垃圾回收),perm-gen space,debugging(调试),profiling(分析),performance tuning(性能优化)等等。Java生态库——采用什么样的日志框架?哪种类型的Web服务器?数据库驱动?等等。Maven situation——有时你必须知道在lein情况下会发生什么状况?了解如何构建大型代码基地——Clojure代码库在不断壮大。面向对象分析与设计——这个与弄清函数的位置设置相似。我相信还有许多许多优势,不妨把你知道的与我们分享下。Clojure是一门现代化的LISP完整的宏系统,一门函数式编程语言,它还具有并发语义,基于JVM访问这些库等等。Clojure是JVM上的一门新的语言,类似Groovy,Jyphon和JRuby,它能动态的、简洁的、无缝的与Java进行交互操作。因此,Java开发团队,既然学习Clojure有这么多的优势,那么你心动了吗?
VIP 指哪三个单词?
是Very Important Person的缩写,直译就是“非常重要的人”“重要人物,大人物“,我们通称译为贵宾、贵宾卡或高级会员。
百度上有~~
Code Runner配置
"code-runner.executorMap":{
"javascript": "node",
"java": "cd fileName ; java dir gcc fileNameWithoutExt fileNameWithoutExt",
"cpp": "cd fileName -std=c++11 -o dir dir ; gcc -framework Cocoa fileNameWithoutExt ; fileNameWithoutExt",
"php": "php",
"python": "python -u",
"perl": "perl",
"perl6": "perl6",
"ruby": "ruby",
"go": "go run",
"lua": "lua",
"groovy": "groovy",
"powershell": "powershell -ExecutionPolicy ByPass -File",
"bat": "cmd /c",
"shellscript": "bash",
"fsharp": "fsi",
"csharp": "scriptcs",
"vbscript": "cscript //Nologo",
"typescript": "ts-node",
"coffeescript": "coffee",
"scala": "scala",
"swift": "swift",
"julia": "julia",
"crystal": "crystal",
"ocaml": "ocaml",
"r": "Rscript",
"applescript": "osascript",
"clojure": "lein exec",
"haxe": "haxe --cwd fileNameWithoutExt",
"rust": "cd fileName ; fileNameWithoutExt",
"racket": "racket",
"ahk": "autohotkey",
"autoit": "autoit3",
"dart": "dart",
"pascal": "cd fileName ; fileNameWithoutExt",
"d": "cd fileName ; fileNameWithoutExt",
"haskell": "runhaskell",
"nim": "nim compile --verbosity:0 --hints:off --run",
"lisp": "sbcl --script",
"kit": "kitc --run"
},
怎么用lein编写clojure
Leiningen是一个用于自动化(构建)clojure项目的工具。
它可以做到:
创建新项目
管理你的项目的依赖关系
运行测试
运行一个REPL(读取-求值-打印循环:read-eval-print loop)
编译java源码
运行项目
为项目产生一个Maven风格的POM文件
为了部署,编译和打包项目
发布类库到Maven仓库,例如Clojars
运行Clojure编写的自定义的自动化任务(称为Leiningen插件)
... 具体可以查看国内的大牛(killme2008)翻译的Leiningen教程中文版的详细介绍。
好些话说多了点,大家别着急啊,马上就切入主题:
1. 下载安装Leiningen
linux:
1. 确保你是jdk 6 版本以下的。
2. 下载脚本lein
3. 把lein加入下当前的$path下(~/bin 是最好的选择)
4. 赋可执行权限(chmod 755 ~/bin/lein)
windows:
1. 可以直接下载打包好的文件,地址是:Leiningen for windows
2. 点击下载好的*.exe文件进行安装
3. 安装好后,可以查看环境变量中会有相应的变量被设置好了:
lein.bat is added to your PATH variable.
LEIN_JAVA_CMD is set to point to your selected JDK, and the :java-cmd property is set in your user profile in profiles.clj.
接下来,打开命令窗口,输入命令:lein self-install ,会自动下载安装leiningen 相关的jar文件。
关于leinjava和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。