如何在 Eclipse 中从 Java 调用弗雷格?

How to call Frege from Java in Eclipse?

我找不到关于此主题的开箱即用示例。

我在同一个项目中成功地从 Frege 调用到 Frege,以及从 Java 调用到 Java,但是我无法获取 .java-files 到识别 .fr 文件

我应该遵循哪些步骤才能使以下代码正常工作(在 Consumer.java 中)

我的基本设置如下所示:

我安装了 eclipse-plugin 并按照说明进行操作。

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 

据我所知,您的设置没有问题。但是,看起来您 运行 进入了 Java 限制,该限制不允许在命名包中的 class 中使用未命名包中的 classes。

我们这里是尝试从 tutorials.Consumer 中使用 class FregeProducer 中的某些内容,这不会按照 Java 规则工作。

您需要将模块名称指定为tutorials.FregeProducer。 (仅将源文件放在 tutorials 目录中 还不够 。)那么您未更改的 Java 代码应该可以工作,恕我直言。

当然,您可以在任何您想要的包中生成 Frege classes。为此,您需要将源文件移动到相应的目录中,并选择一个合适的模块名称。请记住,模块名称(模块名称,既不是源文件名称也不是位置)决定了已编译class的完全限定class名称:

module Foo where    -- creates class Foo in unnamed Java package
module com.bar.Foo where -- creates class Foo in Java package com.bar