在这个话题上,我找不到一个现成的例子。
在同一个项目中,我成功地调用了从Frege到Frege,以及从Java到Java,但是我无法让.Java-文件识别..fr文件
要让下面的代码工作(在Consumer.java中),我应该遵循哪些步骤
我的基本设置如下所示:
我安装了eclipse,并按照说明执行。
java version "1.7.0_79"项目建设者按以下顺序排列:
Frege builder
Java Builder项目路径:
* src
- package tutorials
-- Consumer.java
-- FregeProducer.fr
* Referenced Libraries
- fregec.jar
* JRE System Library
- ...消费者:
package tutorials;
public class Consumer {
public static void main(String[] args) {
System.out.println("This should be zero: " + FregeProducer.myZero);
}
}FregeProducer:
module FregeProducer where
myZero = 0 发布于 2015-07-21 20:47:37
据我所知,你的设置没问题。但是,您似乎遇到了Java限制,不允许在命名包中的类中使用未命名包中的类。
我们在这里尝试从FregeProducer内部使用类tutorials.Consumer中的一些东西,这是无法通过tutorials.Consumer规则实现的。
您需要将模块名指定为tutorials.FregeProducer。(不足以将源文件放置在tutorials目录中。)那么您的未修改的Java代码应该可以工作,IMHO。
当然,您可以在您想要的任何包中生成Frege类。为此,您需要将源文件移动到相应的目录中,并选择适当的模块名称。请记住,模块名称(只模块名称,也不包括源文件名或位置)决定了编译后的类的完全限定类名:
module Foo where -- creates class Foo in unnamed Java package
module com.bar.Foo where -- creates class Foo in Java package com.barhttps://stackoverflow.com/questions/31517947
复制相似问题