如何在 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
我找不到关于此主题的开箱即用示例。
我在同一个项目中成功地从 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