Как позвонить Фреге с Java в Eclipse?

Я не смог найти ни одного готового примера по этой теме.

Мне удалось позвонить из Фреге во Фреге, а также из 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 

1 ответ

Решение

С вашей настройкой все в порядке, насколько я вижу. Однако похоже, что вы сталкиваетесь с ограничением Java, которое не позволяет использовать классы из неназванного пакета в классе, который находится в именованном пакете.

Здесь у нас есть попытка использовать что-то в классе FregeProducer изнутри tutorials.Consumer и это не будет работать по правилам Java.

Вам нужно указать имя модуля как tutorials.FregeProducer, (Недостаточно просто поместить исходный файл в tutorials каталог.) Тогда ваш неизмененный код Java должен работать, ИМХО.

Конечно, вы можете создавать классы Фреге в любой упаковке. Для этого вам нужно переместить исходный файл в соответствующий каталог и выбрать подходящее имя модуля. Помните, что имя модуля (и только имя модуля, а не имя и местоположение исходного файла) определяет полное имя класса скомпилированного класса:

module Foo where    -- creates class Foo in unnamed Java package
module com.bar.Foo where -- creates class Foo in Java package com.bar
Другие вопросы по тегам