【发布时间】:2015-01-16 20:50:26
【问题描述】:
我创建了一个已放入 jar 的 SocketClient 对象,我想在运行 java 程序时调用它,以便套接字启动,然后我可以通过外部应用程序连接到它。我将如何在程序开始时调用该对象。
套接字客户端
public class SocketClient {
private boolean isCon = false;
public SocketClient() {
}
public void communicate() {
while(!isCon) {
try {
Socket socket = new Socket("localHost", 9090);
System.out.println("Connected");
isCon = true;
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
AbstractScript passScript = getAbstractScript();
System.out.println("Passing Object");
oos.writeObject(passScript);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public AbstractScript getAbstractScript() throws Exception {
Class reflectClass = AbstractScript.class;
Object construct;
construct = reflectClass.newInstance();
AbstractScript newAbstractScript = (AbstractScript) construct;
return newAbstractScript;
}
public boolean isRunningScript() throws Exception {
Method method;
Class reflectClass = AbstractScript.class;
if(reflectClass != null) {
method = reflectClass.getDeclaredMethod("isRunning", Boolean.class);
try {
Object returnValue = method.invoke(null);
Boolean value = (Boolean) returnValue;
return value;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
}
【问题讨论】:
-
“我创建了一个 SocketClient 对象,我已将其放入 jar 中。”这是什么意思?你做了一个类并编译它?如果是这样,只要 jar 在您的类路径上,它就会由类加载器加载。在这种情况下,您可以在应用程序中实例化一个
SocketClient对象,然后像其他任何方式一样调用它。 -
我有一个外部应用程序,我也正在添加功能,我假设只是将 .class 文件放入 jar 中,如果不调用它就不会运行。我需要调用它,但不知道如何调用。
-
一般来说,要在罐子里装一个物体,你在外面做大部分的建筑,然后通过拉动索具把它竖起来。虽然有些人声称使用过镊子。
标签: java sockets code-injection