我有一个 .*idl 接口(interface):
interface Class1;
interface Class2
{
typedef sequence<Class1> vector;
Class2 create();
};
interface Class1
{
typedef sequence<Class2> vector;
Class1 create();
};
我这样编译:
idlj -fclient interface.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: '.' expected import Class2; ^ vectorHelper.java:3: ';' expected import Class2; ^ vectorHelper.java:4: class, interface, or enum expected import Class2Helper; ^ vectorHolder.java:3: '.' expected import Class2; ^ vectorHolder.java:3: ';' expected import Class2; ^ 5 errors Class1Package$ javac *.java vectorHelper.java:3: '.' expected import Class2; ^ vectorHelper.java:3: ';' expected import Class2; ^ vectorHelper.java:4: class, interface, or enum expected import Class2Helper; ^ vectorHolder.java:3: '.' expected import Class2; ^ vectorHolder.java:3: ';' expected import Class2; ^ 5 errors
出了什么问题?
最佳答案
错误原因解释here (查看接受的答案),基本上从 java 4 开始,您不能再从命名包引用未命名包(也称为默认包)中的类(使用 import 语句)。
修改您的 IDL 编译器以添加模块,是否有原因导致您在模块中没有接口(interface)?
关于java - IDL to java(Suns idlj)如何编译生成文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019403/