【发布时间】:2013-01-25 15:33:14
【问题描述】:
这是一个非常简单的问题,但我无法解决,所以我希望你能容忍我。我在 Windows 上运行 IntelliJ,并将它用作 Clojure IDE。我试图通过运行 RT.loadResourceScript 来调用我的 core.clj,但我无法找出我的 core.clj 的正确路径。我是 IntelliJ 的新手,之前曾在 Linux 上与 Leiningen 合作过。
项目在 C:\Users\L\IdeaProjects\LearningClojure 下 core.clj 和 Driver.java 文件位于 src 文件夹中。
我已经尝试使用“src/core.clj”“core.clj”“src\core.clj”和变体在我的 CLJ 变量中的“LearningClojure”。
我的Driver.java文件如下
import clojure.lang.RT;
public class Driver
{
private static final String CLJ = "src/core.clj";
public static void main( String[] args)
{
try
{
RT.loadResourceScript(CLJ);
RT.var("learning", "main").invoke(args);
}
catch(Exception E)
{
E.printStackTrace();
}
finally
{
System.out.println("End of Execution");
}
}
}
输出返回
End of Execution
java.io.FileNotFoundException: Could not locate Clojure resource on classpath: src/core.clj
at clojure.lang.RT.loadResourceScript(RT.java:366)
at clojure.lang.RT.loadResourceScript(RT.java:346)
at clojure.lang.RT.loadResourceScript(RT.java:338)
at Driver.main(Driver.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Process finished with exit code 0
在一些相关的注释上,是否有人有一个链接,可以很好地解释 Java 包以及在处理 IDE 项目布局时它们如何对应于类路径和目录布局?
【问题讨论】:
-
检查this answer。
-
谢谢,但我一定遗漏了一些东西,我正在寻找 IntelliJ 从中获取文件的“基本”目录。我原以为路径“core.clj”会起作用,因为 core.clj 和 Driver.java 都在 src 文件夹中
-
您需要确保将
core.clj复制到模块编译器输出,当不需要加载src/时,CLJ = "core.clj";应该可以工作。 -
感谢您再次回复,我的资源模式当前确实包含 .clj,因为我正在使用 LaClojure (!?*.java;!?*.form;!?*.class;!?* .groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj) 我仍然看到同样的问题。有什么想法或我错过了你提出的观点吗?
-
该模式排除了
*.clj文件被复制到输出(类路径),很可能是问题的原因,在?*.clj之前删除!。
标签: clojure intellij-idea classpath packages