0

我有一个 .*idl 接口:

interface Class1;

interface Class2
{
    typedef sequence<Class1> vector;
    Class2 create();
};

interface Class1
{
    typedef sequence<Class2> vector;
    Class1 create();
};

我这样编译它:

idlj -fclient 接口.idl

它给了我文件

Class1Helper.java      Class2.java            interface.idl
Class1Holder.java      _Class1Stub.java   Class2Operations.java
Class1.java            Class2Helper.java  
Class1Operations.java  Class2Holder.java  _Class2Stub.java

目录

Class1Package Class2Package

在 Class1Package 我有 :vectorHelper.java vectorHolder.java在 Class2Package 我有: vectorHelper.java vectorHolder.java。当我cd编辑 Class1Package 并尝试编译 java 文件(使用 `javac *.java)时出现错误:

vectorHelper.java:3: '.' 预期进口 Class2;^ vectorHelper.java:3: ';' 预期进口 Class2;^ vectorHelper.java:4:类、接口或枚举预期导入 Class2Helper;^ vectorHolder.java:3: '.' 预期进口 Class2;^ vectorHolder.java:3: ';' 预期进口 Class2;^ 5 个错误 Class1Package$ javac *.java vectorHelper.java:3: '.' 预期进口 Class2;^ vectorHelper.java:3: ';' 预期进口 Class2;^ vectorHelper.java:4:类、接口或枚举预期导入 Class2Helper;^ vectorHolder.java:3: '.' 预期进口 Class2;^ vectorHolder.java:3: ';' 预期进口 Class2;^ 5 个错误

怎么了?

我的整个项目:http ://www41.zippyshare.com/v/32339153/file.html

4

1 回答 1

1

这里解释了错误的原因(查看接受的答案),基本上从 java 4 开始,您不能再从命名包中引用未命名包(又名默认包)中的类(使用 import 语句)。

修改您的 IDL 编译器以拥有一个模块,您是否有理由在模块中没有您的接口?

于 2012-08-23T12:37:33.190 回答