Ice for Java
February 5, 2026 ยท View on GitHub
Examples | Documentation | API Reference | Building from source
The Ice framework provides everything you need to build networked applications, including RPC, pub/sub, server deployment, and more.
Ice for Java is the Java implementation of the Ice framework.
Sample Code
// Slice definitions (Greeter.ice)
["java:identifier:com.example.visitorcenter"]
module VisitorCenter
{
/// Represents a simple greeter.
interface Greeter
{
/// Creates a personalized greeting.
/// @param name The name of the person to greet.
/// @return The greeting.
string greet(string name);
}
}
// Client implementation (Client.java)
import com.example.visitorcenter.GreeterPrx;
import com.zeroc.Ice.Communicator;
class Client {
public static void main(String[] args) {
try (var communicator = new Communicator(args)) {
GreeterPrx greeter =
GreeterPrx.createProxy(communicator, "greeter:tcp -h localhost -p 4061");
String greeting = greeter.greet(System.getProperty("user.name"));
System.out.println(greeting);
}
}
}
// Server implementation (Server.java)
import com.zeroc.Ice.Communicator;
import com.zeroc.Ice.Identity;
import com.zeroc.Ice.ObjectAdapter;
class Server {
public static void main(String[] args) {
try (var communicator = new Communicator(args)) {
ObjectAdapter adapter =
communicator.createObjectAdapterWithEndpoints("GreeterAdapter", "tcp -p 4061");
adapter.add(new Chatbot(), new Identity("greeter", ""));
adapter.activate();
System.out.println("Listening on port 4061...");
communicator.waitForShutdown();
}
}
}
// Greeter implementation (Chatbot.java)
import com.example.visitorcenter.Greeter;
import com.zeroc.Ice.Current;
class Chatbot implements Greeter {
public String greet(String name, Current current) {
System.out.println("Dispatching greet request { name = '" + name + "' }");
return "Hello, " + name + "!";
}
}