openjdk: provide hjava launcher utility.

This commit is contained in:
Augustin Cavalier
2015-03-03 23:02:06 -05:00
parent 60323de7e2
commit 9fd0b44fdb
4 changed files with 92 additions and 6 deletions

BIN
dev-lang/openjdk/download2 Normal file

Binary file not shown.

View File

@@ -5,8 +5,7 @@ result of an effort Sun Microsystems began in 2006. The implementation is \
licensed under the GNU General Public License (GNU GPL) with a linking \
exception. Were it not for the GPL linking exception, components that linked \
to the Java class library would be subject to the terms of the GPL license. \
OpenJDK is the official Java SE 7 reference implementation.
"
OpenJDK is the official Java SE 7 reference implementation."
HOMEPAGE="http://openjdk.java.net/"
COPYRIGHT="2012 Oracle and/or its affiliates."
LICENSE="GNU GPL v2"
@@ -27,7 +26,7 @@ SRC_URI_7="hg+http://hg.openjdk.java.net/jdk7u/jdk7u/jaxws#jdk7u80-b02"
SRC_URI_8="hg+http://bitbucket.org/hamishm/haiku-jdk7u-hotspot#755ff2f"
SRC_URI_9="hg+http://bitbucket.org/hamishm/haiku-jdk7u-jdk#f39f6f6"
REVISION="1"
REVISION="2"
ARCHITECTURES="x86"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
@@ -65,6 +64,7 @@ PROVIDES="
cmd:jstack$secondaryArchSuffix = $portVersion compat >= 1
cmd:jstat$secondaryArchSuffix = $portVersion compat >= 1
cmd:jstatd$secondaryArchSuffix = $portVersion compat >= 1
cmd:hjava = $portVersion compat >= 1
cmd:keytool$secondaryArchSuffix = $portVersion compat >= 1
cmd:native2ascii$secondaryArchSuffix = $portVersion compat >= 1
cmd:orbd$secondaryArchSuffix = $portVersion compat >= 1
@@ -95,7 +95,7 @@ BUILD_REQUIRES="
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cpio >= 2.10
cmd:cpio
cmd:make
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
@@ -113,6 +113,10 @@ BUILD_PREREQUIRES="
BUILD()
{
# Build "hjava" command.
g++ $portDir/sources/hjava.cpp -DJAVA_BINARY=\"$binDir/java\" -o hjava
addResourcesToBinaries $portDir/sources/hjava.rdef hjava
OPENJDK_DIR=$(dirname $sourceDir)
# prepare the directory structure
@@ -147,13 +151,18 @@ BUILD()
export USE_EXTERNAL_ZLIB=true
# Build.
# Build. (multijob make sometimes fails)
cd jdk
make
}
INSTALL()
{
mkdir -p $binDir
# install hjava
cp hjava $prefix/bin/
# install the generated SDK image dir
cd ..
jdkDir=$libDir/openjdk
@@ -161,7 +170,6 @@ INSTALL()
cp -a output/j2sdk-image $jdkDir
# symlink the executables to binDir
mkdir -p $binDir
symlinkRelative -s $jdkDir/bin/* $binDir
# TODO: We should probably link only a subset.

View File

@@ -0,0 +1,24 @@
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
int main(int argc, char* argv[])
{
if (argc < 2) {
system("alert --stop \"Java: Please specify a Jarfile.\" >/dev/null");
return 1;
}
char command[PATH_MAX];
snprintf(command, sizeof(command), "%s -jar \"%s\"", JAVA_BINARY, argv[1]);
FILE* fd = popen(command, "r");
if (fd != NULL) {
char buffer[512];
fgets(buffer, 512, fd);
return pclose(fd);
} else
system("alert --stop \"Java: popen failed!\" >/dev/null");
return 1;
}

View File

@@ -0,0 +1,54 @@
resource app_signature "application/x-vnd.hjava";
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = 1,
middle = 7,
minor = 0,
variety = B_APPV_FINAL,
internal = 0,
short_info = "hjava",
long_info = "Oracle JVM Launcher"
};
resource file_types message {
"types" = "application/java-archive"
};
resource vector_icon {
$"6E63696603050005FF0201060A3BDB8F0000000000003BDB8F490DCA4AF1DB00"
$"FFFFFF0FFBC8B412FBC3B02EF7978B4CF4716B6BF152518BEF3A3DACEE292FD1"
$"ED1F27FFED1C24070208B87DB7E3B87DB7E3B96FB9DFB7B0CC91B8CCC7B6B694"
$"D16EB536DCD0B578D79CB519DF07B6E3DFE7B570DFE7B971DFE7C0C2DAA3BCB0"
$"DA84C4D5DAC2C80AE0C7C621E0D1C9F2E0BCCB80DA2DCB7CE013CB8FC892B87D"
$"B7E3BCCDBA4CB87DB7E30213C549C5F5C549C5F5C62FC778C892C499C879C64E"
$"C8ABC2E4C74FC0A8C86BC0BDC634C094C44DBF63C569BF78C331BF4FC17CBEF1"
$"C201C06AC0F7BD78C44DBC9DC2E0BCD9C308BB58C1BAB878C249B9EFC12BB702"
$"C251B517C0C2B5AAC3E1B484C58AB8D1C3C0B778C503B6D4C4DCB4D9C4D1B601"
$"C4E6B3B0C676B309C4D1B2CFC81AB343C8ABB811C764B6ADC90FB6BFCA3BB463"
$"C94BB513CB2BB3B2CBF2B681CD4EB3AECA96B954CBEEBD15CC57BADBCB84BF4F"
$"C9B0C056CA3DBEE7C923C1C4C8FAC67ECA03C507C7F1C7F5C86DCC00C7C1CA34"
$"C65DCA13C549C5F5C549C5F5C549C5F50209B86EC7DCB86EC7DCB799CD92B48E"
$"D09FB4B4CE40B469D2FEB545D569B553D338B536D79AB307D9AEB343D87EB2CB"
$"DADFB4C0DB40B408DB40B578DB40B67BD617B631D818B6C6D415B587D187B587"
$"D2E7B587D027B700CFD8B755CDA2B87FCD7BB86EC7DCB935CA79B86EC7DC0207"
$"B98CCA09B98CCA09B8EBCD202ADE9AB4FADE62B8FDDED2C086D94DBBD9D943C5"
$"35D957C831DF7DC70DDF88C955DF73CA35D8ECCA16DFE5CA54D1F2C38EC51EC6"
$"12C90AC024C555B98CCA09BC78C812B98CCA090006C386C646C386C646C357C4"
$"57C00EC2D5C1E8C321BE44C28BBB10C4A5BC51C365B9A8C60EBA96C9AFB999C8"
$"04BB8FCB54BF7BCB76BDB7CBE0C1E5CAE6C386C646C3AFC8C9C386C6460007C2"
$"A3C6FEC2A3C6FEC278C8C0BF62CA92C111CA29BD99CB00BAFDC87BBBA1CA51BA"
$"AAC78BBB49C5C3BAB9C696BBC3C512BD49C42EBC87C487BED9C379C22DC4FAC1"
$"16C364C297C594C2A3C6FEC2A9C649C2A3C6FE0007C2A3C6FEC2A3C6FEC278C8"
$"C0BF62CA92C111CA29BD99CB00BAFDC87BBBA1CA51BAAAC78BBB49C5C3BAB9C6"
$"96BBC3C512BD49C42EBC87C487BED9C379C22DC4FAC116C364C297C594C2A3C6"
$"FEC2A9C649C2A3C6FE070A000100023E67E80000000000003E37B7473F2D3B22"
$"B20A000101023E67E80000000000003E37B7473F2D3B22B20A010103023E67E8"
$"0000000000003E37B7473F2D3B22B20A000104023E67E80000000000003E37B7"
$"473F2D3B22B20A020105023E67E80000000000003E37B7473F2D3B22B20A0001"
$"06123E67E80000000000003E37B7473F2D3B22B201178000040A000102023E67"
$"E80000000000003E37B7473F2D3B22B2"
};