请注意,我以前没有任何使用Java的经验。我在Py4j的以下教程中遇到了问题:https://www.py4j.org/getting_started.html
我在蟒蛇环境中安装了Py4j。我在Ubuntu上工作。我将类路径设置为包含Py4j的.jar文件。当我试图在上面的网页上编译示例代码时,我收到一个错误,说Stack符号不存在。我试图添加一行代码来导入它,但这也没有帮助(见图片)。
Error and Directory Structure (image)
Stack.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文档/资源和相关问题,但似乎无法解决这个问题。有人能指出我做错了什么吗?
谢谢。
发布于 2019-09-25 15:45:53
您正在编译类StackEntryPoint,但尚未编译Stack类。首先这样做,否则它不能使用它来编译StackEntryPoint。
通常你的IDE会帮你解决这个问题,但是你需要一个特殊的设置(集成Python ),所以我不确定你是如何集成它的。
理想情况下,您将使用传统的Java工具(例如Maven和IntelliJ IDEA)将您的Java库构建为一个单独的JAR,但是首先学习它的基本框架并不是一个糟糕的练习。
https://stackoverflow.com/questions/58087489
复制相似问题