JXClient is a Crossfire client supporting full-screen mode.
JXClient is a Java application. To run it you need Java 6
(Sun's JRE and
OpenJDK do work; gcj/gij does not).
In Debian systems either of sun-java6-jre and openjdk-6-jre
packages work.
The client can be run with
java -jar jxclient.jar
Yes: JXClient and jcrossclient are different applications. jcrossclient's intention was to run as an applet to play Crossfire through a web browser. JXClient is a stand-alone full-screen application to play Crossfire.
Daily updated pre-built versions are available from http://invidious.meflin.net/jxclient.jar and http://crossfire.ailesse.com/. These versions include the latest features and therefore can be unstable.
The source code is available from
svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/jxclient/trunk jxclient
Start JXClient from a console (xterm, cmd.exe, etc.):
java -jar jxclient.jar
This might be a problem with Debian based systems. See the bug report net.ipv6.bindv6only=1 breaks java networking for details.
For the impatient: add -Djava.net.preferIPv4Stack=true when
running JXClient:
java -Djava.net.preferIPv4Stack=true -jar jxclient.jar
Make sure to add the option before -jar jxclient.jar.
Your Java version is too old to run JXClient. You need at least Java 6; gcj/gij does not work.
JXClient - Crossfire Java Client
(C)2005 by Lauwenmark.
This software is placed under the GPL License
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:997)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1323)
at com.realtime.crossfire.jxclient.main.JXClient.<init>(JXClient.java:102)
at com.realtime.crossfire.jxclient.main.JXClient.main(JXClient.java:65)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
at java.awt.image.Raster.createPackedRaster(Raster.java:458)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
at sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:537)
at sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:521)
at sun.java2d.loops.MaskBlit$General.MaskBlit(MaskBlit.java:171)
at sun.java2d.loops.Blit$GeneralMaskBlit.Blit(Blit.java:186)
at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:927)
at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:550)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:73)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:998)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:178)
at sun.java2d.SunGraphics2D.copyImage(SunGraphics2D.java:2909)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2940)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2895)
at com.realtime.crossfire.jxclient.gui.GUIPicture.<init>(GUIPicture.java:67)
at com.realtime.crossfire.jxclient.skin.DialogFactory.newDialog(DialogFactory.java:205)
at com.realtime.crossfire.jxclient.skin.JXCSkinLoader.load(JXCSkinLoader.java:908)
at com.realtime.crossfire.jxclient.skin.JXCSkinLoader.load(JXCSkinLoader.java:577)
at com.realtime.crossfire.jxclient.skin.JXCSkinLoader.load(JXCSkinLoader.java:391)
at com.realtime.crossfire.jxclient.window.JXCWindow.loadSkin(JXCWindow.java:1308)
at com.realtime.crossfire.jxclient.window.JXCWindow.setSkin(JXCWindow.java:1270)
at com.realtime.crossfire.jxclient.window.JXCWindow.init(JXCWindow.java:797)
at com.realtime.crossfire.jxclient.main.JXClient$1.run(JXClient.java:107)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
The client has run out of memory. Increase the available memory by starting it with
java -Xmx256m -jar jxclient
http://bsnyderblog.blogspot.com/2008/03/java-16-via-soylatte-on-macos-x-10411.html may help.
Yes: start the client with
java -jar jxclient.jar --resolution 1400x1050
Yes: start the client with
java -jar jxclient.jar --no-full-screen
X.org users might need to patch the Java runtime. See The Java Client (JXClient) on Ailesse for details.
The preferred key to open the command input is /; alternatively
\ or ' can be used. Command input automatically
closes after the command has been submitted (unless the dialog has been
visible before).
Use the /bind -e command. This enters "command" into the command
input field but does not submit it.
Normal key bindings are stored in $HOME/.crossfire/jxclient/keybindings.txt.
Per-character key bindings are stored in $HOME/.crossfire/jxclient-HOST-CHAR.txt.
HOST is the Crossfire server's name, CHAR is the
character's name.