developer tip

내가 만든 .clj Clojure 파일을 어떻게 실행할 수 있습니까?

optionbox 2020. 11. 17. 08:02
반응형

내가 만든 .clj Clojure 파일을 어떻게 실행할 수 있습니까?


Linux Mint 컴퓨터에 Geany를 설치하고 간단한 코드를 작성했습니다. 언어를 시작하기위한 작은 안녕하세요.

이제 나는 그것을 실행하고 그것이 무엇을 출력하는지보고 싶습니다.

이 코드를 어떻게 실행할 수 있습니까? 저는 IDE 나 미리 패키징 된 것을 사용하지 않고 단순한 텍스트 편집기 인 Geany를 사용하고 있습니다.

어떤 명령을 실행해야합니까?


clojure

아무도 이것을 제안하지 않았다는 것을 믿을 수 없습니다. 당신은 할 수 있어야합니다

clojure path/to/script.clj

이것은 apt-get과 함께 Ubuntu에 설치된 clojure를 사용하여 작동합니다. 다른 설치에 대해 잘 모르겠습니다 ...

lein-exec

그러나 작업중인 스크립트에 종속성 있는 경우 lein-exec플러그인을 권장합니다 . 이것은 Leiningen사용 하여 모든 종속성을 처리 할 수 있다는 장점이 있습니다 . Leiningen는 이미이lein run 명령을하지만, 그것은 단지 내 주요 기능을 실행하기위한 작업 전체 Clojure의 / lein 프로젝트 . 따라서 lein-exec플러그인은 소규모 스크립팅을위한 정말 좋은 보완책입니다.

종속성 세부 정보 ...

참고 : 철저하게하기 위해 lein을 사용하는 경우 사용하려는 라이브러리를 ~/.lein/profiles.clj파일에 추가하거나 project.clj프로젝트에서 작업하는 경우 파일에 추가 할 수 있습니다 . 그런 다음 실행하면 lein deps모든 종속성이 설치되고 사용할 때 스크립트 / 프로젝트에 접근 lein exec/을 lein run. 또한 lein repl이러한 종속성에 대한 액세스 권한이있는 Clojure repl을 제공합니다. 다시 말하지만, 라이브러리 의존성이 있다면 확실히 갈 길입니다.

어느 쪽이든 drip빠른 시작 시간 위해 사용 고려하십시오.

Drip 은 시작할 준비가 된 사전 부트 스트랩 된 JVM 이미지를 제공하는 깔끔한 작은 도구입니다. 이것은 JVM 응용 프로그램 시작 시간을 줄이는 데 유용 할 수 있습니다. Clojure는 자체적으로 부트 스트랩하는 데 시간이 오래 걸릴 수 있으므로 drip은 해당 프로세스의 속도를 높이는 데 유용한 도구입니다. 이것은 일반적으로 빠르게 실행될 것으로 예상되는 작은 스크립트를 작성하는 경우에 특히 그렇습니다. leiningen을 사용하는 경우 lein-drip 플러그인을 살펴보십시오 .

ClojureScript의 경우

http://planck-repl.org/를 권장 합니다. 이제 JVM 또는 Clojure를 실행하지 않고도 ClojureScript 스크립트의 빠른 실행 (부트 스트랩)을 지원합니다. 대부분의 스크립팅 작업의 경우 빠른 실행이 중요하므로 JVM에 특정한 것이 필요하지 않은 경우 이것이 제가 가장 권장하는 # 1입니다.


다음 명령으로 스크립트를 실행할 수 있습니다.

java -cp clojure.jar clojure.main file.clj

그러나 특히 프로젝트에 종속성을 추가하기 시작할 때 leiningen 을 사용하는 것이 좋습니다 . lein은 코드를 실행 (필요한 모든 종속성 포함) lein jar하거나를 사용 하여 코드를 아카이브로 압축 하거나 lein uberjar다음과 함께 실행할 수있는 완전하고 독립적 인 아카이브를 생성 하는 여러 명령을 제공합니다 .

java -jar your_app.jar

명령

추신 다음 기사lein 에서 사용 방법을 읽을 수 있습니다 -기본 작업 및 구성에 대해 설명합니다.


lein 및 lein-exec 플러그인을 설치 한 후 생성 한 .clj 파일을 실행하는 것은 다음과 같이 간단합니다.

lein exec hello.clj

다음과 같은 명령 줄 인수를 전달하는 경우

lein exec hello.clj arg1 arg2 arg3

hello.clj의 'foo'함수에서 액세스 할 수 있습니다.

(foo *command-line-args*) 

단일 clj 파일의 경우 추가 할 수 있습니다.

#!/usr/bin/env java -cp /path/to/clojure-1.2.0.jar clojure.main

파일의 맨 위로 이동하여 실행 가능하게 만들거나 클로저 빌드 도구 인 leiningen을 사용하여 모든 것이 압축 된 단일 항아리를 생성 할 수 있습니다.

java -jar cool_app.jar

이제 Drip 이이 질문에 대한 최상의 답변 일 것입니다 ( Drip과 Clojure를 사용하는 방법에 대한 자세한 내용 Drip의 위키 참조 ).

Cake는 Leiningen에 통합되었으며 Drip에 의해 Clojure 자동화의 가장 안정적인 구현으로 대체되었습니다 . 여기에서 유사한 질문에 대한 이 답변참조 하십시오.


단일 파일을 실행하려면 다음과 같이 repl에 파이핑하는 것은 어떻습니까?

cat $PATH_TO_FILE | lein repl


.NET을 사용하여 clojure 프로젝트에서 특정 clojure 스크립트 파일을 실행할 때 비슷한 문제가 발생했습니다 lein. 그런 다음 동일한 공유를 생각하는 지름길을 찾았습니다.

에서 project.clj파일, 당신은 (물론 주요 방법이있다)을 Clojure의 스크립트 파일 이름을 전환 할 수 있습니다. 다음은 이에 대한 진술입니다.

:main ^:skip-aot conv.newconv ; here conv is namespace and newconv is the file name .

참고 : 나는 clojure를 처음 사용하며 '^ : skip-aot`가 사용되는 이유를 잘 모르겠습니다. 확인하지 않았습니다.

Note: This methodology, does not require any plugin to be installed nor any jar file need to be generated. This only requires to change a name in project file.

Assumption: Your clojure project has multiple clojure files, each having main method. I am assuming this is created for testing purpose only. My solution will work for this specific scenario.


For running a single file through command line use the following commands:

clj -m (NameSpace name)

ex: clj -m Sample

Or if you want to run through repl:

(load-file filelocation)

ex:

 (load-file "Sample.clj")

참고URL : https://stackoverflow.com/questions/7656523/how-can-i-run-a-clj-clojure-file-i-created

반응형