## net.i2p.router.startup
Class LoadClientAppsJob

    java.lang.Object
      net.i2p.router.JobImpl
          net.i2p.router.startup.LoadClientAppsJob

All Implemented Interfaces:
  Job

    public class LoadClientAppsJob

extends JobImpl

Run any client applications specified in clients.config. If any clientApp contains the config property ".onBoot=true" it'll be launched immediately, otherwise it'll get queued up for starting 2 minutes later.

Nested Class Summary
`static class` `LoadClientAppsJob.DelayedRunClient`

Constructor Summary
`LoadClientAppsJob(RouterContext ctx)`

Method Summary
`String` `getName()` Descriptive name of the task
`static void` `main(String[] args)`
`static String[]` `parseArgs(String args)`
`static void` `runClient(String className, String clientName, String[] args, Log log)` Run client in a new thread.
`static void` `runClient(String className, String clientName, String[] args, Log log, ThreadGroup threadGroup, ClassLoader cl)` Run client in a new thread.
`static void` `runClientInline(String className, String clientName, String[] args, Log log)` Run client in this thread.
`static void` `runClientInline(String className, String clientName, String[] args, Log log, ClassLoader cl)` Run client in this thread.
`void` `runJob()` Actually perform the task.
`static void` `testClient(String className, ClassLoader cl)` Use to test if the class is present, to propagate an error back to the user, since runClient() runs in a separate thread.

Methods inherited from class net.i2p.router.JobImpl
`dropped, getAddedBy, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### LoadClientAppsJob

    public LoadClientAppsJob(RouterContext ctx)

Method Detail

### runJob

    public void runJob()

  Description copied from interface: `Job`
  Actually perform the task. This call blocks until the Job is complete.

### parseArgs

    public static String[] parseArgs(String args)

### testClient

    public static void testClient(String className,
                                  ClassLoader cl)
                           throws ClassNotFoundException

  Use to test if the class is present, to propagate an error back to the user, since runClient() runs in a separate thread.

  Parameters:
    `cl` - can be null
  Throws:
    `ClassNotFoundException`
  Since:
    0.7.13

### runClientInline

    public static void runClientInline(String className,
                                       String clientName,
                                       String[] args,
                                       Log log)
                                throws Exception

  Run client in this thread.

  Parameters:
    `clientName` - can be null
    `args` - can be null
  Throws:
    `just` - about anything, caller would be wise to catch Throwable
    `Exception`
  Since:
    0.7.13

### runClientInline

    public static void runClientInline(String className,
                                       String clientName,
                                       String[] args,
                                       Log log,
                                       ClassLoader cl)
                                throws Exception

  Run client in this thread.

  Parameters:
    `clientName` - can be null
    `args` - can be null
    `cl` - can be null
  Throws:
    `just` - about anything, caller would be wise to catch Throwable
    `Exception`
  Since:
    0.7.14

### runClient

    public static void runClient(String className,
                                 String clientName,
                                 String[] args,
                                 Log log)

  Run client in a new thread.

  Parameters:
    `clientName` - can be null
    `args` - can be null

### runClient

    public static void runClient(String className,
                                 String clientName,
                                 String[] args,
                                 Log log,
                                 ThreadGroup threadGroup,
                                 ClassLoader cl)

  Run client in a new thread.

  Parameters:
    `clientName` - can be null
    `args` - can be null
    `threadGroup` - can be null
    `cl` - can be null
  Since:
    0.7.13

### getName

    public String getName()

  Description copied from interface: `Job`
  Descriptive name of the task

### main

    public static void main(String[] args)