【发布时间】:2019-09-24 20:09:27
【问题描述】:
请注意,我以前没有任何 Java 经验。我对以下 Py4j 教程有疑问:https://www.py4j.org/getting_started.html
我在 Anaconda 环境中安装了 Py4j。我在 Ubuntu 工作。我将类路径设置为包含 Py4j 的 .jar 文件。当我尝试在上述网页上编译示例代码时,我收到一条错误消息,提示 Stack 符号不存在。我尝试添加一行代码来导入它,但这也无济于事(参见图片)。
Error and Directory Structure (image)
堆栈.java
package py4j.examples;
import java.util.LinkedList;
import java.util.List;
public class Stack {
private List<String> internalList = new LinkedList<String>();
public void push(String element) {
internalList.add(0, element);
}
public String pop() {
return internalList.remove(0);
}
public List<String> getInternalList() {
return internalList;
}
public void pushAll(List<String> elements) {
for (String element : elements) {
this.push(element);
}
}
}
StackEntryPoint.java
package py4j.examples;
import py4j.GatewayServer;
import py4j.examples.Stack; // <-- I added this line but it does not solve the issue
public class StackEntryPoint {
private Stack stack;
public StackEntryPoint() {
stack = new Stack();
stack.push("Initial Item");
}
public Stack getStack() {
return stack;
}
public static void main(String[] args) {
GatewayServer gatewayServer = new GatewayServer(new StackEntryPoint());
gatewayServer.start();
System.out.println("Gateway Server Started");
}
}
我以前没有使用过Java,所以我对如何在编译期间链接类感到困惑。我已经尝试广泛查看在线 Java 文档/资源和相关问题,但似乎无法解决这个问题。有人可以指出我做错了什么吗?
谢谢。
【问题讨论】:
-
请将您的源代码以文本形式发布!
-
@csabinho 刚刚也将源代码添加为文本。很抱歉!
-
您需要指定包含所有必需源文件的类路径。例如
javac -cp ".:/path/to/pyjar" path/to/stackentry.java -
是的,我已经在类路径中设置了我的 jar 文件,方法是:
export Classpath=/path/to/py4j.jar你可以在我上面链接的第一张图片中看到实际路径