
TigerVNC Java Viewer
====================

This distribution is based on the standard VNC source and includes new
TigerVNC-specific features and fixes, such as additional low-bandwidth
optimizations, major GUI improvements, and more.

        Copyright (C) 2000-2003 Constantin Kaplinsky
        Copyright (C) 2003 Sun Microsystems, Inc.
        Copyright (C) 2002-2005 RealVNC Ltd.
        Copyright (C) 2004-2005 Cendio AB
        Copyright (C) 2005 Martin Koegler
        Copyright (C) 2009 Pierre Ossman for Cendio AB
        Copyright (C) 2009-2018 TigerVNC Team
        Copyright (C) 2011-2014 Brian P. Hinz
        All rights reserved.

This software is distributed under the GNU General Public Licence as
published by the Free Software Foundation. See the file LICENCE.TXT for the
conditions under which this software is made available. TigerVNC also
contains code from other sources. See the Acknowledgements section below, and
the individual files for details of the conditions under which they are made
available.


Installation
============

There are three basic ways to use the TigerVNC Java Viewer:

  1. Running the applet as part of a TigerVNC Server installation.

     Both the Unix and Windows versions of the TigerVNC Server include a small
     built-in HTTP server that can serve the TigerVNC Java Viewer to web
     clients.  This enables easy access to the shared desktop without the need
     to install any software on the client machine.

     The Unix TigerVNC Server (Xvnc) is able to serve up any set of files that
     are present in a particular directory, which is specified in the -httpd
     argument to Xvnc.  The default version of the vncserver script will look
     for a directory called vnc/classes, one level up from the directory
     containing the vncserver script, then it will look for a directory called
     /usr/share/vnc/classes, then /usr/local/vnc/classes.  It will set the
     -httpd argument to Xvnc to the first one of these VNC classes directories
     it finds.  Thus, one can easily deploy a modified version of the TigerVNC
     Java Viewer by simply copying a new version of VncViewer.jar and/or
     index.vnc into the VNC classes directory.

     On Windows and Linux, the embedded applet can be drag-undocked from the 
     browser window and converted to a standalone application. The drag
     gesture ALT+drag on Windows, and SHIFT+drag on Linux.

     In the case of the Windows TigerVNC Server, VncViewer.jar and index.vnc
     are embedded as resources in the WinVNC executable, so deploying a
     modified version of the TigerVNC Java Viewer on a Windows server requires
     rebuilding WinVNC.

  2. Running the applet from a standalone web server.

     Another possibility for using the TigerVNC Java Viewer is to install it
     under a fully-functional HTTP server, such as Apache or IIS.  Due to Java
     security restrictions, the applet must be signed in order for it to
     connect to a VNC server running on a different machine from the HTTP
     server.

     One can install the TigerVNC Java Viewer by simply copying the .class and
     .jar files into a directory that is under the control of the HTTP server.
     Also, an HTML page should be created to act as a the base document for the
     TigerVNC Java Viewer applet (an example named index.html is provided in
     this directory.  Modify this file to suit your specific needs.)

  3. Running the viewer as a standalone application.

     Finally, the TigerVNC Java Viewer can be executed locally on the client
     machine, but this method requires installation of either a JRE (Java
     Runtime Environment) or a JDK (Java Development Kit).  If VncViewer.jar is
     in the current directory, then the TigerVNC Java Viewer can be launched
     with the following command line:

         java -jar VncViewer.jar [parameters]

     Add an argument of -? to the above command line to print a list of
     optional parameters supported by VncViewer.


Parameters
==========

The TigerVNC Java Viewer accepts a number of optional parameters, allowing you
to customize its behavior.

Parameters can be specified in one of the two ways, depending on how the
TigerVNC Java Viewer is used:

  1. When the TigerVNC Java Viewer is run as an applet (embedded within an HTML
     document), parameters should be specified using the <PARAM> HTML tags
     within the appropriate <APPLET> section.  Example:

    <APPLET CODE=com.tigervnc.vncviewer.VncViewer ARCHIVE=VncViewer.jar
      WIDTH=400 HEIGHT=300>
      <PARAM NAME="PORT" VALUE=5901>
      <PARAM NAME="ScalingFactor" VALUE=50>
    </APPLET>

  2. When run as a standalone application, the TigerVNC Java Viewer reads
     parameters from the command line.  Example:

     java -jar VncViewer.jar Port=5901 ScalingFactor=50

Both parameter names and their values are case-insensitive.

For a complete list of parameters and their descriptions, run:

  java -jar VncViewer.jar -?


HINTS
=====

--> To refresh the remote desktop in the view-only mode, press "r" or "R"
    on the keyboard.


ACKNOWLEDGEMENTS
================

This distribution contains Java DES software by Dave Zimmerman
<dzimm@widget.com> and Jef Poskanzer <jef@acme.com>.  This is:

    Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.

    Permission to use, copy, modify, and distribute this software and its
    documentation for NON-COMMERCIAL or COMMERCIAL purposes and without fee
    is hereby granted, provided that this copyright notice is kept intact.
    
    WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
    SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
    NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE
    LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
    MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
    
    THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
    CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
    PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
    NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
    SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
    SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
    PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES").  WIDGET
    WORKSHOP SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF
    FITNESS FOR HIGH RISK ACTIVITIES.

    Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>.  All rights
    reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.

    THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
    ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Visit the ACME Labs Java page for up-to-date versions of this and other
    fine Java utilities: http://www.acme.com/java/
