如何在Eclipse中从Java调用Frege?

时间:2015-07-20 13:35:42

标签: java eclipse frege

我无法在这个主题上找到一个开箱即用的例子。

我在同一个项目中成功地从Frege到Frege,以及从Java到Java的调用,但是我无法通过.java文件来识别.fr文件

我应该采取哪些步骤才能使以下代码生效(在Consumer.java中)

我的基本设置如下:

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

java version "1.7.0_79"

Project Builders按以下顺序:

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 

1 个答案:

答案 0 :(得分:2)

据我所知,你的设置没问题。但是,您似乎遇到了Java限制,该限制不允许在命名包中的类中使用未命名包中的类。

我们在这里尝试使用FregeProducer中的tutorials.Consumer类中的某些内容,而Java规则不会起作用。

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

当然,您可以在任何所需的包中生成Frege类。为此,您需要将源文件移动到相应的目录中,然后选择适当的模块名称。请记住,模块名称(以及模块名称,源文件名和位置都没有)确定已编译类的完全限定类名:

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