Ошибка компиляции: ошибка подпроцесса - PullRequest
0 голосов
/ 20 апреля 2019

brew install leiningen

Я получил

Compiling joy.gui.DynaFrame
Could not locate joy/gui/DynaFrame__init.class or joy/gui/DynaFrame.clj on classpath:
Exception in thread "main" java.io.FileNotFoundException: Could not locate joy/gui/DynaFrame__init.class or joy/gui/DynaFrame.clj on classpath: , compiling:(/private/var/folders/zm/swyymlvn4l7__d1rln_n391r0000gn/T/form-init7580966196782799989.clj:1:124)
    at clojure.lang.Compiler.load(Compiler.java:7142)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate joy/gui/DynaFrame__init.class or joy/gui/DynaFrame.clj on classpath:
    at clojure.lang.RT.load(RT.java:443)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$compile$fn__5071.invoke(core.clj:5652)
    at clojure.core$compile.invoke(core.clj:5651)
    at user$eval20$fn__29.invoke(form-init7580966196782799989.clj:1)
    at user$eval20.invoke(form-init7580966196782799989.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    ... 11 more
Compilation failed: Subprocess failed

Я попытался переустановить, но проблема не решилась.

Когда я печатаю, версия lein

Я получил это: Leiningen 2.9.1 на Java 12 Java HotSpot (TM) 64-разрядный сервер VM

Я правильно установил Java, но не уверен, с чего начать, чтобы решить эту проблему.

1 Ответ

2 голосов
/ 20 апреля 2019

Я оглянулся и, кажется, вы пытаетесь запустить старый пример из Радость Clojure , верно?

В примере потребовалось небольшое касание.чтобы я мог его запустить.

  • Сначала я создал новый проект Leiningen с lein new app dynademo.
  • Внутри папки нового проекта я создал каталоги для пространства имен: mkdir -p src/joy/gui
  • Создан файл src/joy/gui/DynaFrame.clj

Проект Leiningen, который мы только что создали с lein new ..., использует Clojure 1.10, который, похоже, не похож на одну вещь:

  • Заменить строку на :prefix df- на :prefix "df-" (например, обернуть значение df- в кавычки)

Сохранить файл, и теперь вы можете запуститьокно из REPL, вот так:

$ lein repl
nREPL server started on port 44037 on host 127.0.0.1 - nrepl://127.0.0.1:44037
REPL-y 0.4.3, nREPL 0.6.0
Clojure 1.10.0
OpenJDK 64-Bit Server VM 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

dynaframe.core=> (compile 'joy.gui.DynaFrame)
joy.gui.DynaFrame
dynaframe.core=> (def hello-frame (joy.gui.DynaFrame. "Hello"))
#'dynaframe.core/hello-frame
dynaframe.core=> (.show hello-frame)
nil

Это выглядит так:

dynaframe example

(вам нужно будет переместить/ немного изменить размер окна, но вы поняли). Примечание : Я использую Java 8 (JDK 1.8.0_191), но он должен работать в JDK 12. То же самое.

...