Skip to content

JavaArchive

memory-agape edited this page Apr 18, 2019 · 7 revisions

PHPJava\Core\JavaArchive

Introduction

JavaArchive class is provided APIs for executing .jar file.

How to use

For an example as follows:

  1. Write Java:
class HelloWorld 
{
    public static void main(String[] args)
    {
        System.out.println(args[0]);
    }
}
  1. Compile classes to an archive.
$ javac -encoding UTF8 -d build src/*
$ cd build && jar -cvfe ../Test.jar Test *
  1. Write PHPJava:
<?php
use PHPJava\Core\JavaArchive;

// You must pass parameters to entrypoint within the `execute` method.
// The `execute` method haven't default parameters.
(new JavaArchive('Test.jar'))
    ->execute(["Hello World!"]);

// or
(new JavaArchive('Test.jar'))
    // Specify Test.class on JavaArchive
    ->getClassByName('Test')
    ->getInvoker()
    ->getStatic()
    ->getMethods()
    ->call(
        'main',
        ["Hello World!"]
    );

You'll get a result Hello World!

Provided methods

Name

public function __construct(string $jarFile, array $options = [])
Introduction

Initiate a Java Archive class.

Parameters
Name Type Description
$jarFile string Specify file path.
$options array Set JavArchive/JavaClass runtime options.

Name

public function __destruct()
Introduction

Initiated Java Archive destruction.

Parameters

No parameters.

Name

public function execute(...$arguments)
Introduction

Execute entrypoint class from initiated Java Archive.

Parameters
Name Type Description
...$arguments ...mixed Pass anything parameters to entrypoint class.

Name

public function __debugInfo()
Introduction

For dump java archive information.

Parameters

No parameters.

Name

public function getVersion(): ?string
Introduction

Get a Java archive version.

Parameters

No parameters.

Name

public function getCreatedBy(): ?string
Introduction

Get a Java archive creator name.

Parameters

No parameters.

Name

public function getEntryPointName(): ?string
Introduction

Get a entrypoint class name.

Parameters

No parameters.

Name

public function getClassPaths(): array
Introduction

Get defined class paths in manifest.

Parameters

No parameters.

Name

public function getClasses(): array
Introduction

Return are included Java classes in Java Archive.

Parameters

No parameters.

Name

public function getClassByName(string $name): JavaClassInterface
Introduction

To get initiated class from JavaArchive. This method can be manipulate loaded classes.

Parameters
Name Type Description
$name string Specify class name.

Clone this wiki locally