質問

ABCLを使用してLISPコードを。クラスファイルにコンパイルし、メインメソッドを作成して、全体を.jarファイルにパッケージ化して実行できる方法(または)をどのように知っていますか?

また、ABCLコードからPrimitives Javaタイプにアクセスする方法を知っている人はいますか?

役に立ちましたか?

解決

ディディエ・バーナーは彼の経験を投稿しました 先日、まさにそのようなパッケージングの質問があります。

他のヒント

ソリューションの周りのより多くのパッケージを探している場合、ABCLには、クラスローダーが理解しているURIからASDF定義をロードする機能があります。 ASDFインストールはこのメカニズムによってロードされます(ANTビルドターゲット「ABCL.Contrib」を使用しますが、簡単な例として、次のコードは動的にロードされます URIを介したASDF負荷の些細なテスト.

CL-USER> (pushnew #p"jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/" asdf:*central-registry*)
(#P"jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/" #P"jar:file:/Users/evenson/work/abcl/dist/abcl-contrib.jar!/asdf-install/" (MERGE-PATHNAMES ".asdf-install-dir/systems/" (USER-HOMEDIR-PATHNAME)) (MERGE-PATHNAMES "work/lsw/" (USER-HOMEDIR-PATHNAME)))
CL-USER> (asdf:load-system :test)
; Loading system definition from jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/test.asd into #<PACKAGE "ASDF0">
; Registering #<SYSTEM :TEST> as TEST
; Compiling jar:http://abcl-dynamic-install.googlecode.com/files/asdf-uri-test.jar!/asdf-uri-test/test.lisp ...
; (DEFUN TEST ...)
; Wrote /Users/evenson/.cache/common-lisp/abcl-0.25.0-dev-fasl37-macosx-java/files/asdf-uri-test.jar/asdf-uri-test/ASDF-TMP-test.abcl (0.163 seconds)
T
CL-USER> (test)
"The test function loaded!"

パッケージングのためにその瓶を研究することはできますが、基本的にはASDF定義を作成するだけで、単に瓶としてパッケージ化するだけです。 JARには、出力翻訳ロケーションメカニズムを介してASDF2実装を介してローカルディレクトリに自動的にコンパイルされるLISPソースのみが含まれていることに注意してください。 JAR内のJavaクラスファイルは現在無視されています。 Javaクラスファイルは「プラットフォーム独立」である必要がありますが、ABCL実装ごとにLISPをコンパイルすることは理にかなっているため、十分なJVM実装(QV。Java5 V Java 6)があります。確かにURIを介してABCL FASLをロードする能力があるため、初期のASDF負荷をまったくコンパイルしないためのユースケースがある場合、現在のASDF実装を変更する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top