diff --git a/.bashrc b/.bashrc index f471061..179cbfb 100644 --- a/.bashrc +++ b/.bashrc @@ -170,7 +170,7 @@ which helm 1> /dev/null && source <(helm completion bash) # Helpful Aliases if [ -n "${SUDO_USER}" ]; then - alias nano="nano --rcfile \"/home/${SUDO_USER}/.nanorc\"" + alias nano="nano --rcfile \"/home/${SUDO_USER}/.config/nano/nanorc\"" fi # History customization diff --git a/.nanorc b/.config/nano/.nanorc similarity index 100% rename from .nanorc rename to .config/nano/.nanorc diff --git a/.tmux/hints b/.config/tmux/hints similarity index 100% rename from .tmux/hints rename to .config/tmux/hints diff --git a/.tmux.conf b/.config/tmux/tmux.conf similarity index 92% rename from .tmux.conf rename to .config/tmux/tmux.conf index b096afc..2f859a8 100644 --- a/.tmux.conf +++ b/.config/tmux/tmux.conf @@ -3,7 +3,7 @@ set -g prefix C-space bind-key C-space send-prefix # Shortcut to custom hints -bind h run-shell "tmux popup -xC -yC -w50% -h75% 'cat ~/.tmux/hints'" +bind h run-shell "tmux popup -xC -yC -w50% -h75% 'cat ~/.config/tmux/hints'" # Shortcut to sync panes bind C-x setw synchronize-panes @@ -32,7 +32,7 @@ bind -n C-S-Left previous-window bind -n C-S-Right next-window # Config -bind R source-file ~/.tmux.conf \; display "Config reloaded!" +bind R source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!" # Colors set -g default-terminal "screen-256color" diff --git a/.gitignore b/.gitignore index 49ab2dc..95d20b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .config/nvim/lazy-lock.json .luarc.json .tmux/plugins/* +.config/tmux/plugins/* diff --git a/.local/bin/IPMIView/BMCSecurity/client.crt b/.local/bin/IPMIView/BMCSecurity/client.crt new file mode 100755 index 0000000..a8b4881 --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/client.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID7TCCAtWgAwIBAgIJANG1tFg1Z6wcMA0GCSqGSIb3DQEBDQUAMIGMMQswCQYD +VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UEBwwIU2FuIEpvc2Ux +HTAbBgNVBAoMFFN1cGVyIE1pY3JvIENvbXB1dGVyMREwDwYDVQQLDAhTb2Z0d2Fy +ZTENMAsGA1UEAwwESVBNSTEUMBIGCSqGSIb3DQEJARYFRW1haWwwHhcNMTYwNTE5 +MDk0NjM2WhcNMjYwNTE3MDk0NjM2WjCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgM +CkNhbGlmb3JuaWExETAPBgNVBAcMCFNhbiBKb3NlMR0wGwYDVQQKDBRTdXBlciBN +aWNybyBDb21wdXRlcjERMA8GA1UECwwIU29mdHdhcmUxDTALBgNVBAMMBElQTUkx +FDASBgkqhkiG9w0BCQEWBUVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEArCjgSpQkxiycVRKBsCe/5PV7hw7HCfIio4wWntACPqVAlqAAFsIuMs53 +LoR+5AaMyxWec+ThCKCUoN/3Ll9dRe/863OSM94EzxXJgd5cbjq17OJv2KnYUG7U +clMp1autHFyUQHy1bxF6V8hQA7U+MY7ms3I8HOEFCwLJQlQNdlOoSHAzu5nmroo2 +IjeQzffykiWqH+okyu4JDD00XF7jTEw/uAisK4lWXGDE8jj37ekji0NUowJOfayv +1bg9DVL2XXS/k5O55Mgz88jTfY51Zc3pd1fQj6Zzrm2PR7EEsTgC2DTXPDAbpfuG +mYALxbjwt1PtzmxQUgmvqjDbWlD3+wIDAQABo1AwTjAdBgNVHQ4EFgQUt5jRvFav +XBPKMsPONp0xxOOUFAUwHwYDVR0jBBgwFoAUt5jRvFavXBPKMsPONp0xxOOUFAUw +DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOCAQEARiRveF6Mq8UQQKTYYBkw +TQf2DdwEfdGqWovhNFlsa3DDu/tVNlsWGveYfEve8mZgDrTojU5ChJlZslVuPGl7 +Lu9bHRo9YK4/NHpf2BczinaX2OeyETaOEASeXL83MP3uKhCeVA3NG4lw46hSq12y +bnH/cPqDhiuv0/1zrboowRrqSt2P97CZbw9+ybD86AvNQ74RIz1VJaEZjI94VWWu +nXyw11xy717cAu3veEGQWe7c/tEfGMtpnWxWpv0AS/gmQye3xj1+n+Jbxo8ZB8J8 +lnSJUhkiWopRWujEi4m7Hz0nLXYZfLTjJ2LJHopZ10tqcKj5LCR5qXF1WgaqMxT1 +Iw== +-----END CERTIFICATE----- diff --git a/.local/bin/IPMIView/BMCSecurity/client.key b/.local/bin/IPMIView/BMCSecurity/client.key new file mode 100755 index 0000000..770cd1a --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/client.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsKOBKlCTGLJxV +EoGwJ7/k9XuHDscJ8iKjjBae0AI+pUCWoAAWwi4yzncuhH7kBozLFZ5z5OEIoJSg +3/cuX11F7/zrc5Iz3gTPFcmB3lxuOrXs4m/YqdhQbtRyUynVq60cXJRAfLVvEXpX +yFADtT4xjuazcjwc4QULAslCVA12U6hIcDO7meauijYiN5DN9/KSJaof6iTK7gkM +PTRcXuNMTD+4CKwriVZcYMTyOPft6SOLQ1SjAk59rK/VuD0NUvZddL+Tk7nkyDPz +yNN9jnVlzel3V9CPpnOubY9HsQSxOALYNNc8MBul+4aZgAvFuPC3U+3ObFBSCa+q +MNtaUPf7AgMBAAECggEAPTJKiDgg2lEBQTxS3UtD6x9Xyap3FhH8PiaN4+YM5jfX +vbMiVPSxd13s/5wZfvTVF1uX95pkY6yxKH50XweHIFUukoOCdO12yCX2ezOPp583 +C/1xxJKbUfwTiJAHTuy3nF1MVZ/+3nxYANwzlR3X/cXOO/tfYuSZ5lAXOnymTGjb +IF4iOcQ+h6ihnkXHDdUo0Uv6uTnUYuTDBsXyYn9jQbxDJxIxT0AD1KMthGUR9+gb +gYjiFdw5pQAimjPFpSFCoSr/auGeJ9Q8F+YG9xw8pm/rZLG4XpQlXjR9oC64EueV +4NySL9YZfKlM3eDGEGs1kZBN4eEP9RmTGpicqPwwAQKBgQDWWiEtxHVuA4Hec+9z +NYXDfp+p2npFzQDrhWFxXBz7yjun1tOBX93IhZ8XDKqqgq+wiM82x0wyEHNDeoNZ +oS1/qL4Nl3OLkBBE1h1zT//1VMrj4y9gqoLw5g2+AI4I8Ng0Y4Ha8R4wDc2zmNas +3kCGKa7bE2P2IgEQwPJNiOugyQKBgQDNnBjXSQFkJEXHbdlJsAxPAVxf3MWGD5V9 +Zmh/CkKLXSWjco43ymzAP9KI4/Hsv69jyGIkjan8D8ETc5N7w6GCoqE8/0d3XrbW +A/nORn0NZlMAbdwpYuQruVImJkw2G3R1C1qDMJr18A96Tu3mGZD3P4OsM3vZPaSp +ly55Z6DYowKBgQCeaqAIxiAPfXIWqNI38D96uvNfQcOKILdkWQAqGmylPdIW+fL4 +s5QipXZtP4RGXi1gJ8wU7PgILBYzsbCvpioNJfXH772KUJ9lcGT1mxNNCiykfXu/ +UmVRioRvftN6Eh2Hol8PI5Iu65Sx/evyeJNxVA8Rg+QlvP3Slva8jMuv2QKBgE/h +06zgyk+T4CBpR0Bfy4huaOs9pOg+6b98qCCjZdMrb1IfUa3PUY0nvq48kWN/3a6Q +zcCR4Xbyz/q0rpopGXjdonNGYwe3nqVrigRgUnmARcMm66CQsUFjkM0NmBJ1fDt1 +G8dYfPwMNpc4TylUyYOmA4xFvFpcnrrc58t3PYCtAoGADp9TguRMrNi9L0HSl3k9 +ltwzW5uXFvqmG3ozONsVnzmU8JIrKM3nMKaH0LB+xlRn1fwGZj1vU0zDPF4dZlud +eawJVqe0SF9PJfxcUB6U/rqgCRpev0/qr7ee9J/WkDZp/Vw0FrxcLcoSr9pYrEjd +1lpHxLYm8rkM8kXRfcAGrxc= +-----END PRIVATE KEY----- diff --git a/.local/bin/IPMIView/BMCSecurity/linux/stunnel.conf b/.local/bin/IPMIView/BMCSecurity/linux/stunnel.conf new file mode 100755 index 0000000..464a7b2 --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/linux/stunnel.conf @@ -0,0 +1,29 @@ +; ************************************************************************** +; * Global options * +; ************************************************************************** + +; Debugging stuff (may useful for troubleshooting) +debug = 7 +; output = stunnel.log + +; PID is created inside the chroot jail +pid = + +; ************************************************************************** +; * Service defaults may also be specified in individual service sections * +; ************************************************************************** + +; Certificate/key is needed in server mode and optional in client mode +cert = /tmp/mail.pem + +; force stunnel to use TLSv1.2 only +sslVersion = TLSv1.2 +ciphers=HIGH + +; Disable support for insecure SSLv3 protocol +options = NO_SSLv3 + +; ************************************************************************** +; * Service definitions (remove all services for inetd mode) * +; ************************************************************************** + diff --git a/.local/bin/IPMIView/BMCSecurity/linux/stunnel64 b/.local/bin/IPMIView/BMCSecurity/linux/stunnel64 new file mode 100755 index 0000000..ff75afc Binary files /dev/null and b/.local/bin/IPMIView/BMCSecurity/linux/stunnel64 differ diff --git a/.local/bin/IPMIView/BMCSecurity/lockKey.txt b/.local/bin/IPMIView/BMCSecurity/lockKey.txt new file mode 100755 index 0000000..861d7af --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/lockKey.txt @@ -0,0 +1 @@ +This is used to as a lock key, please do not remove it. \ No newline at end of file diff --git a/.local/bin/IPMIView/BMCSecurity/mail.pem b/.local/bin/IPMIView/BMCSecurity/mail.pem new file mode 100755 index 0000000..bc151d8 --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/mail.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDgFgJ/kX4nVvKd +HRasBftPwnOKLxnnCzcng3CXnNL1xySwm7EhrmX2Y6mRbDqNbKUfg9Wa/1pQoWP7 +Jnbe+xkCdfqpKSSBMXJTZQcH5tl8MxhbfgFMepUC8a4nZ5XPy9eEo2dtqD/Q2/cU +++ug9TZ2FPdYcVa20AddSK3/0U2wJ2Rs3VW1h4sMrqcDQHTRJZxQwWmZvPrYKqQm +JZc8EaivU0PSFpkW6hv3IXSSxkWkaT1Al5OFRv7plIidHoKDw4o01WsNxpEE0W3N +ckKlygueNX0aPwZLrWMvlDmClndAmInQc26Clg+tIvZRpArnaQYkR7p8JSEcElS9 +R6cH81GfAgMBAAECggEAT/uLKL1lqeT+89VOIliAOxfM5aWqOS1nolLn/TWclt1d +2yu3La5x9l/cRmu6+n+s8HK963T5Z44zgZFZHH3Dj31M2tQ0k2hyxhFpUQi01//k +0cNH82RNi5936divQFwhsNYiNKG5JXNd3b+NewYLSlpxbsAFk3rtJf6rHIQ4lobN +6xObRBWI58vTojjM00MGtfKehzt/MOqfs+cCU74i6nG3qGk7KLzdHLJ90aKCjMbI +S6CTyHixWNUKVau0CzvjbQDdGIa/R329JzDIxiN+Sr5UYNZyFx7XzIdXrTF5knY0 +REyIEvY0kMGRi9y0jUu/6PPgQQtnT3RhXH8bqIh3AQKBgQD1GmfYfxmd5AqTQPBF +2Tgw+lQKG8j5M/jKvz4G/+TQ05O2EeVG6KOugNIKQBX2ZeoDoiBj7WTECqEegaEO +v++ArKJI4IKTzfleLsNz7Y9rhaX5QSZxDUxJDKEJxrX2PG/ktZse2lruspzzmCVM +OQwYCADIoand8VYDMCgIa9RilQKBgQDqDGa2CWtVMuuRrd2AbyyFrg0xVQtmXViK +RY/E0sIiAguGdfB+dc3kmjXpDVgv6Jg1kLXhDF2R4VUWSobNKp0+qnkQY4FdXWYx +iSr0pCIQAXvpxFDCRYxdQGBnir+CuWR01jItsVrqRTmkBa8Rkf467dVgo7jOmtkz +mWAkp6HqYwKBgDle0OfP+EMI2aDWFmeDDLAKKBmln0kVbSqn0PD6fKiUnYKEddI/ +KfDynjdgAMQH3tqy3DoHmwp4InZtiTFWo8zOm73LL0VBdRkigQVlmahlRBAvu7vC +jRScLCWJqZXVV6uFBqYWHiq5DBvIhRJuV/JYDTbpAEW+848TeoteEfxxAoGBAMeA +EKEEgGgcQm5n7JIIscO1K+usGU6FLO6YAsd7+xyv75EKwReaZQmCZYek51HXCr9F +/bK6LpwlnbiliCgkNervtshAeUnTTkPVLzdfHOXVzgDiZRBj5hSqxkIcI8hTLQzm +c9k8/0kH/u0QJz1r22/xwNtiUypRFemEyE4WUc8PAoGAV1Nlb9qxIEXf6B8TzJ5s +i5LxoMlRwoafh7oJDhxcIDILS3bMXAPRkeQgPz0STbhLu0SPjYlWGaFYZSoO5Fym +VrPBaM3Ikj32/Xd6owFNhbrF3McA21a6NibDZmCnuwNjdlG7FZ8ZpvdWGMqSbbbH +QRTIRaGaPhhPlG8Kewpsv3A= +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIEEjCCAvqgAwIBAgIJAKFMz4S61Yk4MA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV +BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMR0wGwYDVQQKExRTdXBlciBNaWNy +byBDb21wdXRlcjERMA8GA1UECxMIU29mdHdhcmUxDTALBgNVBAMTBElQTUkwHhcN +MTUwNTA3MDIyMzE4WhcNMTgwNTA2MDIyMzE4WjBjMQswCQYDVQQGEwJVUzETMBEG +A1UECBMKQ2FsaWZvcm5pYTEdMBsGA1UEChMUU3VwZXIgTWljcm8gQ29tcHV0ZXIx +ETAPBgNVBAsTCFNvZnR3YXJlMQ0wCwYDVQQDEwRJUE1JMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA4BYCf5F+J1bynR0WrAX7T8Jzii8Z5ws3J4Nwl5zS +9ccksJuxIa5l9mOpkWw6jWylH4PVmv9aUKFj+yZ23vsZAnX6qSkkgTFyU2UHB+bZ +fDMYW34BTHqVAvGuJ2eVz8vXhKNnbag/0Nv3FPvroPU2dhT3WHFWttAHXUit/9FN +sCdkbN1VtYeLDK6nA0B00SWcUMFpmbz62CqkJiWXPBGor1ND0haZFuob9yF0ksZF +pGk9QJeThUb+6ZSInR6Cg8OKNNVrDcaRBNFtzXJCpcoLnjV9Gj8GS61jL5Q5gpZ3 +QJiJ0HNugpYPrSL2UaQK52kGJEe6fCUhHBJUvUenB/NRnwIDAQABo4HIMIHFMB0G +A1UdDgQWBBQRaLmLwpZq39QhsGYLOgJ3aQ2upjCBlQYDVR0jBIGNMIGKgBQRaLmL +wpZq39QhsGYLOgJ3aQ2upqFnpGUwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh +bGlmb3JuaWExHTAbBgNVBAoTFFN1cGVyIE1pY3JvIENvbXB1dGVyMREwDwYDVQQL +EwhTb2Z0d2FyZTENMAsGA1UEAxMESVBNSYIJAKFMz4S61Yk4MAwGA1UdEwQFMAMB +Af8wDQYJKoZIhvcNAQELBQADggEBAEk85wVygJbpGoWd/LD+rtdyozlVF9dU0JEj +3CtV2Im0Q15HZt1nn2FtKXqIhgk/SLTg4jEYApBgSZ+0ysUGRpQeFZ004zLheDTR +FSp3hhmkCBJMsbz8M4y+H/WTyYU/+Fgbma9qkF06iVfxl0kTWYAPjMGYoacZxsCP +ZM8BjJQNgLP+he1CWHh2Swivm/wv+BoBpO71bUQzpM37R7uF1v/bmsss0CFYxq0B +eQ8jcBQRYHMCWJhJ/WZ+HhP/52CCTAGYz7iVkmZSepjS/AI1CEb518TB/gSYBd/x +Dk7x8f220ReQf2u6EbAwDsMSkhbd2bPBf8X9KnRUCK8XByLz3T8= +-----END CERTIFICATE----- diff --git a/.local/bin/IPMIView/BMCSecurity/server.crt b/.local/bin/IPMIView/BMCSecurity/server.crt new file mode 100755 index 0000000..0cad4df --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/server.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID7TCCAtWgAwIBAgIJALtBZnYmE6G+MA0GCSqGSIb3DQEBDQUAMIGMMQswCQYD +VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTERMA8GA1UEBwwIU2FuIEpvc2Ux +HTAbBgNVBAoMFFN1cGVyIE1pY3JvIENvbXB1dGVyMREwDwYDVQQLDAhTb2Z0d2Fy +ZTENMAsGA1UEAwwESVBNSTEUMBIGCSqGSIb3DQEJARYFRW1haWwwHhcNMTYwNTE5 +MDk0NDEwWhcNMjYwNTE3MDk0NDEwWjCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgM +CkNhbGlmb3JuaWExETAPBgNVBAcMCFNhbiBKb3NlMR0wGwYDVQQKDBRTdXBlciBN +aWNybyBDb21wdXRlcjERMA8GA1UECwwIU29mdHdhcmUxDTALBgNVBAMMBElQTUkx +FDASBgkqhkiG9w0BCQEWBUVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAxmJFiYRLIZrXSIxiuOHDYgxdtc4t9xoEaJ/kqxPbbHIPPeI+MGEBKgOY +AblGYrQse/E+lE/qFXC4CZD/S2txQ1g3DHPLSmIVIcz70G9sxfbefdc4Qh5/MZP7 +cDBi5y2epkrg4offPDA5W6f7wB7hQyA7PcXG+2Il9rHlqgCkUEmrjk4KO2ndi8J/ +igVmbuogVoCLhhaib9qTxnZyzKLW/LXz/OtxpYk9brdg/VhPUszWKbZYLXd9KkOi +UIl+WWjRfKZTo6pJXrbdOMGYtIoiN4EVYv+3uLbTUfD6/6LqGvvyB1kU9Q8OEyCq +LEE0aWiRnYCzXrGVuni24VpUeoNLXwIDAQABo1AwTjAdBgNVHQ4EFgQUjLl+SzMr +PQN0mNXeQzQ9egX9WGswHwYDVR0jBBgwFoAUjLl+SzMrPQN0mNXeQzQ9egX9WGsw +DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOCAQEAErzjuJwL0YlYLAj3d784 +FL3mKaEbtQDfOSITPD/E62IWlFqUkb50pxbGqse6cBKesjCiMt56ZzbasCIPVd/L +K71KvwySNmTuSm4KwipW8hHx3OTBsbaqrUqyvD2765/3p1jGlvNQpOM1gVOjei8L +N0E+FAnkY0W/NGgUr499mhMyLbePZnsfkY1ZsmmMjGJexFFUsfln6M+6O/DWym+O +Kv0SFBsKZXzHpuEe6oZ2+UG8X80xK9b7eN2VuNtiGBAlIjE5960vm/kW0CijtZo4 +dU57I5hCpUC2p0QaG8525Dm41fWEdRAhFXUMQwf2uhXe6QMLO9FhPNErB39SUKLN +7w== +-----END CERTIFICATE----- diff --git a/.local/bin/IPMIView/BMCSecurity/win/libcrypto-3-x64.dll b/.local/bin/IPMIView/BMCSecurity/win/libcrypto-3-x64.dll new file mode 100755 index 0000000..35bb7d4 Binary files /dev/null and b/.local/bin/IPMIView/BMCSecurity/win/libcrypto-3-x64.dll differ diff --git a/.local/bin/IPMIView/BMCSecurity/win/libssl-3-x64.dll b/.local/bin/IPMIView/BMCSecurity/win/libssl-3-x64.dll new file mode 100755 index 0000000..1bdc30d Binary files /dev/null and b/.local/bin/IPMIView/BMCSecurity/win/libssl-3-x64.dll differ diff --git a/.local/bin/IPMIView/BMCSecurity/win/libssp-0.dll b/.local/bin/IPMIView/BMCSecurity/win/libssp-0.dll new file mode 100755 index 0000000..505ec3f Binary files /dev/null and b/.local/bin/IPMIView/BMCSecurity/win/libssp-0.dll differ diff --git a/.local/bin/IPMIView/BMCSecurity/win/stunnel.conf b/.local/bin/IPMIView/BMCSecurity/win/stunnel.conf new file mode 100755 index 0000000..454b22e --- /dev/null +++ b/.local/bin/IPMIView/BMCSecurity/win/stunnel.conf @@ -0,0 +1,27 @@ +; ************************************************************************** +; * Global options * +; ************************************************************************** + +; Debugging stuff (may useful for troubleshooting) +debug = 7 +; output = stunnel.log + +; ************************************************************************** +; * Service defaults may also be specified in individual service sections * +; ************************************************************************** + +; Certificate/key is needed in server mode and optional in client mode +cert = mail.pem + +; force stunnel to use TLSv1.2 only +sslVersion = TLSv1.2 +ciphers=HIGH + +; Disable support for insecure SSLv3 protocol +options = NO_SSLv3 + +; ************************************************************************** +; * Service definitions (remove all services for inetd mode) * +; ************************************************************************** + + diff --git a/.local/bin/IPMIView/BMCSecurity/win/stunnel.exe b/.local/bin/IPMIView/BMCSecurity/win/stunnel.exe new file mode 100755 index 0000000..0df049f Binary files /dev/null and b/.local/bin/IPMIView/BMCSecurity/win/stunnel.exe differ diff --git a/.local/bin/IPMIView/IPMIView.properties b/.local/bin/IPMIView/IPMIView.properties new file mode 100644 index 0000000..9e5daff --- /dev/null +++ b/.local/bin/IPMIView/IPMIView.properties @@ -0,0 +1,2 @@ +Router=10.0.10.255:Router +Backup IPMI=10.0.0.189:DESCRIPTION diff --git a/.local/bin/IPMIView/IPMIView20 b/.local/bin/IPMIView/IPMIView20 new file mode 100755 index 0000000..58f6af9 --- /dev/null +++ b/.local/bin/IPMIView/IPMIView20 @@ -0,0 +1,2828 @@ +#!/bin/sh +################################################################################################# +# +# LAXUNIX.SH - LaunchAnywhere (tm) version 17.0 +# +# (c) Copyright 2015 Flexera Software LLC. All rights reserved. +# +# To run this script you will need to have the following: +# 1) a Java VM installed (however, it will handle a lack of Java nicely). +# 2) a Java-style properties file having the same name as this script +# with the suffix .lax. If this script is appended to the +# self-extractor, it will look for the properties file in the +# directory specified by $seLaxPath; otherwise, it will look in +# the same directory that this script is in. +# 3) a Java program in the file "lax.jar". +# +# The .lax property file must contain at least the following properties: +# 1) lax.class.path classpath (do not include the environment variable $CLASSPATH ) +# 2) lax.nl.java.launcher.main.class (main class of LaunchAnywhere Executable) +# +################################################################################################# + +# +# Since USERENV is already set in the self-extractor, if its not set we know +# this is not an installer but a separate launcher. +# USERENV is just a flag passed from use.sh. +# +IS_INSTALLER='' +[ $USERENV ] && IS_INSTALLER=true + +# +# later on we might add things to the PATH, but we want to preserve the PATH +# order for which VMs are the first ones found. +# +VM_SEARCH_PATH="$PATH" + +case `uname -s` in +"SunOS") TR="/usr/xpg4/bin/tr" +;; +*) TR="/usr/bin/tr" +;; +esac + +#################################################################################### +# Set some constants +if [ "$1" = "LAX_VM" ]; then + lax_vm="LAX_VM" + lax_vm_value="$2" + shift 2 +else + lax_vm="" +fi +anyVMlist="JDK_J2 D12 JRE_J2 R12 JDK_J1 JRE_J1 JDK JRE ALL" + +#################################################################################### +#Specifying some global variables +IATEMP="/tmp" +DEBUG=0 +var_searchAndverifyJvm=2 #var_searchAndverifyJvm - jvm search&verify result; successful search&verify sets to zero; initializing to non-zero +var_verifyJVM=2 # verification of a JVM result. successful verification of searched JVM sets to zero; initializing to non-zero +pbc=1 +LOG=/tmp/ourlog +iaVV="true" +actvmType="" +actvm="" +PLATFORM_HINT_FILE=/tmp/tmpPlatformHintFile + + +#################################################################################### +# Format commandline args +# To overcome the problem of quoted args (with internal spaces) to the launcher +# is that they get "unquoted" or separated into discreet args when they are put +# on the cmdline for the application. This following block makes sure the stay intact +overrideDefaultUIMode="false" +ignoreMode="false"; +uimode="not set" +hasSeenI="false" +tmpArgs="" +origArgs=$@ +for arg in "$@" +do + if [ "$arg" != "" ]; then + tmpArgs="$tmpArgs \"$arg\"" + if [ "$arg" = "-i" -o "$arg" = "-I" ]; then + hasSeenI="true" + elif [ "$hasSeenI" = "true" ]; then + lowerArg=`echo $arg | $TR "[:upper:]" "[:lower:]"` + if [ "$lowerArg" = "awt" ]; then + uimode="awt" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "swing" ]; then + uimode="swing" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "gui" ]; then + uimode="gui" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "console" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "text" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "silent" ]; then + uimode="silent" + overrideDefaultUIMode="true" + else + ignoreMode="true" + fi + fi + fi +done + +# JVM heap size option are no longer required, hence removing it from the command line arguments. +# *NOTE* :: This part can be done in the above code but still doing the same again. +tmpArgs="" +jvmOptPresent="false" +for arg in "$@" +do + if [ "$arg" != "-jvmxms" ] && [ "$arg" != "-jvmxmx" ] && [ "$jvmOptPresent" = "false" ]; then + tmpArgs="$tmpArgs \"$arg\"" + else + if [ "$jvmOptPresent" = "false" ]; then + jvmOptPresent="true" + else + jvmOptPresent="false" + fi + fi +done + +cmdLineArgs="$tmpArgs" +thisScript="$0" +# make sure thisScript is an abs path +case $thisScript in + /*) + ;; + *) + thisScript="`pwd`/$thisScript" + ;; +esac + +#################################################################################### +# +# WHere does the LAX_DEBUG output go? +# + +if [ "$LAX_DEBUG" = "file" ]; then + jx_log="`pwd`/jx.log" + rm -f "$jx_log" + touch "$jx_log" + if [ "$?" -gt "0" ]; then + jx_log_ok="false" + echo "Could not create $jx_log. Sending debug output to console." + else + jx_log_ok="true" + fi +fi + +debugOut() +{ + case "$LAX_DEBUG" in + "file" ) + if [ "$jx_log_ok" = "true" ]; then + echo "$1" >> "$jx_log" + else + echo "$1" + fi + ;; + "" ) + echo "$1" >> /dev/null + ;; + * ) + echo "$1" + ;; + esac +} + +#################################################################################### +# +# UNIX ENVIRONMENT configuration +# +debugOut "" +debugOut "========= Analyzing UNIX Environment =================================" + + +# Get os type , note that it is LOWER-CASED. Used here and later on +osName=`uname -s 2> /dev/null | $TR "[:upper:]" "[:lower:]" 2> /dev/null` +debugOut "Setting UNIX ($osName) flavor specifics." +vmScript=".java_wrapper" +case "$osName" in + *irix*) + cpuName="unknown" + ;; + *hp-ux*|*hpux*) + cpuName=`uname -m 2> /dev/null` + ;; + *solaris*|*sunos*) + cpuName=`uname -p 2> /dev/null` + THREADS_FLAG=""; export THREADS_FLAG + PATH=/usr/bin:$PATH; export PATH + ;; + *aix*) + cpuName="unknown" + ;; + *freebsd*) + cpuName=`uname -p 2> /dev/null` + ;; + *linux*) + cpuName=`uname -m 2> /dev/null` + ;; + # tlb 2001-09-18 updating to support Darwin + *rhapsody*|*darwin*) + cpuName=`uname -p 2> /dev/null` + vmScript=".java_command" + ;; + *compaq*|*dg*|*osf*) + cpuName="unknown" + ;; + *) + cpuName="unknown" + ;; +esac + + +if [ -x /bin/ls ]; then + lsCMD="/bin/ls" +elif [ -x /usr/bin/ls ]; then + lsCMD="/usr/bin/ls" +else + lsCMD="ls" +fi + +debugOut "Importing UNIX environment into LAX properties." + +#################################################################################### +# +# CREATE ENV.PROPERTIES and figure out if this is being exec'd from an installer +# +# We need POSIX awk. On some systems it's called awk, on others +# nawk. It's most frequently called nawk, so start with that. +# +debugOut "Checking for POSIX awk." + +AWK=nawk +( $AWK '{}' ) < /dev/null 2>&0 || AWK=awk + +if [ -z "$IATEMPDIR" ]; then + TMPDIR=/tmp +else + TMPDIR=$IATEMPDIR +fi + + +if [ -z "$envPropertiesFile" ] +then + if [ -d $TMPDIR ] + then + envPropertiesFile=$TMPDIR/env.properties.$$ + else + envPropertiesFile="$HOME/env.properties.$$" + fi +fi + +# +# Convert environment variables to LAX properties. The variables +# are also named with alternate case (all upper, all lower). +# +# E.g. +# export My_Env_Var="abc +# def" +# +# is converted to: +# lax.nl.env.exact_case.My_Env_Var=abc def +# lax.nl.env.MY_ENV_VAR=abc def +# lax.nl.env.my_env_var=abc def +# +# The second gsub() is used to escape backslashes so that when the properties +# file is read by the java.util.Properties object, there is not a problem +# with incorrectly interpreted escaped unicode. +# +# This code segment is written in POSIX awk for performance reasons. +# + +$AWK -v LAX_PREFIX=lax.nl.env. ' +END { + for (var in ENVIRON) + { + # get variable value + value = ENVIRON[var] + + # strip newlines + gsub(/\n/, " ", value) + + # convert one backslash to two + gsub(/\\/, "\\\\", value) + + # print as LAX property + print LAX_PREFIX "exact_case." var "=" value + print LAX_PREFIX tolower(var) "=" value + print LAX_PREFIX toupper(var) "=" value + } +}' < /dev/null > $envPropertiesFile + + + +#################################################################################### +# +# Tracing symbolic links to actual launcher location +# + +resolveLink() +{ + rl_linked="true" + rl_operand="$1" + rl_origDir="`dirname "$1"`" + + # bypass the whole thing if this isnt a link + rl_ls=`$lsCMD -l "$rl_operand"` + case "$rl_ls" in + *"->"*) + ;; + *) + resolvedLink="$rl_operand" + return + ;; + esac + + while [ "$rl_linked" = "true" ]; do + # if the operand is not of an abs path, get its abs path + case "$rl_operand" in + /*) + rl_origDir=`dirname "$rl_operand"` + ;; + \./*) + rl_origDir=`pwd` + rl_operand="$rl_origDir/$rl_operand" + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + # + # the prevPrev hack is here because .../java often points to .java_wrapper. + # at the end of the resolution rl_operand actually points to garbage + # signifying it is done resolving the link. So prev is actually .java_wrapper. + # but we want the one just before that, its the real vm starting poiint we want + # + rl_prevOperand="$rl_operand" + rl_ls=`$lsCMD -l "$rl_operand"` + # get the output ls into a list + set x $rl_ls + # get rid of x and file info from ls -l + shift 9 + + #is this a link? + case "$rl_ls" in + *"->"*) + rl_linked="true" + # is a link, shift past the "->" + rl_linker="" + while [ "$1" != "->" -a $# -gt 1 ]; do + rl_linker="$rl_linker $1" + shift + done + + if [ "$1" = "->" ]; then + shift + fi + ;; + *) + # not a link, the rest must be the targets name + rl_linked="false" + ;; + esac + # now grab what's left + rl_linkee="$*" + + # debugOut "Following link to LAX $rl_linker -> $rl_linkee" + + if [ "$rl_linked" = "true" -a "`basename "$rl_linkee"`" != "$vmScript" ]; then + # set to true incase the thing linked to is also a link and we can + # try again. The current think linked to now becomes the operand + rl_operand="$rl_linkee" + # if the linkee is not abs, make it abs relative to the linker + case "$rl_operand" in + /*) + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + else + # otherwise, this operand is not a link itself and we are done + rl_resolvedLink="$rl_prevOperand" + # however, do not resolve the last leg of a VMs linked scripts. this will + # disrupt their scripts. it is expecting a link to the .java* script + # let us believe it is not linked and continue on... + if [ "`basename "$rl_linkee"`" = "$vmScript" ]; then + rl_linked="false" + fi + fi + # make sure the path returned is absolute + case "$rl_operand" in + \.\/*) + rl_operand="`pwd`/$rl_operand" + ;; + esac + done + + # remove "/./" in paths, make it "/" + # i,e, "/a/b/./c" becomes "/a/b/c" + resolvedLink=`echo "$rl_resolvedLink" | sed 's,/\./,/,'` +} + +#################################################################################### +# +# FINDING THE LAX FILE +# +# If this is an installer, use $seLaxPath +# +debugOut "" +debugOut "========= Analyzing LAX ==============================================" +olddir=`pwd` +resolveLink "$thisScript" +absLauncherName="$resolvedLink" +cd "`dirname "$absLauncherName"`" +if [ "$IS_INSTALLER" != "" ]; then + if [ ! -z "$seLaxPath" ]; then + propfname="$seLaxPath" + else + # legacy for old self-extractors + propfname="$templaxpath" + fi +else + propfname="$absLauncherName.lax" +fi + + +if [ ! -r "$propfname" ]; then + debugOut "The file "$propfname" could" + debugOut "not be found, and the program cannot be run without it." + debugOut "Try reinstalling the program." + exit; +else + debugOut "LAX found............................ OK." +fi + + +#################################################################################### +# +# READING THE LAX FILE +# +OFS="$IFS" +# run prop file through sed calls that do: +# 1. transform first '=' on a line into a control-O +# 2. transform all other ='s to control-F +# 3. transform control-Os back to = +# this is to differentiate the lhs=rhs processing from confusing the first = from other +# = that might be part of the value. Later on those =-tranformed-to-control-Fs are +# transformed back to = signs. +set x `cat "$propfname" | sed -e 's~^\([^\=]*\)\=\(.*\)~\1\\2~g' -e 's~=~~g' -e 's~~=~g' | grep '='`; shift + +while test $# -gt 0; do + # line separator + case "x${1}x" in + *"="* ) BIFS=" "; ;; + * ) BIFS="" ; ;; + esac + # word separator + case "x${2}x" in + *"="* ) AIFS=""; ;; + * ) AIFS=""; ;; + esac + INPUT="$INPUT$BIFS$1$AIFS" + shift +done + +while test "x$INPUT" != "x"; do + set x $INPUT; shift + X="$1" + shift + INPUT="$@" + IFS="=$AIFS" + set x $X; shift + IFS="$OFS" + + lhs="${1}" + shift + rhs="$@" + + # transform non lhs=rhs delimiting = signs back from ^F to = + case "$rhs" in + **) + rhs=`echo $rhs | sed 's~~=~g'` + ;; + esac + + # assing the values + case $lhs in + lax.class.path*) + lax_class_path="$rhs" + ;; + lax.main.class*) + lax_main_class="$rhs" + ;; + lax.nl.java.launcher.main.class*) + lax_nl_java_launcher_main_class="$rhs" + ;; + lax.nl.current.vm*) + lax_nl_current_vm="$rhs" + ;; + lax.user.dir*) + lax_user_dir="$rhs" + lax_user_dir=`echo $lax_user_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.resource.dir*) + lax_resource_dir="$rhs" + lax_resource_dir=`echo $lax_resource_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.stdout.redirect*) + lax_stdout_redirect="$rhs" + ;; + lax.stderr.redirect*) + lax_stderr_redirect="$rhs" + ;; + lax.dir*) + lax_dir="$rhs" + ;; + lax.always.ask*) + lax_always_ask="$rhs" + ;; + lax.application.name*) + lax_application_name="$rhs" + ;; + lax.nl.message.vm.not.loaded*) + lax_nl_message_vm_loaded="$rhs" + ;; + lax.nl.valid.vm.list*) + # transform an blank value to "ALL" + case "$rhs" in + "") rhs="ALL"; ;; + esac + lax_nl_valid_vm_list="$rhs" + ;; + lax.nl.java.option.check.source*) + verify="$rhs" + ;; + lax.nl.java.option.verify.mode*) + verify_mode="$rhs" + ;; + lax.nl.java.option.verbose*) + verbo="$rhs" + ;; + lax.nl.java.option.garbage.collection.extent*) + gcxtnt="$rhs" + ;; + lax.nl.java.option.garbage.collection.background.thread*) + gcthrd="$rhs" + ;; + lax.nl.java.option.native.stack.size.max*) + nsmax="$rhs" + ;; + lax.nl.java.option.java.stack.size.max*) + jsmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.max*) + jhmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.initial*) + jhinit="$rhs" + ;; + lax.nl.java.option.debugging*) + debug="$rhs" + ;; + lax.nl.$osName.$cpuName.java.compiler*) + lax_nl_osname_cpuname_java_compiler="$rhs" + ;; + lax.nl.$osName.java.compiler*) + lax_nl_osname_java_compiler="$rhs" + ;; + lax.nl.java.compiler*) + lax_nl_java_compiler="$rhs" + ;; + lax.nl.java.option.additional*) + lax_nl_java_option_additional="$rhs" + ;; + ###################################################### + # tlb 2001-09-18 + # Reading default UI mode for UNIX + lax.installer.unix.ui.default*) + lax_installer_unix_ui_default="$rhs" + ;; + ###################################################### + # JIT overrides + lax.nl.unix.JDK_J1.java.compiler*) + lax_nl_unix_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JDK_J2.java.compiler*) + lax_nl_unix_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J1.java.compiler*) + lax_nl_unix_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J2.java.compiler*) + lax_nl_unix_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.unix.J1.java.compiler*) + lax_nl_unix_J1_java_compiler="$rhs" + ;; + lax.nl.unix.J2.java.compiler*) + lax_nl_unix_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE.java.compiler*) + lax_nl_unix_JRE_java_compiler="$rhs" + ;; + lax.nl.unix.JDK.java.compiler*) + lax_nl_unix_JDK_java_compiler="$rhs" + ;; + lax.nl.unix.ALL.java.compiler*) + lax_nl_unix_ALL_java_compiler="$rhs" + ;; + # + lax.nl.JDK_J1.java.compiler*) + lax_nl_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.JDK_J2.java.compiler*) + lax_nl_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.JRE_J1.java.compiler*) + lax_nl_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.JRE_J2.java.compiler*) + lax_nl_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.J1.java.compiler*) + lax_nl_J1_java_compiler="$rhs" + ;; + lax.nl.J2.java.compiler*) + lax_nl_J2_java_compiler="$rhs" + ;; + lax.nl.JRE.java.compiler*) + lax_nl_JRE_java_compiler="$rhs" + ;; + lax.nl.JDK.java.compiler*) + lax_nl_JDK_java_compiler="$rhs" + ;; + lax.nl.ALL.java.compiler*) + lax_nl_ALL_java_compiler="$rhs" + ;; + # + lax.nl.$osName.JDK_J1.java.compiler*) + lax_nl_osname_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK_J2.java.compiler*) + lax_nl_osname_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J1.java.compiler*) + lax_nl_osname_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J2.java.compiler*) + lax_nl_osname_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.J1.java.compiler*) + lax_nl_osname_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.J2.java.compiler*) + lax_nl_osname_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE.java.compiler*) + lax_nl_osname_JRE_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK.java.compiler*) + lax_nl_osname_JDK_java_compiler="$rhs" + ;; + lax.nl.$osName.ALL.java.compiler*) + lax_nl_osname_ALL_java_compiler="$rhs" + ;; + # + # JIT overrides + ###################################################### + esac +done + +debugOut "LAX properties read.................. OK." + +if [ "${lax_class_path:-""}" = "" ]; then + debugOut "The classpath specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi +if [ "${lax_nl_java_launcher_main_class:-""}" = "" ]; then + debugOut "The main class specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi + +if [ ! -z "$INSTALLER_OVERRIDE_VMLIST" ]; then + lax_nl_valid_vm_list="$INSTALLER_OVERRIDE_VMLIST" +fi + +################################################### +# tlb 2001-09-18 +# Making sure the default UNIX UI mode is honored +# if overrideDefaultUIMode is not set, which means no commandline +# options were entered at the commandline regarding +# ui mode, we will look to the LAX file to set a ui +# mode. If there is no such setting in the LAX, +# which would be an error, we default to GUI. + + if [ "$overrideDefaultUIMode" = "false" ]; then + if [ -n "$lax_installer_unix_ui_default" -a "$ignoreMode" = "false" ]; then + if [ $lax_installer_unix_ui_default = SILENT ]; then + isSilent="true" + cmdLineArgs="$cmdLineArgs -m SILENT" + uimode="silent" + elif [ $lax_installer_unix_ui_default = CONSOLE ]; then + isConsole="true" + cmdLineArgs="$cmdLineArgs -m CONSOLE" + uimode="console" + elif [ $lax_installer_unix_ui_default = GUI ]; then + isSilent="false" + isConsole="false" + uimode="gui" + fi + fi + fi + +#################################################################################### +# +# if user.dir != . then relative paths on the classpath will be broken. they +# are expecting the pwd to be '.' (meaning the install dir). If user.dir is +# any other directory, it will break +lax_class_path=`echo "$lax_class_path" | sed 's^;^:^g'` +absInstallDir=`dirname "$absLauncherName"` +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + \/*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + *|*\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="${absInstallDir}/$1" + else + tmp_lcp="$tmp_lcp:${absInstallDir}/$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + +# resolve $ENV_CLASSPATH$ +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + *\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$CLASSPATH" + else + tmp_lcp="$tmp_lcp:$CLASSPATH" + fi + ;; + *) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + + + +#################################################################################### +# just incase this the lax was written in DOS, be sure to make all ';' path +# separators into :'s or it will fubar the commandline +# +case "$smclp" in + *\;*) + oldIFS=$IFS + IFS=";" + for smclp_piece in $smclp; do + tmp_smclp="$tmp_smclp:$smclp_piece" + done + IFS=$oldIFS + clp=$tmp_smclp + ;; +esac + +################################################################## +# Setting stdout and stderr redirection +# +if [ "$LAX_DEBUG" = "file" -o "$LAX_DEBUG" = "" ]; then + echo "lax.stderr.redirect=$lax_stderr_redirect" >> $envPropertiesFile + echo "lax.stdout.redirect=$lax_stdout_redirect" >> $envPropertiesFile +else + echo "lax.stderr.redirect=console" >> $envPropertiesFile + echo "lax.stdout.redirect=console" >> $envPropertiesFile + lax_stdout_redirect="console" + lax_stderr_redirect="console" +fi + +lax_version="16.5" + +validVMtypeList="$lax_nl_valid_vm_list" + +# MMA 04.26.2000 +# +# Added check for validVMtypeList not being set to any value, in +# which case we should just set the valid list to all. +# +if [ "$validVMtypeList" = "ALL" -o "$validVMtypeList" = "" ]; then + validVMtypeList=$anyVMlist +fi + + +############################################################# +# PICK A VALID VM +# + +debugOut "" +debugOut "========= Finding VM =================================================" +debugOut "Valid VM types.......................... $validVMtypeList" + +# +# If the vm gets a relative path, we must make it absolute to the Install +# Directory tm 3/3 +# +if [ ! -z "${lax_nl_current_vm:-""}" ]; then + # tlb 2001-09-18 updating the LAX to support CD-ROM installations + # the variable `expr "$lax_nl_current_vm" : '\/'` will evaluate to 1 if the path starts with / + isAbsPath=`expr "$lax_nl_current_vm" : '\/'` + if [ "$isAbsPath" = "0" ]; then + # When running a CD-ROM installer lax_dir is not set, lax_dir is set by the SEA. + # We set it to the working directory if it is not set + if [ -z "$lax_dir" ]; then + lax_dir=`pwd` + abs_lax_nl_current_vm="${lax_dir}"/"${lax_nl_current_vm}" + else + abs_lax_nl_current_vm="${lax_dir}""${lax_nl_current_vm}" + fi + else + abs_lax_nl_current_vm="$lax_nl_current_vm" + fi + debugOut "Absolute LAX_VM path.................... $abs_lax_nl_current_vm" +fi + +#-------------------------------------------------------- +# getJavaVersion() +# +# $1: path to java executeable +# +# returns: +# $javaVersion +# +getJavaVersion() +{ + javaExe=$1 + javaVersion=` "${javaExe}" -version 2>&1 | $AWK ' +$3 ~ /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { + gsub ("[^0-9._]", "", $3) + print $3 +} + ' ` + unset javaExe +} +# +#-------------------------------------------------------- + +################################################################################# +# inspectVM() +# +# param: a pathname to a potential VM file, maybe a link +# +# returns: $inspectedVMpath the real path to the VM file +# returns: $inspectedVMtype the type of the VM +# returns: $inspectedOldVMtype ? +# +inspectVM() +{ + resolveLink "$1" + + inspectee="$resolvedLink" + inspecteeDir=`dirname "$inspectee"` + inspecteeName=`basename "$inspectee"` + + inspectedVMpath="$inspectee" + + # + # is it JDK1.1 , JDK1.2 or JRE1.2? + # + if [ "$inspecteeName" = "oldjava" ]; then + inspectedOldVMtype="OLDJAVA" + inspectedVMtype="OLDJAVA" + elif [ "$inspecteeName" = "java" ]; then + + ############################################################ + # Do some OS-specific quirky stuff + # + # MacOS X / Rhapsody + # + quirk_classesZip="" + if [ "$osName" = "rhapsody" ]; then + if [ "`expr "$inspecteeDIR" : ".*JavaVM.framework$"`" != "0" ]; then + quirk_classesZip="$file/Classes/classes.jar" + inspecteeDir="$inspecteeDir/Home/bin" + fi + fi + # END OS quirky stuff + ############################################################ + + # + # is it JDK1.1? + # + if [ -r "$inspecteeDir/../lib/classes.zip" -o -r "$quirk_classesZip" ]; then + inspectedOldVMtype="JDK" + inspectedVMtype="JDK_J1" + inspectedVMVersion="1.1" + else + # JDK1.2 + # + # is the "java" JRE1.2 or JDK1.2? + # + if [ -r "$inspecteeDir/../lib/dt.jar" ] + then + inspectedOldVMtype="D12" + inspectedVMtype="JDK_J2" + else + inspectedOldVMtype="R12" + inspectedVMtype="JRE_J2" + fi + # + # find version + # + if [ -r "$inspecteeDir/pack200" ]; + then + inspectedVMVersion="1.5" + elif [ -r "$inspecteeDir/client" -o -r "$inspecteeDir/server" -o -r "$inspecteeDir/../jre/bin/server" -o -r "$inspecteeDir/../jre/bin/server" ]; + then + inspectedVMVersion="1.4" + elif [ -r "$inspecteeDir/hotspot" -o -r "$inspecteeDir/../jre/bin/hotspot" ]; + then + inspectedVMVersion="1.3" + elif [ -r "$inspecteeDir/classic" ]; + then + inspectedVMVersion="1.2" + fi + getJavaVersion $inspectee + if [ -n "$javaVersion" ]; then + inspectedVMVersion=$javaVersion + fi + unset javaVersion + fi + elif [ "$inspecteeName" = "jre" ]; then + inspectedOldVMtype="JRE" + inspectedVMtype="JRE_J1" + inspectedVMVersion="1.1" + else + inspectedOldVMtype="UNKNOWN" + inspectedVMtype="UNKNOWN" + fi +} +### +### end inspectVM() +### +######################################################################################## + + +# massage valid VM list. Expand inclusive types (i.e. JRE = JRE_J1 and JRE_J2 ) +tmpValidVMlist="" +for type in $validVMtypeList; do + case $type in + J1) tmpValidVMlist="$tmpValidVMlist JRE_J1 JDK_J1" ;; + J2) tmpValidVMlist="$tmpValidVMlist JRE_J2 JDK_J2" ;; + JRE) tmpValidVMlist="$tmpValidVMlist JRE_J2 R12 JRE_J1" ;; + JDK) tmpValidVMlist="$tmpValidVMlist JDK_J2 D12 JDK_J1" ;; + *) tmpValidVMlist="$tmpValidVMlist $type " ;; + esac +done +validVMtypeList="$tmpValidVMlist" +debugOut "Expanded Valid VM types................. $validVMtypeList" + +#-------------------------------------------------------------- +# strictCheck +# checks that the version passed in matches the 'strict vm +# selection pattern' +# +# $1: vm version +# $2: pattern to match +# $3: vm type list +# +# returns: +# +# exit status: +# 0 on match, 1 otherwise + +strictCheck() +{ + vmVersion=$1 + pattern=$2 + types=$3 + eval `$AWK ' +BEGIN { + if ( ARGV[1] ~ /^(JDK|JRE)_/ ) { + printf ("version=%s\ntype=%s\n", substr(ARGV[1],5), substr(ARGV[1], 1, 3) ); + } else { + printf ("version=%s\ntype=%s\n",ARGV[1],"none"); + } +} + ' $pattern` + + $AWK ' +function asNum(s) { + return s+0; +} +function versionToNumber(verStr) { + split(verStr, verVec, "[._+*]"); + return (asNum(verVec[1]) * 1000000) + \ + (asNum(verVec[2]) * 10000) + \ + (asNum(verVec[3]) * 100) + \ + asNum(verVec[4]); +} +function subVersionOf(version, pattern) { + pString = sprintf("%0.8d", pattern); + vString = sprintf("%0.8d", version); + sub( "0+$", "", pString ); + return vString ~ "^" + pString; +} +BEGIN { + version = versionToNumber( ARGV[1] ); + pattern = versionToNumber( ARGV[2] ); + op = substr(ARGV[2],length(ARGV[2]) ); + if (op=="+") success = version >= pattern; + else if (op=="*") success = subVersionOf(version, pattern); + else success = version == pattern; + if (success) exit(0); + exit(1); +} + ' "$vmVersion" "$version" + success=$? + if [ $success = 0 ]; then + case "none $types" in + *$type*) + debugOut "checking: \"$vmVersion\" against \"$pattern\": passed" + success=0 + ;; + *) + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong type)" + success=1 + ;; + esac + else + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong version)" + fi + return $success +} + +#--------------------------------------------------------------- +writetab() +{ + awk ' BEGIN { processingTag=0 } + $0 == "/:" { if (beginprocessingTag == 1) beginprocessingTag=0 ; next } + $0 == tag { beginprocessingTag=1; next } + { if (beginprocessingTag == 1) { print $0 >> tab; next } } + END { } ' tab="$2" tag="$3" "$1" +} + +pbclr() +{ + [ -z "$SILENT" ] && { + awk ' END { + printf("%c",13); + printf("%s"," "); + i=length(pbmesg); + for (k=1 ; k <= i; k++ ) printf("%c",32); + }' pbmesg="$pbmesg" /dev/null` + if [ $alive != "0" ] ; then + sleep 1 + ctr=`expr $ctr + 1` + else + return + fi + done + foo=`kill -9 $1 > /dev/null 2>&1` +} + +VerifyJVM() +{ + pbclr + pbmesg="Verifying JVM" + pb + + [ ! -f "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" ] + awk ' BEGIN { begin=0; i=1 } + $0 == "/:" { if (begin == 1) begin=0 ; next; } + $0 == tag { begin=1; next; } + { if (begin== 1) { item[i]=$0; i++; next; } } + END { for (k=1; k < i; k++) print item[k] >> tab; } ' tab="$IATEMP/sp" tag="JVM_PROPERTIES:" "$1" 2>/dev/null + if [ -f "$IATEMP/sp" ] ; then + + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo "$spl" | sed 's/\"//g'` + systemprops=`awk 'END { i=index(spl,"="); s=substr(spl,1,i-1); ss=sprintf("%s %s", sp, s); print ss; } ' spl="$spl" sp="$systemprops" /dev/null` + spcc=`expr $spcc + 1` + done + jvm_classpath= + cp_switch=`awk 'BEGIN{ FS=":"} $1 == tag { print $2; exit; }' tag=CLASSPATH $1` + cp_switch=`echo "$cp_switch" | sed 's/\"//g'` + jvm_classpath=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_CLASSPATH $1` + + debugOut "---" + + if [ -z "$jvm_classpath" ] ; then + debugOut "Verifying1... $2 $cp_switch $INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + else + jb=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_EXE $1 2>/dev/null` + jb=`echo "$jb" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + jb=`echo "$jb" | sed 's/\//\\\\\//g'` + JVM_HOME=`echo "$2" | sed "s/${jb}//"` + eval jvm_classpath="$jvm_classpath" + debugOut "Verifying2... $2 $cp_switch $jvm_classpath:$INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$jvm_classpath":"$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + JVM_HOME= + fi + + if [ -f "$IATEMP/jvmout" ] ; then + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo $spl | sed 's/\"//g'` + jvmfilevalue=`awk 'END { i=index(spl,"="); s=substr(spl,i+1); print s } ' spl="$spl" sp="$systemprops" /dev/null` + jvmoutc=`expr $spcc + 1` + jvmout=`sed -n -e "${jvmoutc}p" "$IATEMP/jvmout"` + + var_verifyJVM=`awk ' END { + exactMatch=1 + var_verifyJVM=2 + len = length(jvmfilevalue) + for (k = len ; k >len-3 ; k--) { + char=substr(jvmfilevalue, k, 1); + s = sprintf("%s%s", s,char); + } + if (length(s) == length("...")) { + if ( index(s, "...") == 1) { + exactMatch=0 + } + } + if (exactMatch == 1) { + if ( (length(jvmfilevalue) == length(jvmout)) && (index(jvmfilevalue, jvmout) == 1) ) var_verifyJVM=0 + } else { + jvmfilevalue_prefix=substr(jvmfilevalue, 1, len-3) + if (index(jvmout,jvmfilevalue_prefix) == 1 ) var_verifyJVM=0 + } + if (length(iaVV) > 0) { + printf("jvm system property specified in jvm file=%s\n",jvmfilevalue) >> ilog + printf("jvm system property from running Verify diagnostics on the JVM=%s\n",jvmout) >> ilog + if (var_verifyJVM == 0) { + if (exactMatch == 1) { + print "exact match of system property succeeded" >> ilog + } else { + print "non-exact match of system property succeeded" >> ilog + } + } else { + if (exactMatch == 1) { + print "exact match of system property failed" >> ilog + } + else { + print "non-exact match of system property failed" >> ilog + } + } + } + print var_verifyJVM + } ' jvmout="$jvmout" jvmfilevalue="$jvmfilevalue" iaVV="$iaVV" ilog="$LOG" /dev/null` + if [ "$var_verifyJVM" != "0" ] ; then + break + fi + spcc=`expr $spcc + 1` + done + else + debugOut "$IATEMP/jvmout does not exist. JVM Verification process may have failed." + fi + else + debugOut "system properties are not specified in "$1"" + fi + rm -f "$IATEMP/sp" + rm -f "$IATEMP/jvmout" +} + +preparePlatformHintFile() +{ + JVM_FILE=$1 + + while read fileLine + do + eachLine=`echo $fileLine` + if [ "$eachLine" = "PLATFORM_HINT:" ] ; then + flag=0 + fi + + if [ "$flag" = 0 ] ; then + echo $eachLine >> $PLATFORM_HINT_FILE + fi + + if [ "$eachLine" = "/:" ] ; then + flag=1 + fi + + done < $JVM_FILE + + #sed -i 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE + sed 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE + #sed -i 's/^\/://' $PLATFORM_HINT_FILE + sed 's/^\/://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE +} + +searchPlatformHints() +{ + debugOut "Checking the environment variables specifed in the JVM spec files to find the JVM..." + DOT_JVM_FILE=$1 + preparePlatformHintFile "$DOT_JVM_FILE" + + if [ ! -f /tmp/tmpActvmFile ] ; then + touch /tmp/tmpActvmFile + fi + + envVarValue="" + + while read fileLine + do + eachLine=`echo $fileLine` + if [ ! -z "$eachLine" ] ; then + envVarValue=`env | grep $eachLine | cut -d "=" -f2` + if [ -x $envVarValue/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + elif [ -x $envVarValue/jre/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/jre/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/jre/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + fi + fi + done < $PLATFORM_HINT_FILE + + actvm=`cat /tmp/tmpActvmFile` + + if [ -f /tmp/tmpActvmFile ] ; then + rm -rf /tmp/tmpActvmFile + fi + + if [ -f "$PLATFORM_HINT_FILE" ] ; then + rm -f $PLATFORM_HINT_FILE + fi +} + +searchPathHints() +{ + writetab "$1" "$IATEMP/pathHint" "PATH_HINT:" + installerPath= + + if [ -f "$IATEMP/pathHint" ] ; then + debugOut "using path hints in the JVM file $1" + pathHintc=`wc -l "$IATEMP/pathHint" | awk '{ print $1 }'` + pathHintcc=1 + + while [ $pathHintcc -le $pathHintc ] ; do + pbc=`expr $pbc + 1` + pb + PathHint=`sed -n -e "${pathHintcc}p;s/^[ ]*//;s/[ ]*$//" "$IATEMP/pathHint"` + pathSep=`echo $PathHint | grep "^/" | wc -l` + char='.' + count=0 + i=1 + #if [[ "$PathHint" =~ "../" ]]; then + case "$PathHint" in + *../*) + seaLocPath=$lax_user_dir/sea_loc + while IFS='|' read -r LINE + do + installerPath=$LINE + break + done < $seaLocPath + len=`expr length $PathHint` + pathLength=`expr $len + 1` + while [ $i -le $len ] + do + cchar=`expr substr $PathHint $i 1` + if [ $char = $cchar ] + then + count=`expr $count + 1 ` + fi + i=`expr $i + 1` + done + if [ $count -gt 0 ] + then + newcount=`expr $count / 2` + mat='../' + res=${PathHint//$mat} + j=0 + + while [ $newcount -gt $j ] + do + val="/*" + installerPath=${installerPath%$val} + newcount=`expr $newcount - 1` + done + fi + if [ $count -gt $j ] + then + PathHint="$installerPath/$res" + fi + ;; + esac + #fi + IS_RELATIVE=0 + + if [ -f "$1.fr" ] ; then + rm -f "$1.fr" + fi + + debugOut "Checking whether the passed pathhint is a directory" + if [ -d "$PathHint" ] ; then + for x in $PathHint ; + do + if [ -x "$x/$JVM_EXE" ] ; then + echo "$x/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + if [ -x "$x/jre/$JVM_EXE" ] ; then + echo "$x/jre/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + done + fi + + find $PathHint/$JVM_EXE > "$1.fr.findcommand" 2>/dev/null + if [ $? -eq 0 ] ; then + if [ -f "$1.fr.findcommand" ] ; then + frc=`wc -l "$1.fr.findcommand" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr.findcommand"` + grep "$frl" "$1.fr.shellxpansion" 1>/dev/null 2>&1 + if [ $? -ne 0 ] ; then + echo "$frl" >> "$1.fr.shellxpansion" + fi + + frcc=`expr $frcc + 1` + done + fi + else + var_searchAndverifyJvm=2 + fi + + if [ -f "$1.fr.findcommand" ] ; then + rm -f "$1.fr.findcommand" + fi + + if [ -f "$1.fr.shellxpansion" ] ; then + mv "$1.fr.shellxpansion" "$1.fr" + rm -f "$1.fr.shellxpansion" + fi + + if [ -f "$1.fr" ] ; then + frc=`wc -l "$1.fr" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr"` + jvm_exe=`echo $JVM_EXE | sed 's/\//\\\\\//g'` + + # $1 is the *.jvm file and $frl is the resolved jvm path from the path hint taken one at a time for e.g. + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/bin/java + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/jre/bin/java + + VerifyJVM "$1" "$frl" + + debugOut " === verify=$var_verifyJVM" + if [ "$var_verifyJVM" = "0" ] ; then + debugOut " &&& $1" + J=`echo "$frl" | sed "s/${jvm_exe}//"` + J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + echo "JVM_HOME:$J" >> "$1" + RESOLVED_JVM="$1" + actvm="$J"/bin/java + if [ $IS_RELATIVE -eq 1 ] ; then + IS_JVM_TEMP=1 + DESTINATION_DIR=$MEDIA_DIR + fi + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $frl using the JVM file $1." + rm -f "$1.fr" + return + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $frl using the JVM file $1." + fi + frcc=`expr $frcc + 1` + done + else + debugOut "find result is empty for the pathhint=$PathHint" + fi + pathHintcc=`expr $pathHintcc + 1` + done + fi +} + +#function to search and verify a valid JVM as specified in the .jvm file +searchAndVerifyJVM() +{ + debugOut "Searching for a JVM using $1 If found, will verify" + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi + + JVM_EXE=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$1" 2>/dev/null` + JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` + + if [ -z "$JVM_EXE" ] ; then + return + else + var_searchAndverifyJvm=0 + fi + + #Search using PLATFORM_HINT section in the spec file + searchPlatformHints $1 + + #Search using PATH_HINT section in the spec file only if PLATFORM_HINT search doesn't yield any result + if [ -z "$actvm" ] ; then + debugOut "PLATFORM_HINT did not find any suitable JVM. Searching for JVM using PATH_HINT section" + searchPathHints $1 + fi +} + +func_ourJVMSearch() +{ + jvmSpecBuildJvmSpecTotalNum=$1 + jvmSpecPropFilePath=$2 + idx=0 + while [ $idx -lt $jvmSpecBuildJvmSpecTotalNum ] ; do + jvmSpecFile_1=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.$idx=" | cut -d "=" -f2` + jvmSpecFile=$INSTALLER_DATA_DIR/jvmspecs/$jvmSpecFile_1 + dotJvmFile=`echo $jvmSpecFile | $TR -cd "[:print:]"` + + if [ -f "$dotJvmFile" ] ; then + debugOut "JVM Spec file found!!" + searchAndVerifyJVM "$dotJvmFile" + + if [ $var_searchAndverifyJvm -eq 0 ]; then + debugOut "jvm found and verification passed for $dotJvmFile." + break + fi + else + debugOut "JVM Spec file not found!!" + fi + + idx=`expr $idx + 1` + done + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi +} + +func_existingJVMSearch() +{ + debugOut "Searching without JVM specs" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 + + # 1st inspect the lax.nl.current.vm. As long as it is in the + # valid vm list it takes precedence over everything else. + laxVMisValid="false" + # is the lax current vm is specifies + if [ ! -z "$abs_lax_nl_current_vm" -a -x "$abs_lax_nl_current_vm" ]; then + # inspect it + inspectVM "$abs_lax_nl_current_vm" + eval laxVMtype="$inspectedVMtype" + eval laxOldVMType="$inspectedOldVMtype" + + # when VM is specified using the lax.nl.current.vm property or the + # LAX_VM command-line option, just accept that VM, no validation is required + laxVMisValid="true" + fi + # if the lax current vm is valid use it + if [ "$laxVMisValid" = "true" ]; then + # dont overwrite the lax.nl.current.vm if this one works just fine + actvm="$abs_lax_nl_current_vm" + actvmType="$laxVMtype" + debugOut "* Using VM.....(lax.nl.current.vm)...... $actvm" + else + # other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done + fi +} + +func_existingJVMSearch_WithVMNoSpecFile() +{ + debugOut "Searching without JVM specs for With VM; if not found, use bundled VM" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 +# other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done +} + +func_extract_vm_pack() +{ + RESOURCE_PATH="$ZIPLOC/$RESOURCE_DIR/resource" + JRE_TARZ="$RESOURCE_PATH/vm.tar.Z" + JRE_TAR="$RESOURCE_PATH/vm.tar" + + # save the old directory and switch into the temp directory + sePwd=`pwd` + cd "$ZIPLOC" + # make the platform directory and switch into it + mkdir "$RESOURCE_DIR" + cd "$RESOURCE_DIR" + # make the resource directory + mkdir resource + # switch back to the previous directory + cd "$sePwd" + + # Extract the .vm file + TAR_CMD="" + GZIP_CMD="" + UNZIP_CMD="" + if [ -x /usr/bin/tar ] ; then + TAR_CMD="/usr/bin/tar" + elif [ -x /bin/tar ] ; then + TAR_CMD="/bin/tar" + elif [ -x /usr/sbin/tar] ; then + TAR_CMD="/usr/sbin/tar" + else + TAR_CMD="tar" + fi + + if [ -x /bin/gzip ] ; then + GZIP_CMD="/bin/gzip" + elif [ -x /usr/bin/gzip ] ; then + GZIP_CMD="/usr/bin/gzip" + elif [ -x /usr/sbin/gzip ] ; then + GZIP_CMD="/usr/sbin/gzip" + else + GZIP_CMD="gzip" + fi + + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + + cd "$RESOURCE_PATH" + unzip_success=`$UNZIP_CMD $1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Unzipping of VM pack $1 failed" + fi + exit $R_unzip + else + debugOut "Unzip done" + fi + + gzip_sucess=`$GZIP_CMD -d $JRE_TARZ` + R_gzip=$? + if [ $R_gzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Gzip failed" + fi + exit $R_gzip + else + debugOut "Gzip done" + fi + + untar_success=`$TAR_CMD xf $JRE_TAR` + R_untar=$? + if [ $R_untar -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "TAR failed" + echo "The included VM could not be unarchived (TAR). Please try to download" + echo "the installer again and make sure that you download using 'binary'" + echo "mode. Please do not attempt to install this currently downloaded copy." + fi + exit 15 + else + debugOut "TAR done" + fi + + chmod -R 755 jre > /dev/null 2>&1 + + javaDir=$RESOURCE_PATH/jre/bin/java + javaDir_Special=$RESOURCE_PATH/jre/jre/bin/java + + if [ -f "$javaDir" ] ; then + actvm=$javaDir + elif [ -f "$javaDir_Special" ] ; then + actvm=$javaDir_Special + fi + + cd "$sePwd" + + if [ $R_unzip -eq 0 -a $R_gzip -eq 0 -a $R_untar -eq 0 ] ; then + debugOut "Extracted the JVM pack $1 successfully!!" + fi +} +func_download_vm_pack() +{ + R_wget= + if [ -z "$1" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download URL empty. Returning...." + fi + return + fi + + if [ -x /usr/bin/wget ] ; then + WGET_CMD="/usr/bin/wget" + elif [ -x /usr/sbin/wget ] ; then + WGET_CMD="/usr/sbin/wget" + elif [ -x /usr/local/bin/wget ] ; then + WGET_CMD="/usr/local/bin/wget" + else + WGET_CMD="wget" + fi + + wget_success= + if [ ! -z "$WGET_CMD" ] ; then + if [ ! -z "$uimode" -a "$uimode" = "silent" ] ; then + wget_success=`$WGET_CMD --tries=3 --output-file="$IATEMP/downloadLog" --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + else + wget_success=`$WGET_CMD --tries=3 --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + fi + R_wget=$? + if [ $R_wget -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download of VM pack failed" + fi + #exit $R_wget + else + debugOut "Download of VM pack succeded" + fi + fi + return $R_wget +} + +func_md5Verification() +{ + R_md5= + #find the location of md5sum tool on the UNIX machine + MD5SUM_CMD="" + if [ -x /usr/bin/md5sum ] ; then + MD5SUM_CMD="/usr/bin/md5sum" + elif [ -x /usr/sbin/md5sum ] ; then + MD5SUM_CMD="usr/sbin/md5sum" + elif [ -x /usr/local/bin/md5sum ] ; then + MD5SUM_CMD="/usr/local/bin/md5sum" + else + MD5SUM_CMD="md5sum" + fi + + jvmSpecBuildWithoutVMDownloadUrl=$1 + jvmSpecBuildWithoutVMMD5ChecksumValue=$2 + + debugOut "Verifying the downloaded JVM with MD5 checksum specified" + downloadedJVMURL=`basename $jvmSpecBuildWithoutVMDownloadUrl` + downloadedJVM=$INSTALLER_DATA_DIR/$downloadedJVMURL + + md5_var=`$MD5SUM_CMD $downloadedJVM` + + if [ ! -z "$md5_var" ] ;then + md5_checksum_value=`echo $md5_var | awk '{print $1}'` + + if [ ! -z "$md5_checksum_value" ] ; then + if [ "$md5_checksum_value" = "$jvmSpecBuildWithoutVMMD5ChecksumValue" ] ; then + R_md5=0 + else + R_md5=1 + fi + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Warning!! Error in executing md5sum command on the downloaded JVM." + echo "Check if md5sum tool is available on your machine or if you have the required permissions to execute md5sum command" + fi + R_md5=1 + fi + + + return $R_md5 +} + +# +#-------------------------------------------------------------- +# if a VM was forced on the command line use it otherwise search +if [ "$lax_vm" = "LAX_VM" ]; then + # Using VM passed in as argument + debugOut "JVM specified using LAX_VM" + inspectVM "$lax_vm_value" + actvmType="$inspectedVMtype" + actvm="$lax_vm_value" + debugOut "* Using VM:.........(LAX_VM)............ $actvm" +else + #try to unzip the installer.zip to extract *.jvm and jvmspecs.properties files to the tmp directory + if [ $IS_INSTALLER ] ; then + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + unzip_success=`$UNZIP_CMD -d $INSTALLER_DATA_DIR $INSTALL_ZIP jvmspecs* > /dev/null 2>&1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + debugOut "Unzipping of installer.zip failed." + debugOut "Using the Default JVM Search" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + else + if [ -f "$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties" ] ; then + debugOut "Found jvmspecs.properties" + jvmSpecPropFilePath=$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties + jvmSpecBuildWithoutVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm=" | cut -d "=" -f2` + jvmSpecBuildOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.option=" | cut -d "=" -f2` + jvmSpecBuildWithVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm=" | cut -d "=" -f2` + jvmSpecBuildWithVMSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMNotFoundDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecTotalNum=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.total.num=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmDirectDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.direct.download.url=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.value=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.value=" | cut -d "=" -f2` + + if [ ! -z "$jvmSpecBuildOption" ] ; then + if [ $jvmSpecBuildOption = "withvm" ] ; then + if [ ! -z "$jvmSpecBuildWithVMSearchOption" ] ; then + case $jvmSpecBuildWithVMSearchOption in + 20) #20 = WITH_VM_SEARCH_FOR_VM_IF_NOT_FOUND_USE_BUNDLED + if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch_WithVMNoSpecFile "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + debugOut "JVM not found with or without spec file. Using bundled JVM" + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + fi + ;; + 21) #21 = WITH_VM_DONT_SEARCH_USE_BUNDLED + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + ;; + *) + DEFAULT=`getLocalizedString default` + printLocalizedString "$DEFAULT" "default" + ;; + esac + fi + elif [ $jvmSpecBuildOption = "withoutvm" ] ; then + debugOut "JVM Spec Build Option Specified Without VM" + if [ ! -z "$jvmSpecBuildWithoutVmSearchOption" ] ; then + case $jvmSpecBuildWithoutVmSearchOption in + 10) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + ;; + 11) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + func_download_vm_pack "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM1=`getLocalizedString downloadedVM1` + printLocalizedString "$DOWNLOADEDVM1" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + fi + + jreDownloadFile=`basename $jvmSpecBuildWithoutVMNotFoundDownloadUrl` + jreDownloadFileName=$INSTALLER_DATA_DIR/$jreDownloadFile + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC1=`getLocalizedString downloadLoc1` + printLocalizedString "$DOWNLOADLOC1" "Download location=$jreDownloadFileName" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" + R_md5Verification_1=$? + if [ $R_md5Verification_1 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + fi + ;; + 12) func_download_vm_pack "$jvmSpecBuildWithoutVmDirectDownloadUrl" #12 = WITHOUT_VM_DO_NOT_SEARCH_DOWNLOAD + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM2=`getLocalizedString downloadedVM2` + printLocalizedString "$DOWNLOADEDVM2" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVmDirectDownloadUrl" + fi + + jreDownloadFile_1=`basename $jvmSpecBuildWithoutVmDirectDownloadUrl` + jreDownloadFileName_1=$INSTALLER_DATA_DIR/$jreDownloadFile_1 + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC2=`getLocalizedString downloadLoc2` + printLocalizedString "$DOWNLOADLOC2" "Download location=$jreDownloadFileName_1" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVmDirectDownloadUrl" "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" + R_md5Verification_2=$? + if [ $R_md5Verification_2 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + ;; + *) + DEFCASE=`getLocalizedString defaultCase` + printLocalizedString "$DEFCASE" "default case" + ;; + esac + fi + fi + fi + else + debugOut "Could not detect JVM Search Policy. Exiting..." + exit; + fi + fi + else + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + #============================================================================================= +fi + +# If no VMs are found in path +if [ -z "$actvm" ] +then + echo "No Java virtual machine could be found from your PATH" + echo "environment variable. You must install a VM prior to" + echo "running this program." + + # Mikey [5/16/2000] -- If this was SEA'd then remove the temp directory + if [ "$IS_INSTALLER" = "true" ]; then + debugOut "Removing temporary installation directory: \"$lax_user_dir\"" + rm -rf "$lax_user_dir" + fi + + cd "$olddir" + exit +fi + +# write the current vm out to the environment properties +echo "lax.nl.current.vm=$actvm" >> $envPropertiesFile + +# set up a variable to esilty know if we are going to run 1.1 or 1.2 +# for setting up VM cmd line options later on +case "$actvmType" in + "JRE" | "JDK" | "JRE_J1" | "JDK_J1" ) + actvmVersion="1.1" + ;; + "R12" | "D12" | "JDK_J2" | "JRE_J2" | "OLDJAVA") + actvmVersion="1.2" + ;; + *) + actvmVersion="" + ;; +esac + +# +# end of finding VMs +########################################################################################## + +#################################################################################### +# Determining VM invocation options to use +# + +# +# Verification +# +if [ "$actvmVersion" = "1.1" ]; then + if [ "$verify" = "off" ]; then + options="$options -noverify" + else + if [ "$verify_mode" = "remote" ]; then + options="$options -verifyremote" + elif [ "$verify_mode" = "none" ]; then + options="$options -noverify" + elif [ "$verify_mode" = "all" ]; then + options="$options -verify" + fi + fi +fi + +verbo=${verbo:="none"} +if [ $verbo = "normal" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class" + fi +elif [ $verbo = "all" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class -verbose:gc" + fi +elif [ $verbo = "gc" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:gc" + fi +fi + +# +# Memory mgnt +# +gcxtnt=${gcxtnt:="none"} +if [ $gcxtnt = "min" ] +then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -noclassgc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xnoclassgc" + fi +fi + +gcthrd=${gcthrd:="none"} +if [ "$actvmVersion" = "1.1" ]; then + if [ $gcthrd = "off" ] + then + options="$options -noasyncgc" + fi +fi + + +nsmax=${nsmax:="none"} +if [ "$nsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ss$nsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xss$nsmax" + fi +fi + +jsmax=${jsmax:="none"} +if [ "$jsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -oss$jsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xoss$jsmax" + fi +fi + + +jhmax=${jhmax:="none"} +if [ "$jhmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -mx$jhmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xmx$jhmax" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Maximum Heap size to JVM options argument. + options="$options -Xmx$jhmax" + fi +fi + +jhinit=${jhinit:="none"} +if [ "$jhinit" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ms$jhinit" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xms$jhinit" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Initial Heap size to JVM options argument. + options="$options -Xms$jhinit" + fi +fi + +debug=${debug:-"off"} +if [ $debug != "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -debug" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xdebug" + fi +fi + +############################################################### +# JIT options +# Resetting java home and JIT compiler environment variables +# +jitOnOrOff=on; +# +# turn off according to VM type +# +if [ ! -z "$lax_nl_osname_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_osname_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_osname_J1_java_compiler +elif [ ! -z "$lax_nl_osname_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_osname_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_osname_JRE_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_osname_JDK_java_compiler +elif [ ! -z "$lax_nl_osname_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_ALL_java_compiler +# +elif [ ! -z "$lax_nl_unix_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_unix_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_unix_J1_java_compiler +elif [ ! -z "$lax_nl_unix_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_unix_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_unix_JRE_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_unix_JDK_java_compiler +elif [ ! -z "$lax_nl_unix_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_unix_ALL_java_compiler +# +elif [ ! -z "$lax_nl_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_J1_java_compiler +elif [ ! -z "$lax_nl_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_JRE_java_compiler +elif [ ! -z "$lax_nl_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_JDK_java_compiler +elif [ ! -z "$lax_nl_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_ALL_java_compiler +# +elif [ ! -z "$lax_nl_osname_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_java_compiler +elif [ ! -z "$lax_nl_java_compiler" ]; then + jitOnOrOff=$lax_nl_java_compiler +else + jitOnOrOff=on +fi + +# JIT is ON by default, so we only need to change its status +# the above else-if lists figures it should be OFF +if [ "$jitOnOrOff" = "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + case "$osName" in + *irix*) + jitinvoc="-nojit" + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + ;; + *hp-ux*|*hpux*) + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + jitinvoc="-nojit" + ;; + *solaris*|*sunos*) + jitinvoc="-Djava.compiler=" + ;; + *aix*) + JAVA_COMPILER=off + export JAVA_COMPILER + ;; + *freebsd*) + jitinvoc="-Djava.compiler=" + ;; + *linux*) + jitinvoc="-Djava.compiler=" + ;; + *rhapsody*|*macos*) + ;; + *compaq*|*dg*|*osf*) + jitinvoc="-nojit" + ;; + *) + debugOut "Unknown OS name (\"$osName\"). Cannot set JIT Options." + ;; + esac + elif [ "$actvmVersion" = "1.2" ]; then + jitinvoc="-Djava.compiler=NONE" + else + debugOut "Unknown VM version. Cannot set JIT Options." + fi +fi + +options="$jitinvoc $options" + +# set this variable to something so we're guaranteed a value +linux_LD_ASSUME_KERNEL_hack=0; + +# work around problem on RedHat Linux 7.1 IA-32 +# see Bug Id 4447270 at Sun JDC bug parade +if [ `cat /etc/redhat-release 2>/dev/null | grep "7\.1" | wc -l` = "1" ]; +then + if [ `uname -s` = "Linux" ]; + then + if [ `uname -m` != "ia64" ]; + then + case `uname -r` in + 2.[456]*) + linux_LD_ASSUME_KERNEL_hack=1 + ;; + esac + fi + fi +fi + +# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros +#if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then +# debugOut "checking for NPTL + JVM vulernability..." + #check libc to see if it was compiled with NPTL +# nptl="`strings /lib/libc.so.6 | grep -i nptl`" +# if [ "$nptl" ]; then +# debugOut "NPTL detected! checking for vulnerable JVM...."; + + # I have to set this before I check the JVM version, a-cuz + # the call will hang, if it -is- vulnerable! +# export LD_ASSUME_KERNEL=2.2.5 + +# $actvm -version > /dev/null 2> /dev/null +# if [ "$?" -eq "0" ]; then + +# eval `$actvm -version 2>&1 | $AWK ' +# BEGIN { +# vendor="Sun" +# } +# /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { +# gsub ("[\"]", "", $3) +# split ($3, ver, "[\._-]") +# printf "v_major=%s\nv_minor=%s\nv_patch=%s\n",ver[1],ver[2],ver[3] +# } +# /IBM/ { +# vendor="IBM" +# } +# END { +# printf "v_vendor=%s\n",vendor +# } +# ' ` + + # unset the LD_ASSUME_KERNEL in cause we don't need it +# unset LD_ASSUME_KERNEL + +# debugOut "major : ${v_major}" +# debugOut "minor : ${v_minor}" +# debugOut "patch : ${v_patch}" +# debugOut "vendor: ${v_vendor}" + + # check our rules for setting LD_ASSUME_KERNEL + # currently, we're only setting this for JVMS < 1.4 + # we can add more rules later, if we need to. +# if [ ${v_minor:-0} -lt 4 ]; then +# debugOut "Vulnerable JVM detected... implementing workaround" +# linux_LD_ASSUME_KERNEL_hack=1 +# else +# debugOut "Your JVM is OK! Congratulations!" +# fi +# else +# unset LD_ASSUME_KERNEL +# fi +# fi +#fi + +if [ $linux_LD_ASSUME_KERNEL_hack -eq 1 ]; then + LD_ASSUME_KERNEL=2.2.5 + export LD_ASSUME_KERNEL +fi + +################################################################################## +# LAUNCH VM + +# Passing in addtional stuff +options="$options $lax_nl_java_option_additional" + + +# Changing working directory +if [ ! "$lax_user_dir" = "" ] +then + if [ ! "$lax_user_dir" = "." ]; + then + cd "$lax_user_dir" + fi +else + cd "$olddir" +fi + +# Optional printout of all variable values for debugging purposes + +debugOut "" +debugOut "========= Virtual Machine Options ====================================" +debugOut "LAX properties incorporated............. OK." +debugOut "classpath............................... \"$lax_class_path\"" +debugOut "main class.............................. \"$lax_main_class\"" +debugOut ".lax file path.......................... \"$propfname\"" +debugOut "user directory.......................... \"$lax_user_dir\"" +debugOut "stdout to............................... \"$lax_stdout_redirect\"" +debugOut "sterr to................................ \"$lax_stderr_redirect\"" +debugOut "install directory....................... \"$lax_dir\"" +debugOut "JIT..................................... ${jittype:-"none"}" +debugOut "option (verify)......................... ${verify:-"none"}" +debugOut "option (verbosity)...................... ${verbo:-"none"}" +debugOut "option (garbage collection extent)...... ${gcxtnt:-"none"}" +debugOut "option (garbage collection thread)...... ${gcthrd:-"none"}" +debugOut "option (native stack max size).......... ${nsmax:-"none"}" +debugOut "option (java stack max size)............ ${jsmax:-"none"}" +debugOut "option (java heap max size)............. ${jhmax:-"none"}" +debugOut "option (java heap initial size)......... ${jhinit:-"none"}" +debugOut "option (lax.nl.java.option.additional).. ${lax_nl_java_option_additional:-"none"}" +resolveLink "$actvm" +actvm="$resolvedLink" + +actvmBinaryName=`basename "$actvm"` +# get dirname of binary +actvmHome=`dirname "$actvm"` +# is the dir the binary is in named "bin"? +if [ "`basename "$actvmHome"`" = "bin" ]; then + # if so then the dir above bin is the java home + JAVA_HOME=`dirname "$actvmHome"` +else + JAVA_HOME= +fi + +# Making $JAVA_HOME available to the application. +export JAVA_HOME + +# [RW] reset the locale that what we remember it to be (see use.sh line 22) +if [ "$IS_INSTALLER" = "true" ]; then + if [ "X$OLD_LANG" = X ] + then + # no locale was defined prior to running this program + unset LANG + else + # there was a locale: revert back to it + LANG="$OLD_LANG" + fi +fi + +########################################################################### +# tlb 2001-09-18 +# Moving the checking for the DISPLAY variable down here as there are +# options in the LAX that might override the need for checking the DISPLAY. +# Those options need loading before the check is performed. +# Also making sure we don't report an error when running on Mac OS X. + + +debugOut "" +debugOut "========= Display settings ===========================================" +# +# check the display +# +isRemoteDisplay="false" +if [ "$IS_INSTALLER" = "true" -a "$isConsole" = "false" -a "$isSilent" = "false" -a ! "$osName" = "darwin" ]; then + hostname=`hostname` + isRemoteDisplay="true" + for display in ${hostname}:0 ${hostname}:0.0 localhost:0 localhost:0.0 unix:0 unix:0.0 :0 :0.0 + do + if [ "$DISPLAY" = "$display" ]; then + isRemoteDisplay="false"; + fi + done +fi + +xDisp="local" +if [ "$isRemoteDisplay" = "true" ]; then + xDisp="remote" +fi +if [ -z "$DISPLAY" ]; then + xDisp="not set" +fi +debugOut "X display............................... $xDisp" + + +if [ -z "$DISPLAY" -a "$uimode" = "gui" ]; then + debugOut "WARNING: This shell's DISPLAY variable has not been set." + debugOut "This installer is configured to run in GUI and will probably" + debugOut "fail. Try running this installer in console or silent mode," + debugOut "or on another UNIX host which has the DISPLAY variable set," + debugOut "if the installer unexpectedly fails." +else + if [ "$isRemoteDisplay" = "true" -a "$uimode" = "gui" ]; then + debugOut "WARNING: The name of this host ($hostname) and the setting" + debugOut "of this shell's DISPLAY ($DISPLAY) variable do not match." + debugOut "If this launcher is being displayed to a Microsoft Windows desktop" + debugOut "through X Windows the Java Virtual Machine might abort. Try running" + debugOut "this installer locally on the target system or through X Windows to" + debugOut "another UNIX host if the installer unexpectedly fails." + fi +fi + +debugOut "UI mode................................. $uimode" + + +# COMMENT ME TO REMOVE OUTPUT FROM NORMAL INSTALLER EXECUTION +if [ "$IS_INSTALLER" = "true" -a "$uimode" != "silent" ]; then + echo "" + LAN_CON_MSG=`getLocalizedString launch` + printLocalizedString "$LAN_CON_MSG" "Launching installer..." + echo "" + [ -f "$CUSTOM" ] && rm -f "$CUSTOM" +fi + +# MMA - clear ENV to address a problem where the shell initialization +# file (.Xshrc) pointed to by ENV may overide the classpath we have just set, +# causing the app to fail. Drawback is that other environment variables set +# in the init file will not be available in the environment (they will be +# available as Java system properties, however). Comment out the two lines +# below to change this behavior. +ENV= +export ENV +# I split these up so they would be a bit clearer on the screen. + +#debugOut "" +debugOut "========= VM Command Line ============================================" +#debugOut "CLASSPATH=$lax_class_path" +#debugOut "\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs" +#debugOut "$command" +debugOut "options: $options" +# Here is where we actually run the app in Java: + +CLASSPATH="$lax_class_path:$CLASSPATH"; export CLASSPATH +debugOut "CLASSPATH:$CLASSPATH" + +if [ "`echo $actvm | grep 'jre$'`" ]; then + cpArg="-cp" +fi + +debugOut "" +unset POSIXLY_CORRECT +if [ $DO_NOT_FORK ] +then + debugOut "========= Executing JAVA =============================================" + # this is the original, it's still here for copy/paste purposes + #eval \"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs + + lax_class_path=\"$lax_class_path\" + if [ $cpArg ]; then + command="\"$actvm\" $options $cpArg \"$CLASSPATH\" $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + else + command="\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + fi + eval $command $cmdLineArgs +else + debugOut "========= Forking JAVA =============================================" + if [ $cpArg ]; then + exec "$actvm" $options $cpArg "$CLASSPATH" $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + else + DISTRO_NAME= + GUEST_OS_NAME= + if [ -f /etc/issue ] ; then + DISTRO_NAME=`cat /etc/issue` + fi + if [ -f /etc/centos-release ] ; then + DISTRO_NAME=`cat /etc/centos-release` + fi + if [ -f /etc/redhat-release ] ; then + DISTRO_NAME=`cat /etc/redhat-release` + fi + + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Ubuntu/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *not*found*|*install*bin* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/CentOS/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/SUSE/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Red Hat Enterprise Linux/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Fedora/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + + fi + else + if [ -f /etc/release ] ; then + DISTRO_NAME=`cat /etc/release` + fi + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Solaris/')" ] ; then + if [ -z "$(echo $DISTRO_NAME | awk '/SPARC/')" ] ; then + DO_NOT_FORK=1; + export DO_NOT_FORK + fi + JRE_SUCCESS=`exec "$actvm" 2>&1` + case "$JRE_SUCCESS" in + *cannot*execute*|*install*bin* ) + + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *Usage*) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + fi + + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + fi + + fi + + fi +fi +exitValue=$? +debugOut "========= JAVA Finished ==============================================" +debugOut "" + +# Change back to directory used priory to this script running. + +cd "$olddir" + +exit $exitValue diff --git a/.local/bin/IPMIView/IPMIView20.jar b/.local/bin/IPMIView/IPMIView20.jar new file mode 100755 index 0000000..76f5bf8 Binary files /dev/null and b/.local/bin/IPMIView/IPMIView20.jar differ diff --git a/.local/bin/IPMIView/IPMIView20.lax b/.local/bin/IPMIView/IPMIView20.lax new file mode 100755 index 0000000..57c0059 --- /dev/null +++ b/.local/bin/IPMIView/IPMIView20.lax @@ -0,0 +1,137 @@ +# LaunchAnywhere (tm) Executable Properties File - Flexera Software LLC + +# LAX.APPLICATION.NAME +# -------------------- +# the default name of this executable -- do not edit + +lax.application.name=IPMIView20 + + +# LAX.CLASS.PATH +# -------------- +# the Java classpath necessary to run this application +# Can be separated by colons (Mac OS/Unix) or semicolons (Windows) + +lax.class.path=iKVM.jar:IPMIView20.jar:TrapView.jar:JViewerX9.jar:lax.jar + + +# LAX.COMMAND.LINE.ARGS +# --------------------- +# what will be passed to the main method -- be sure to quote arguments with spaces in them + +lax.command.line.args=$CMD_LINE_ARGUMENTS$ + + +# LAX.DIR +# ------- +# path to directory holding LaunchAnywhere's native launcher + +lax.dir=./ + + +# LAX.MAIN.CLASS +# -------------- +# the class that contains the main method for the application + +lax.main.class=IPMIView20.IPMIView20 + + +# LAX.MAIN.METHOD +# --------------- +# the method in the main class that will be invoked + +lax.main.method=main + + +# LAX.NL.CURRENT.VM +# ----------------- +# the VM to use for the next launch + +lax.nl.current.vm=jre/bin/java + + +# LAX.NL.JAVA.LAUNCHER.MAIN.CLASS +# ------------------------------- +# main class of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.class=com.zerog.lax.LAX + + +# LAX.NL.JAVA.LAUNCHER.MAIN.METHOD +# -------------------------------- +# main method of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.method=main + + +# LAX.NL.JAVA.OPTION.JAVA.HEAP.SIZE.MAX +# ------------------------------------- +# Defines the maximum heap size in bytes for the installer that will be invoked. + +lax.nl.java.option.java.heap.size.max=536870912 + + +# LAX.NL.VALID.VM.LIST +# -------------------- +# Defines which VMs are valid for your project. +# If the native launcher cannot find the current vm, +# it will search for ones in this list + +lax.nl.valid.vm.list=1.7+ + + +# LAX.NL.WIN32.MICROSOFTVM.MIN.VERSION +# ------------------------------------ +# The minimum version of Microsoft's VM this application will run against + +lax.nl.win32.microsoftvm.min.version=2750 + + +# LAX.ROOT.INSTALL.DIR +# -------------------- +# path to the installdir magic folder + +lax.root.install.dir=./ + + +# LAX.STDERR.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stderr.redirect= + + +# LAX.STDIN.REDIRECT +# ------------------ +# leave blank for no input, "console" to read from the console window, +# and any path to a file to read from that file + +lax.stdin.redirect= + + +# LAX.STDOUT.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stdout.redirect= + + +# LAX.USER.DIR +# ------------ +# left blank, this property will cause the native launcher to not +# alter the platform default behavior for setting the user dir. +# To override this you may set this property to a relative or absolute path. +# Relative paths are relative to the launcher. + +lax.user.dir=. + + +# LAX.VERSION +# ----------- +# version of LaunchAnywhere that created this properties file + +lax.version=17.0 + + diff --git a/.local/bin/IPMIView/IPMIView20_User_Guide.pdf b/.local/bin/IPMIView/IPMIView20_User_Guide.pdf new file mode 100755 index 0000000..9f91255 Binary files /dev/null and b/.local/bin/IPMIView/IPMIView20_User_Guide.pdf differ diff --git a/.local/bin/IPMIView/IPMIView_MicroBlade_User_Guide.pdf b/.local/bin/IPMIView/IPMIView_MicroBlade_User_Guide.pdf new file mode 100755 index 0000000..42da4f0 Binary files /dev/null and b/.local/bin/IPMIView/IPMIView_MicroBlade_User_Guide.pdf differ diff --git a/.local/bin/IPMIView/IPMIView_SuperBlade_User_Guide.pdf b/.local/bin/IPMIView/IPMIView_SuperBlade_User_Guide.pdf new file mode 100755 index 0000000..47895bd Binary files /dev/null and b/.local/bin/IPMIView/IPMIView_SuperBlade_User_Guide.pdf differ diff --git a/.local/bin/IPMIView/JViewerX9 b/.local/bin/IPMIView/JViewerX9 new file mode 100755 index 0000000..58f6af9 --- /dev/null +++ b/.local/bin/IPMIView/JViewerX9 @@ -0,0 +1,2828 @@ +#!/bin/sh +################################################################################################# +# +# LAXUNIX.SH - LaunchAnywhere (tm) version 17.0 +# +# (c) Copyright 2015 Flexera Software LLC. All rights reserved. +# +# To run this script you will need to have the following: +# 1) a Java VM installed (however, it will handle a lack of Java nicely). +# 2) a Java-style properties file having the same name as this script +# with the suffix .lax. If this script is appended to the +# self-extractor, it will look for the properties file in the +# directory specified by $seLaxPath; otherwise, it will look in +# the same directory that this script is in. +# 3) a Java program in the file "lax.jar". +# +# The .lax property file must contain at least the following properties: +# 1) lax.class.path classpath (do not include the environment variable $CLASSPATH ) +# 2) lax.nl.java.launcher.main.class (main class of LaunchAnywhere Executable) +# +################################################################################################# + +# +# Since USERENV is already set in the self-extractor, if its not set we know +# this is not an installer but a separate launcher. +# USERENV is just a flag passed from use.sh. +# +IS_INSTALLER='' +[ $USERENV ] && IS_INSTALLER=true + +# +# later on we might add things to the PATH, but we want to preserve the PATH +# order for which VMs are the first ones found. +# +VM_SEARCH_PATH="$PATH" + +case `uname -s` in +"SunOS") TR="/usr/xpg4/bin/tr" +;; +*) TR="/usr/bin/tr" +;; +esac + +#################################################################################### +# Set some constants +if [ "$1" = "LAX_VM" ]; then + lax_vm="LAX_VM" + lax_vm_value="$2" + shift 2 +else + lax_vm="" +fi +anyVMlist="JDK_J2 D12 JRE_J2 R12 JDK_J1 JRE_J1 JDK JRE ALL" + +#################################################################################### +#Specifying some global variables +IATEMP="/tmp" +DEBUG=0 +var_searchAndverifyJvm=2 #var_searchAndverifyJvm - jvm search&verify result; successful search&verify sets to zero; initializing to non-zero +var_verifyJVM=2 # verification of a JVM result. successful verification of searched JVM sets to zero; initializing to non-zero +pbc=1 +LOG=/tmp/ourlog +iaVV="true" +actvmType="" +actvm="" +PLATFORM_HINT_FILE=/tmp/tmpPlatformHintFile + + +#################################################################################### +# Format commandline args +# To overcome the problem of quoted args (with internal spaces) to the launcher +# is that they get "unquoted" or separated into discreet args when they are put +# on the cmdline for the application. This following block makes sure the stay intact +overrideDefaultUIMode="false" +ignoreMode="false"; +uimode="not set" +hasSeenI="false" +tmpArgs="" +origArgs=$@ +for arg in "$@" +do + if [ "$arg" != "" ]; then + tmpArgs="$tmpArgs \"$arg\"" + if [ "$arg" = "-i" -o "$arg" = "-I" ]; then + hasSeenI="true" + elif [ "$hasSeenI" = "true" ]; then + lowerArg=`echo $arg | $TR "[:upper:]" "[:lower:]"` + if [ "$lowerArg" = "awt" ]; then + uimode="awt" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "swing" ]; then + uimode="swing" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "gui" ]; then + uimode="gui" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "console" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "text" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "silent" ]; then + uimode="silent" + overrideDefaultUIMode="true" + else + ignoreMode="true" + fi + fi + fi +done + +# JVM heap size option are no longer required, hence removing it from the command line arguments. +# *NOTE* :: This part can be done in the above code but still doing the same again. +tmpArgs="" +jvmOptPresent="false" +for arg in "$@" +do + if [ "$arg" != "-jvmxms" ] && [ "$arg" != "-jvmxmx" ] && [ "$jvmOptPresent" = "false" ]; then + tmpArgs="$tmpArgs \"$arg\"" + else + if [ "$jvmOptPresent" = "false" ]; then + jvmOptPresent="true" + else + jvmOptPresent="false" + fi + fi +done + +cmdLineArgs="$tmpArgs" +thisScript="$0" +# make sure thisScript is an abs path +case $thisScript in + /*) + ;; + *) + thisScript="`pwd`/$thisScript" + ;; +esac + +#################################################################################### +# +# WHere does the LAX_DEBUG output go? +# + +if [ "$LAX_DEBUG" = "file" ]; then + jx_log="`pwd`/jx.log" + rm -f "$jx_log" + touch "$jx_log" + if [ "$?" -gt "0" ]; then + jx_log_ok="false" + echo "Could not create $jx_log. Sending debug output to console." + else + jx_log_ok="true" + fi +fi + +debugOut() +{ + case "$LAX_DEBUG" in + "file" ) + if [ "$jx_log_ok" = "true" ]; then + echo "$1" >> "$jx_log" + else + echo "$1" + fi + ;; + "" ) + echo "$1" >> /dev/null + ;; + * ) + echo "$1" + ;; + esac +} + +#################################################################################### +# +# UNIX ENVIRONMENT configuration +# +debugOut "" +debugOut "========= Analyzing UNIX Environment =================================" + + +# Get os type , note that it is LOWER-CASED. Used here and later on +osName=`uname -s 2> /dev/null | $TR "[:upper:]" "[:lower:]" 2> /dev/null` +debugOut "Setting UNIX ($osName) flavor specifics." +vmScript=".java_wrapper" +case "$osName" in + *irix*) + cpuName="unknown" + ;; + *hp-ux*|*hpux*) + cpuName=`uname -m 2> /dev/null` + ;; + *solaris*|*sunos*) + cpuName=`uname -p 2> /dev/null` + THREADS_FLAG=""; export THREADS_FLAG + PATH=/usr/bin:$PATH; export PATH + ;; + *aix*) + cpuName="unknown" + ;; + *freebsd*) + cpuName=`uname -p 2> /dev/null` + ;; + *linux*) + cpuName=`uname -m 2> /dev/null` + ;; + # tlb 2001-09-18 updating to support Darwin + *rhapsody*|*darwin*) + cpuName=`uname -p 2> /dev/null` + vmScript=".java_command" + ;; + *compaq*|*dg*|*osf*) + cpuName="unknown" + ;; + *) + cpuName="unknown" + ;; +esac + + +if [ -x /bin/ls ]; then + lsCMD="/bin/ls" +elif [ -x /usr/bin/ls ]; then + lsCMD="/usr/bin/ls" +else + lsCMD="ls" +fi + +debugOut "Importing UNIX environment into LAX properties." + +#################################################################################### +# +# CREATE ENV.PROPERTIES and figure out if this is being exec'd from an installer +# +# We need POSIX awk. On some systems it's called awk, on others +# nawk. It's most frequently called nawk, so start with that. +# +debugOut "Checking for POSIX awk." + +AWK=nawk +( $AWK '{}' ) < /dev/null 2>&0 || AWK=awk + +if [ -z "$IATEMPDIR" ]; then + TMPDIR=/tmp +else + TMPDIR=$IATEMPDIR +fi + + +if [ -z "$envPropertiesFile" ] +then + if [ -d $TMPDIR ] + then + envPropertiesFile=$TMPDIR/env.properties.$$ + else + envPropertiesFile="$HOME/env.properties.$$" + fi +fi + +# +# Convert environment variables to LAX properties. The variables +# are also named with alternate case (all upper, all lower). +# +# E.g. +# export My_Env_Var="abc +# def" +# +# is converted to: +# lax.nl.env.exact_case.My_Env_Var=abc def +# lax.nl.env.MY_ENV_VAR=abc def +# lax.nl.env.my_env_var=abc def +# +# The second gsub() is used to escape backslashes so that when the properties +# file is read by the java.util.Properties object, there is not a problem +# with incorrectly interpreted escaped unicode. +# +# This code segment is written in POSIX awk for performance reasons. +# + +$AWK -v LAX_PREFIX=lax.nl.env. ' +END { + for (var in ENVIRON) + { + # get variable value + value = ENVIRON[var] + + # strip newlines + gsub(/\n/, " ", value) + + # convert one backslash to two + gsub(/\\/, "\\\\", value) + + # print as LAX property + print LAX_PREFIX "exact_case." var "=" value + print LAX_PREFIX tolower(var) "=" value + print LAX_PREFIX toupper(var) "=" value + } +}' < /dev/null > $envPropertiesFile + + + +#################################################################################### +# +# Tracing symbolic links to actual launcher location +# + +resolveLink() +{ + rl_linked="true" + rl_operand="$1" + rl_origDir="`dirname "$1"`" + + # bypass the whole thing if this isnt a link + rl_ls=`$lsCMD -l "$rl_operand"` + case "$rl_ls" in + *"->"*) + ;; + *) + resolvedLink="$rl_operand" + return + ;; + esac + + while [ "$rl_linked" = "true" ]; do + # if the operand is not of an abs path, get its abs path + case "$rl_operand" in + /*) + rl_origDir=`dirname "$rl_operand"` + ;; + \./*) + rl_origDir=`pwd` + rl_operand="$rl_origDir/$rl_operand" + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + # + # the prevPrev hack is here because .../java often points to .java_wrapper. + # at the end of the resolution rl_operand actually points to garbage + # signifying it is done resolving the link. So prev is actually .java_wrapper. + # but we want the one just before that, its the real vm starting poiint we want + # + rl_prevOperand="$rl_operand" + rl_ls=`$lsCMD -l "$rl_operand"` + # get the output ls into a list + set x $rl_ls + # get rid of x and file info from ls -l + shift 9 + + #is this a link? + case "$rl_ls" in + *"->"*) + rl_linked="true" + # is a link, shift past the "->" + rl_linker="" + while [ "$1" != "->" -a $# -gt 1 ]; do + rl_linker="$rl_linker $1" + shift + done + + if [ "$1" = "->" ]; then + shift + fi + ;; + *) + # not a link, the rest must be the targets name + rl_linked="false" + ;; + esac + # now grab what's left + rl_linkee="$*" + + # debugOut "Following link to LAX $rl_linker -> $rl_linkee" + + if [ "$rl_linked" = "true" -a "`basename "$rl_linkee"`" != "$vmScript" ]; then + # set to true incase the thing linked to is also a link and we can + # try again. The current think linked to now becomes the operand + rl_operand="$rl_linkee" + # if the linkee is not abs, make it abs relative to the linker + case "$rl_operand" in + /*) + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + else + # otherwise, this operand is not a link itself and we are done + rl_resolvedLink="$rl_prevOperand" + # however, do not resolve the last leg of a VMs linked scripts. this will + # disrupt their scripts. it is expecting a link to the .java* script + # let us believe it is not linked and continue on... + if [ "`basename "$rl_linkee"`" = "$vmScript" ]; then + rl_linked="false" + fi + fi + # make sure the path returned is absolute + case "$rl_operand" in + \.\/*) + rl_operand="`pwd`/$rl_operand" + ;; + esac + done + + # remove "/./" in paths, make it "/" + # i,e, "/a/b/./c" becomes "/a/b/c" + resolvedLink=`echo "$rl_resolvedLink" | sed 's,/\./,/,'` +} + +#################################################################################### +# +# FINDING THE LAX FILE +# +# If this is an installer, use $seLaxPath +# +debugOut "" +debugOut "========= Analyzing LAX ==============================================" +olddir=`pwd` +resolveLink "$thisScript" +absLauncherName="$resolvedLink" +cd "`dirname "$absLauncherName"`" +if [ "$IS_INSTALLER" != "" ]; then + if [ ! -z "$seLaxPath" ]; then + propfname="$seLaxPath" + else + # legacy for old self-extractors + propfname="$templaxpath" + fi +else + propfname="$absLauncherName.lax" +fi + + +if [ ! -r "$propfname" ]; then + debugOut "The file "$propfname" could" + debugOut "not be found, and the program cannot be run without it." + debugOut "Try reinstalling the program." + exit; +else + debugOut "LAX found............................ OK." +fi + + +#################################################################################### +# +# READING THE LAX FILE +# +OFS="$IFS" +# run prop file through sed calls that do: +# 1. transform first '=' on a line into a control-O +# 2. transform all other ='s to control-F +# 3. transform control-Os back to = +# this is to differentiate the lhs=rhs processing from confusing the first = from other +# = that might be part of the value. Later on those =-tranformed-to-control-Fs are +# transformed back to = signs. +set x `cat "$propfname" | sed -e 's~^\([^\=]*\)\=\(.*\)~\1\\2~g' -e 's~=~~g' -e 's~~=~g' | grep '='`; shift + +while test $# -gt 0; do + # line separator + case "x${1}x" in + *"="* ) BIFS=" "; ;; + * ) BIFS="" ; ;; + esac + # word separator + case "x${2}x" in + *"="* ) AIFS=""; ;; + * ) AIFS=""; ;; + esac + INPUT="$INPUT$BIFS$1$AIFS" + shift +done + +while test "x$INPUT" != "x"; do + set x $INPUT; shift + X="$1" + shift + INPUT="$@" + IFS="=$AIFS" + set x $X; shift + IFS="$OFS" + + lhs="${1}" + shift + rhs="$@" + + # transform non lhs=rhs delimiting = signs back from ^F to = + case "$rhs" in + **) + rhs=`echo $rhs | sed 's~~=~g'` + ;; + esac + + # assing the values + case $lhs in + lax.class.path*) + lax_class_path="$rhs" + ;; + lax.main.class*) + lax_main_class="$rhs" + ;; + lax.nl.java.launcher.main.class*) + lax_nl_java_launcher_main_class="$rhs" + ;; + lax.nl.current.vm*) + lax_nl_current_vm="$rhs" + ;; + lax.user.dir*) + lax_user_dir="$rhs" + lax_user_dir=`echo $lax_user_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.resource.dir*) + lax_resource_dir="$rhs" + lax_resource_dir=`echo $lax_resource_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.stdout.redirect*) + lax_stdout_redirect="$rhs" + ;; + lax.stderr.redirect*) + lax_stderr_redirect="$rhs" + ;; + lax.dir*) + lax_dir="$rhs" + ;; + lax.always.ask*) + lax_always_ask="$rhs" + ;; + lax.application.name*) + lax_application_name="$rhs" + ;; + lax.nl.message.vm.not.loaded*) + lax_nl_message_vm_loaded="$rhs" + ;; + lax.nl.valid.vm.list*) + # transform an blank value to "ALL" + case "$rhs" in + "") rhs="ALL"; ;; + esac + lax_nl_valid_vm_list="$rhs" + ;; + lax.nl.java.option.check.source*) + verify="$rhs" + ;; + lax.nl.java.option.verify.mode*) + verify_mode="$rhs" + ;; + lax.nl.java.option.verbose*) + verbo="$rhs" + ;; + lax.nl.java.option.garbage.collection.extent*) + gcxtnt="$rhs" + ;; + lax.nl.java.option.garbage.collection.background.thread*) + gcthrd="$rhs" + ;; + lax.nl.java.option.native.stack.size.max*) + nsmax="$rhs" + ;; + lax.nl.java.option.java.stack.size.max*) + jsmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.max*) + jhmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.initial*) + jhinit="$rhs" + ;; + lax.nl.java.option.debugging*) + debug="$rhs" + ;; + lax.nl.$osName.$cpuName.java.compiler*) + lax_nl_osname_cpuname_java_compiler="$rhs" + ;; + lax.nl.$osName.java.compiler*) + lax_nl_osname_java_compiler="$rhs" + ;; + lax.nl.java.compiler*) + lax_nl_java_compiler="$rhs" + ;; + lax.nl.java.option.additional*) + lax_nl_java_option_additional="$rhs" + ;; + ###################################################### + # tlb 2001-09-18 + # Reading default UI mode for UNIX + lax.installer.unix.ui.default*) + lax_installer_unix_ui_default="$rhs" + ;; + ###################################################### + # JIT overrides + lax.nl.unix.JDK_J1.java.compiler*) + lax_nl_unix_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JDK_J2.java.compiler*) + lax_nl_unix_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J1.java.compiler*) + lax_nl_unix_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J2.java.compiler*) + lax_nl_unix_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.unix.J1.java.compiler*) + lax_nl_unix_J1_java_compiler="$rhs" + ;; + lax.nl.unix.J2.java.compiler*) + lax_nl_unix_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE.java.compiler*) + lax_nl_unix_JRE_java_compiler="$rhs" + ;; + lax.nl.unix.JDK.java.compiler*) + lax_nl_unix_JDK_java_compiler="$rhs" + ;; + lax.nl.unix.ALL.java.compiler*) + lax_nl_unix_ALL_java_compiler="$rhs" + ;; + # + lax.nl.JDK_J1.java.compiler*) + lax_nl_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.JDK_J2.java.compiler*) + lax_nl_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.JRE_J1.java.compiler*) + lax_nl_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.JRE_J2.java.compiler*) + lax_nl_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.J1.java.compiler*) + lax_nl_J1_java_compiler="$rhs" + ;; + lax.nl.J2.java.compiler*) + lax_nl_J2_java_compiler="$rhs" + ;; + lax.nl.JRE.java.compiler*) + lax_nl_JRE_java_compiler="$rhs" + ;; + lax.nl.JDK.java.compiler*) + lax_nl_JDK_java_compiler="$rhs" + ;; + lax.nl.ALL.java.compiler*) + lax_nl_ALL_java_compiler="$rhs" + ;; + # + lax.nl.$osName.JDK_J1.java.compiler*) + lax_nl_osname_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK_J2.java.compiler*) + lax_nl_osname_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J1.java.compiler*) + lax_nl_osname_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J2.java.compiler*) + lax_nl_osname_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.J1.java.compiler*) + lax_nl_osname_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.J2.java.compiler*) + lax_nl_osname_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE.java.compiler*) + lax_nl_osname_JRE_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK.java.compiler*) + lax_nl_osname_JDK_java_compiler="$rhs" + ;; + lax.nl.$osName.ALL.java.compiler*) + lax_nl_osname_ALL_java_compiler="$rhs" + ;; + # + # JIT overrides + ###################################################### + esac +done + +debugOut "LAX properties read.................. OK." + +if [ "${lax_class_path:-""}" = "" ]; then + debugOut "The classpath specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi +if [ "${lax_nl_java_launcher_main_class:-""}" = "" ]; then + debugOut "The main class specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi + +if [ ! -z "$INSTALLER_OVERRIDE_VMLIST" ]; then + lax_nl_valid_vm_list="$INSTALLER_OVERRIDE_VMLIST" +fi + +################################################### +# tlb 2001-09-18 +# Making sure the default UNIX UI mode is honored +# if overrideDefaultUIMode is not set, which means no commandline +# options were entered at the commandline regarding +# ui mode, we will look to the LAX file to set a ui +# mode. If there is no such setting in the LAX, +# which would be an error, we default to GUI. + + if [ "$overrideDefaultUIMode" = "false" ]; then + if [ -n "$lax_installer_unix_ui_default" -a "$ignoreMode" = "false" ]; then + if [ $lax_installer_unix_ui_default = SILENT ]; then + isSilent="true" + cmdLineArgs="$cmdLineArgs -m SILENT" + uimode="silent" + elif [ $lax_installer_unix_ui_default = CONSOLE ]; then + isConsole="true" + cmdLineArgs="$cmdLineArgs -m CONSOLE" + uimode="console" + elif [ $lax_installer_unix_ui_default = GUI ]; then + isSilent="false" + isConsole="false" + uimode="gui" + fi + fi + fi + +#################################################################################### +# +# if user.dir != . then relative paths on the classpath will be broken. they +# are expecting the pwd to be '.' (meaning the install dir). If user.dir is +# any other directory, it will break +lax_class_path=`echo "$lax_class_path" | sed 's^;^:^g'` +absInstallDir=`dirname "$absLauncherName"` +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + \/*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + *|*\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="${absInstallDir}/$1" + else + tmp_lcp="$tmp_lcp:${absInstallDir}/$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + +# resolve $ENV_CLASSPATH$ +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + *\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$CLASSPATH" + else + tmp_lcp="$tmp_lcp:$CLASSPATH" + fi + ;; + *) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + + + +#################################################################################### +# just incase this the lax was written in DOS, be sure to make all ';' path +# separators into :'s or it will fubar the commandline +# +case "$smclp" in + *\;*) + oldIFS=$IFS + IFS=";" + for smclp_piece in $smclp; do + tmp_smclp="$tmp_smclp:$smclp_piece" + done + IFS=$oldIFS + clp=$tmp_smclp + ;; +esac + +################################################################## +# Setting stdout and stderr redirection +# +if [ "$LAX_DEBUG" = "file" -o "$LAX_DEBUG" = "" ]; then + echo "lax.stderr.redirect=$lax_stderr_redirect" >> $envPropertiesFile + echo "lax.stdout.redirect=$lax_stdout_redirect" >> $envPropertiesFile +else + echo "lax.stderr.redirect=console" >> $envPropertiesFile + echo "lax.stdout.redirect=console" >> $envPropertiesFile + lax_stdout_redirect="console" + lax_stderr_redirect="console" +fi + +lax_version="16.5" + +validVMtypeList="$lax_nl_valid_vm_list" + +# MMA 04.26.2000 +# +# Added check for validVMtypeList not being set to any value, in +# which case we should just set the valid list to all. +# +if [ "$validVMtypeList" = "ALL" -o "$validVMtypeList" = "" ]; then + validVMtypeList=$anyVMlist +fi + + +############################################################# +# PICK A VALID VM +# + +debugOut "" +debugOut "========= Finding VM =================================================" +debugOut "Valid VM types.......................... $validVMtypeList" + +# +# If the vm gets a relative path, we must make it absolute to the Install +# Directory tm 3/3 +# +if [ ! -z "${lax_nl_current_vm:-""}" ]; then + # tlb 2001-09-18 updating the LAX to support CD-ROM installations + # the variable `expr "$lax_nl_current_vm" : '\/'` will evaluate to 1 if the path starts with / + isAbsPath=`expr "$lax_nl_current_vm" : '\/'` + if [ "$isAbsPath" = "0" ]; then + # When running a CD-ROM installer lax_dir is not set, lax_dir is set by the SEA. + # We set it to the working directory if it is not set + if [ -z "$lax_dir" ]; then + lax_dir=`pwd` + abs_lax_nl_current_vm="${lax_dir}"/"${lax_nl_current_vm}" + else + abs_lax_nl_current_vm="${lax_dir}""${lax_nl_current_vm}" + fi + else + abs_lax_nl_current_vm="$lax_nl_current_vm" + fi + debugOut "Absolute LAX_VM path.................... $abs_lax_nl_current_vm" +fi + +#-------------------------------------------------------- +# getJavaVersion() +# +# $1: path to java executeable +# +# returns: +# $javaVersion +# +getJavaVersion() +{ + javaExe=$1 + javaVersion=` "${javaExe}" -version 2>&1 | $AWK ' +$3 ~ /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { + gsub ("[^0-9._]", "", $3) + print $3 +} + ' ` + unset javaExe +} +# +#-------------------------------------------------------- + +################################################################################# +# inspectVM() +# +# param: a pathname to a potential VM file, maybe a link +# +# returns: $inspectedVMpath the real path to the VM file +# returns: $inspectedVMtype the type of the VM +# returns: $inspectedOldVMtype ? +# +inspectVM() +{ + resolveLink "$1" + + inspectee="$resolvedLink" + inspecteeDir=`dirname "$inspectee"` + inspecteeName=`basename "$inspectee"` + + inspectedVMpath="$inspectee" + + # + # is it JDK1.1 , JDK1.2 or JRE1.2? + # + if [ "$inspecteeName" = "oldjava" ]; then + inspectedOldVMtype="OLDJAVA" + inspectedVMtype="OLDJAVA" + elif [ "$inspecteeName" = "java" ]; then + + ############################################################ + # Do some OS-specific quirky stuff + # + # MacOS X / Rhapsody + # + quirk_classesZip="" + if [ "$osName" = "rhapsody" ]; then + if [ "`expr "$inspecteeDIR" : ".*JavaVM.framework$"`" != "0" ]; then + quirk_classesZip="$file/Classes/classes.jar" + inspecteeDir="$inspecteeDir/Home/bin" + fi + fi + # END OS quirky stuff + ############################################################ + + # + # is it JDK1.1? + # + if [ -r "$inspecteeDir/../lib/classes.zip" -o -r "$quirk_classesZip" ]; then + inspectedOldVMtype="JDK" + inspectedVMtype="JDK_J1" + inspectedVMVersion="1.1" + else + # JDK1.2 + # + # is the "java" JRE1.2 or JDK1.2? + # + if [ -r "$inspecteeDir/../lib/dt.jar" ] + then + inspectedOldVMtype="D12" + inspectedVMtype="JDK_J2" + else + inspectedOldVMtype="R12" + inspectedVMtype="JRE_J2" + fi + # + # find version + # + if [ -r "$inspecteeDir/pack200" ]; + then + inspectedVMVersion="1.5" + elif [ -r "$inspecteeDir/client" -o -r "$inspecteeDir/server" -o -r "$inspecteeDir/../jre/bin/server" -o -r "$inspecteeDir/../jre/bin/server" ]; + then + inspectedVMVersion="1.4" + elif [ -r "$inspecteeDir/hotspot" -o -r "$inspecteeDir/../jre/bin/hotspot" ]; + then + inspectedVMVersion="1.3" + elif [ -r "$inspecteeDir/classic" ]; + then + inspectedVMVersion="1.2" + fi + getJavaVersion $inspectee + if [ -n "$javaVersion" ]; then + inspectedVMVersion=$javaVersion + fi + unset javaVersion + fi + elif [ "$inspecteeName" = "jre" ]; then + inspectedOldVMtype="JRE" + inspectedVMtype="JRE_J1" + inspectedVMVersion="1.1" + else + inspectedOldVMtype="UNKNOWN" + inspectedVMtype="UNKNOWN" + fi +} +### +### end inspectVM() +### +######################################################################################## + + +# massage valid VM list. Expand inclusive types (i.e. JRE = JRE_J1 and JRE_J2 ) +tmpValidVMlist="" +for type in $validVMtypeList; do + case $type in + J1) tmpValidVMlist="$tmpValidVMlist JRE_J1 JDK_J1" ;; + J2) tmpValidVMlist="$tmpValidVMlist JRE_J2 JDK_J2" ;; + JRE) tmpValidVMlist="$tmpValidVMlist JRE_J2 R12 JRE_J1" ;; + JDK) tmpValidVMlist="$tmpValidVMlist JDK_J2 D12 JDK_J1" ;; + *) tmpValidVMlist="$tmpValidVMlist $type " ;; + esac +done +validVMtypeList="$tmpValidVMlist" +debugOut "Expanded Valid VM types................. $validVMtypeList" + +#-------------------------------------------------------------- +# strictCheck +# checks that the version passed in matches the 'strict vm +# selection pattern' +# +# $1: vm version +# $2: pattern to match +# $3: vm type list +# +# returns: +# +# exit status: +# 0 on match, 1 otherwise + +strictCheck() +{ + vmVersion=$1 + pattern=$2 + types=$3 + eval `$AWK ' +BEGIN { + if ( ARGV[1] ~ /^(JDK|JRE)_/ ) { + printf ("version=%s\ntype=%s\n", substr(ARGV[1],5), substr(ARGV[1], 1, 3) ); + } else { + printf ("version=%s\ntype=%s\n",ARGV[1],"none"); + } +} + ' $pattern` + + $AWK ' +function asNum(s) { + return s+0; +} +function versionToNumber(verStr) { + split(verStr, verVec, "[._+*]"); + return (asNum(verVec[1]) * 1000000) + \ + (asNum(verVec[2]) * 10000) + \ + (asNum(verVec[3]) * 100) + \ + asNum(verVec[4]); +} +function subVersionOf(version, pattern) { + pString = sprintf("%0.8d", pattern); + vString = sprintf("%0.8d", version); + sub( "0+$", "", pString ); + return vString ~ "^" + pString; +} +BEGIN { + version = versionToNumber( ARGV[1] ); + pattern = versionToNumber( ARGV[2] ); + op = substr(ARGV[2],length(ARGV[2]) ); + if (op=="+") success = version >= pattern; + else if (op=="*") success = subVersionOf(version, pattern); + else success = version == pattern; + if (success) exit(0); + exit(1); +} + ' "$vmVersion" "$version" + success=$? + if [ $success = 0 ]; then + case "none $types" in + *$type*) + debugOut "checking: \"$vmVersion\" against \"$pattern\": passed" + success=0 + ;; + *) + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong type)" + success=1 + ;; + esac + else + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong version)" + fi + return $success +} + +#--------------------------------------------------------------- +writetab() +{ + awk ' BEGIN { processingTag=0 } + $0 == "/:" { if (beginprocessingTag == 1) beginprocessingTag=0 ; next } + $0 == tag { beginprocessingTag=1; next } + { if (beginprocessingTag == 1) { print $0 >> tab; next } } + END { } ' tab="$2" tag="$3" "$1" +} + +pbclr() +{ + [ -z "$SILENT" ] && { + awk ' END { + printf("%c",13); + printf("%s"," "); + i=length(pbmesg); + for (k=1 ; k <= i; k++ ) printf("%c",32); + }' pbmesg="$pbmesg" /dev/null` + if [ $alive != "0" ] ; then + sleep 1 + ctr=`expr $ctr + 1` + else + return + fi + done + foo=`kill -9 $1 > /dev/null 2>&1` +} + +VerifyJVM() +{ + pbclr + pbmesg="Verifying JVM" + pb + + [ ! -f "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" ] + awk ' BEGIN { begin=0; i=1 } + $0 == "/:" { if (begin == 1) begin=0 ; next; } + $0 == tag { begin=1; next; } + { if (begin== 1) { item[i]=$0; i++; next; } } + END { for (k=1; k < i; k++) print item[k] >> tab; } ' tab="$IATEMP/sp" tag="JVM_PROPERTIES:" "$1" 2>/dev/null + if [ -f "$IATEMP/sp" ] ; then + + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo "$spl" | sed 's/\"//g'` + systemprops=`awk 'END { i=index(spl,"="); s=substr(spl,1,i-1); ss=sprintf("%s %s", sp, s); print ss; } ' spl="$spl" sp="$systemprops" /dev/null` + spcc=`expr $spcc + 1` + done + jvm_classpath= + cp_switch=`awk 'BEGIN{ FS=":"} $1 == tag { print $2; exit; }' tag=CLASSPATH $1` + cp_switch=`echo "$cp_switch" | sed 's/\"//g'` + jvm_classpath=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_CLASSPATH $1` + + debugOut "---" + + if [ -z "$jvm_classpath" ] ; then + debugOut "Verifying1... $2 $cp_switch $INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + else + jb=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_EXE $1 2>/dev/null` + jb=`echo "$jb" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + jb=`echo "$jb" | sed 's/\//\\\\\//g'` + JVM_HOME=`echo "$2" | sed "s/${jb}//"` + eval jvm_classpath="$jvm_classpath" + debugOut "Verifying2... $2 $cp_switch $jvm_classpath:$INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$jvm_classpath":"$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + JVM_HOME= + fi + + if [ -f "$IATEMP/jvmout" ] ; then + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo $spl | sed 's/\"//g'` + jvmfilevalue=`awk 'END { i=index(spl,"="); s=substr(spl,i+1); print s } ' spl="$spl" sp="$systemprops" /dev/null` + jvmoutc=`expr $spcc + 1` + jvmout=`sed -n -e "${jvmoutc}p" "$IATEMP/jvmout"` + + var_verifyJVM=`awk ' END { + exactMatch=1 + var_verifyJVM=2 + len = length(jvmfilevalue) + for (k = len ; k >len-3 ; k--) { + char=substr(jvmfilevalue, k, 1); + s = sprintf("%s%s", s,char); + } + if (length(s) == length("...")) { + if ( index(s, "...") == 1) { + exactMatch=0 + } + } + if (exactMatch == 1) { + if ( (length(jvmfilevalue) == length(jvmout)) && (index(jvmfilevalue, jvmout) == 1) ) var_verifyJVM=0 + } else { + jvmfilevalue_prefix=substr(jvmfilevalue, 1, len-3) + if (index(jvmout,jvmfilevalue_prefix) == 1 ) var_verifyJVM=0 + } + if (length(iaVV) > 0) { + printf("jvm system property specified in jvm file=%s\n",jvmfilevalue) >> ilog + printf("jvm system property from running Verify diagnostics on the JVM=%s\n",jvmout) >> ilog + if (var_verifyJVM == 0) { + if (exactMatch == 1) { + print "exact match of system property succeeded" >> ilog + } else { + print "non-exact match of system property succeeded" >> ilog + } + } else { + if (exactMatch == 1) { + print "exact match of system property failed" >> ilog + } + else { + print "non-exact match of system property failed" >> ilog + } + } + } + print var_verifyJVM + } ' jvmout="$jvmout" jvmfilevalue="$jvmfilevalue" iaVV="$iaVV" ilog="$LOG" /dev/null` + if [ "$var_verifyJVM" != "0" ] ; then + break + fi + spcc=`expr $spcc + 1` + done + else + debugOut "$IATEMP/jvmout does not exist. JVM Verification process may have failed." + fi + else + debugOut "system properties are not specified in "$1"" + fi + rm -f "$IATEMP/sp" + rm -f "$IATEMP/jvmout" +} + +preparePlatformHintFile() +{ + JVM_FILE=$1 + + while read fileLine + do + eachLine=`echo $fileLine` + if [ "$eachLine" = "PLATFORM_HINT:" ] ; then + flag=0 + fi + + if [ "$flag" = 0 ] ; then + echo $eachLine >> $PLATFORM_HINT_FILE + fi + + if [ "$eachLine" = "/:" ] ; then + flag=1 + fi + + done < $JVM_FILE + + #sed -i 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE + sed 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE + #sed -i 's/^\/://' $PLATFORM_HINT_FILE + sed 's/^\/://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE +} + +searchPlatformHints() +{ + debugOut "Checking the environment variables specifed in the JVM spec files to find the JVM..." + DOT_JVM_FILE=$1 + preparePlatformHintFile "$DOT_JVM_FILE" + + if [ ! -f /tmp/tmpActvmFile ] ; then + touch /tmp/tmpActvmFile + fi + + envVarValue="" + + while read fileLine + do + eachLine=`echo $fileLine` + if [ ! -z "$eachLine" ] ; then + envVarValue=`env | grep $eachLine | cut -d "=" -f2` + if [ -x $envVarValue/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + elif [ -x $envVarValue/jre/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/jre/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/jre/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + fi + fi + done < $PLATFORM_HINT_FILE + + actvm=`cat /tmp/tmpActvmFile` + + if [ -f /tmp/tmpActvmFile ] ; then + rm -rf /tmp/tmpActvmFile + fi + + if [ -f "$PLATFORM_HINT_FILE" ] ; then + rm -f $PLATFORM_HINT_FILE + fi +} + +searchPathHints() +{ + writetab "$1" "$IATEMP/pathHint" "PATH_HINT:" + installerPath= + + if [ -f "$IATEMP/pathHint" ] ; then + debugOut "using path hints in the JVM file $1" + pathHintc=`wc -l "$IATEMP/pathHint" | awk '{ print $1 }'` + pathHintcc=1 + + while [ $pathHintcc -le $pathHintc ] ; do + pbc=`expr $pbc + 1` + pb + PathHint=`sed -n -e "${pathHintcc}p;s/^[ ]*//;s/[ ]*$//" "$IATEMP/pathHint"` + pathSep=`echo $PathHint | grep "^/" | wc -l` + char='.' + count=0 + i=1 + #if [[ "$PathHint" =~ "../" ]]; then + case "$PathHint" in + *../*) + seaLocPath=$lax_user_dir/sea_loc + while IFS='|' read -r LINE + do + installerPath=$LINE + break + done < $seaLocPath + len=`expr length $PathHint` + pathLength=`expr $len + 1` + while [ $i -le $len ] + do + cchar=`expr substr $PathHint $i 1` + if [ $char = $cchar ] + then + count=`expr $count + 1 ` + fi + i=`expr $i + 1` + done + if [ $count -gt 0 ] + then + newcount=`expr $count / 2` + mat='../' + res=${PathHint//$mat} + j=0 + + while [ $newcount -gt $j ] + do + val="/*" + installerPath=${installerPath%$val} + newcount=`expr $newcount - 1` + done + fi + if [ $count -gt $j ] + then + PathHint="$installerPath/$res" + fi + ;; + esac + #fi + IS_RELATIVE=0 + + if [ -f "$1.fr" ] ; then + rm -f "$1.fr" + fi + + debugOut "Checking whether the passed pathhint is a directory" + if [ -d "$PathHint" ] ; then + for x in $PathHint ; + do + if [ -x "$x/$JVM_EXE" ] ; then + echo "$x/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + if [ -x "$x/jre/$JVM_EXE" ] ; then + echo "$x/jre/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + done + fi + + find $PathHint/$JVM_EXE > "$1.fr.findcommand" 2>/dev/null + if [ $? -eq 0 ] ; then + if [ -f "$1.fr.findcommand" ] ; then + frc=`wc -l "$1.fr.findcommand" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr.findcommand"` + grep "$frl" "$1.fr.shellxpansion" 1>/dev/null 2>&1 + if [ $? -ne 0 ] ; then + echo "$frl" >> "$1.fr.shellxpansion" + fi + + frcc=`expr $frcc + 1` + done + fi + else + var_searchAndverifyJvm=2 + fi + + if [ -f "$1.fr.findcommand" ] ; then + rm -f "$1.fr.findcommand" + fi + + if [ -f "$1.fr.shellxpansion" ] ; then + mv "$1.fr.shellxpansion" "$1.fr" + rm -f "$1.fr.shellxpansion" + fi + + if [ -f "$1.fr" ] ; then + frc=`wc -l "$1.fr" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr"` + jvm_exe=`echo $JVM_EXE | sed 's/\//\\\\\//g'` + + # $1 is the *.jvm file and $frl is the resolved jvm path from the path hint taken one at a time for e.g. + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/bin/java + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/jre/bin/java + + VerifyJVM "$1" "$frl" + + debugOut " === verify=$var_verifyJVM" + if [ "$var_verifyJVM" = "0" ] ; then + debugOut " &&& $1" + J=`echo "$frl" | sed "s/${jvm_exe}//"` + J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + echo "JVM_HOME:$J" >> "$1" + RESOLVED_JVM="$1" + actvm="$J"/bin/java + if [ $IS_RELATIVE -eq 1 ] ; then + IS_JVM_TEMP=1 + DESTINATION_DIR=$MEDIA_DIR + fi + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $frl using the JVM file $1." + rm -f "$1.fr" + return + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $frl using the JVM file $1." + fi + frcc=`expr $frcc + 1` + done + else + debugOut "find result is empty for the pathhint=$PathHint" + fi + pathHintcc=`expr $pathHintcc + 1` + done + fi +} + +#function to search and verify a valid JVM as specified in the .jvm file +searchAndVerifyJVM() +{ + debugOut "Searching for a JVM using $1 If found, will verify" + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi + + JVM_EXE=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$1" 2>/dev/null` + JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` + + if [ -z "$JVM_EXE" ] ; then + return + else + var_searchAndverifyJvm=0 + fi + + #Search using PLATFORM_HINT section in the spec file + searchPlatformHints $1 + + #Search using PATH_HINT section in the spec file only if PLATFORM_HINT search doesn't yield any result + if [ -z "$actvm" ] ; then + debugOut "PLATFORM_HINT did not find any suitable JVM. Searching for JVM using PATH_HINT section" + searchPathHints $1 + fi +} + +func_ourJVMSearch() +{ + jvmSpecBuildJvmSpecTotalNum=$1 + jvmSpecPropFilePath=$2 + idx=0 + while [ $idx -lt $jvmSpecBuildJvmSpecTotalNum ] ; do + jvmSpecFile_1=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.$idx=" | cut -d "=" -f2` + jvmSpecFile=$INSTALLER_DATA_DIR/jvmspecs/$jvmSpecFile_1 + dotJvmFile=`echo $jvmSpecFile | $TR -cd "[:print:]"` + + if [ -f "$dotJvmFile" ] ; then + debugOut "JVM Spec file found!!" + searchAndVerifyJVM "$dotJvmFile" + + if [ $var_searchAndverifyJvm -eq 0 ]; then + debugOut "jvm found and verification passed for $dotJvmFile." + break + fi + else + debugOut "JVM Spec file not found!!" + fi + + idx=`expr $idx + 1` + done + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi +} + +func_existingJVMSearch() +{ + debugOut "Searching without JVM specs" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 + + # 1st inspect the lax.nl.current.vm. As long as it is in the + # valid vm list it takes precedence over everything else. + laxVMisValid="false" + # is the lax current vm is specifies + if [ ! -z "$abs_lax_nl_current_vm" -a -x "$abs_lax_nl_current_vm" ]; then + # inspect it + inspectVM "$abs_lax_nl_current_vm" + eval laxVMtype="$inspectedVMtype" + eval laxOldVMType="$inspectedOldVMtype" + + # when VM is specified using the lax.nl.current.vm property or the + # LAX_VM command-line option, just accept that VM, no validation is required + laxVMisValid="true" + fi + # if the lax current vm is valid use it + if [ "$laxVMisValid" = "true" ]; then + # dont overwrite the lax.nl.current.vm if this one works just fine + actvm="$abs_lax_nl_current_vm" + actvmType="$laxVMtype" + debugOut "* Using VM.....(lax.nl.current.vm)...... $actvm" + else + # other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done + fi +} + +func_existingJVMSearch_WithVMNoSpecFile() +{ + debugOut "Searching without JVM specs for With VM; if not found, use bundled VM" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 +# other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done +} + +func_extract_vm_pack() +{ + RESOURCE_PATH="$ZIPLOC/$RESOURCE_DIR/resource" + JRE_TARZ="$RESOURCE_PATH/vm.tar.Z" + JRE_TAR="$RESOURCE_PATH/vm.tar" + + # save the old directory and switch into the temp directory + sePwd=`pwd` + cd "$ZIPLOC" + # make the platform directory and switch into it + mkdir "$RESOURCE_DIR" + cd "$RESOURCE_DIR" + # make the resource directory + mkdir resource + # switch back to the previous directory + cd "$sePwd" + + # Extract the .vm file + TAR_CMD="" + GZIP_CMD="" + UNZIP_CMD="" + if [ -x /usr/bin/tar ] ; then + TAR_CMD="/usr/bin/tar" + elif [ -x /bin/tar ] ; then + TAR_CMD="/bin/tar" + elif [ -x /usr/sbin/tar] ; then + TAR_CMD="/usr/sbin/tar" + else + TAR_CMD="tar" + fi + + if [ -x /bin/gzip ] ; then + GZIP_CMD="/bin/gzip" + elif [ -x /usr/bin/gzip ] ; then + GZIP_CMD="/usr/bin/gzip" + elif [ -x /usr/sbin/gzip ] ; then + GZIP_CMD="/usr/sbin/gzip" + else + GZIP_CMD="gzip" + fi + + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + + cd "$RESOURCE_PATH" + unzip_success=`$UNZIP_CMD $1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Unzipping of VM pack $1 failed" + fi + exit $R_unzip + else + debugOut "Unzip done" + fi + + gzip_sucess=`$GZIP_CMD -d $JRE_TARZ` + R_gzip=$? + if [ $R_gzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Gzip failed" + fi + exit $R_gzip + else + debugOut "Gzip done" + fi + + untar_success=`$TAR_CMD xf $JRE_TAR` + R_untar=$? + if [ $R_untar -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "TAR failed" + echo "The included VM could not be unarchived (TAR). Please try to download" + echo "the installer again and make sure that you download using 'binary'" + echo "mode. Please do not attempt to install this currently downloaded copy." + fi + exit 15 + else + debugOut "TAR done" + fi + + chmod -R 755 jre > /dev/null 2>&1 + + javaDir=$RESOURCE_PATH/jre/bin/java + javaDir_Special=$RESOURCE_PATH/jre/jre/bin/java + + if [ -f "$javaDir" ] ; then + actvm=$javaDir + elif [ -f "$javaDir_Special" ] ; then + actvm=$javaDir_Special + fi + + cd "$sePwd" + + if [ $R_unzip -eq 0 -a $R_gzip -eq 0 -a $R_untar -eq 0 ] ; then + debugOut "Extracted the JVM pack $1 successfully!!" + fi +} +func_download_vm_pack() +{ + R_wget= + if [ -z "$1" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download URL empty. Returning...." + fi + return + fi + + if [ -x /usr/bin/wget ] ; then + WGET_CMD="/usr/bin/wget" + elif [ -x /usr/sbin/wget ] ; then + WGET_CMD="/usr/sbin/wget" + elif [ -x /usr/local/bin/wget ] ; then + WGET_CMD="/usr/local/bin/wget" + else + WGET_CMD="wget" + fi + + wget_success= + if [ ! -z "$WGET_CMD" ] ; then + if [ ! -z "$uimode" -a "$uimode" = "silent" ] ; then + wget_success=`$WGET_CMD --tries=3 --output-file="$IATEMP/downloadLog" --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + else + wget_success=`$WGET_CMD --tries=3 --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + fi + R_wget=$? + if [ $R_wget -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download of VM pack failed" + fi + #exit $R_wget + else + debugOut "Download of VM pack succeded" + fi + fi + return $R_wget +} + +func_md5Verification() +{ + R_md5= + #find the location of md5sum tool on the UNIX machine + MD5SUM_CMD="" + if [ -x /usr/bin/md5sum ] ; then + MD5SUM_CMD="/usr/bin/md5sum" + elif [ -x /usr/sbin/md5sum ] ; then + MD5SUM_CMD="usr/sbin/md5sum" + elif [ -x /usr/local/bin/md5sum ] ; then + MD5SUM_CMD="/usr/local/bin/md5sum" + else + MD5SUM_CMD="md5sum" + fi + + jvmSpecBuildWithoutVMDownloadUrl=$1 + jvmSpecBuildWithoutVMMD5ChecksumValue=$2 + + debugOut "Verifying the downloaded JVM with MD5 checksum specified" + downloadedJVMURL=`basename $jvmSpecBuildWithoutVMDownloadUrl` + downloadedJVM=$INSTALLER_DATA_DIR/$downloadedJVMURL + + md5_var=`$MD5SUM_CMD $downloadedJVM` + + if [ ! -z "$md5_var" ] ;then + md5_checksum_value=`echo $md5_var | awk '{print $1}'` + + if [ ! -z "$md5_checksum_value" ] ; then + if [ "$md5_checksum_value" = "$jvmSpecBuildWithoutVMMD5ChecksumValue" ] ; then + R_md5=0 + else + R_md5=1 + fi + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Warning!! Error in executing md5sum command on the downloaded JVM." + echo "Check if md5sum tool is available on your machine or if you have the required permissions to execute md5sum command" + fi + R_md5=1 + fi + + + return $R_md5 +} + +# +#-------------------------------------------------------------- +# if a VM was forced on the command line use it otherwise search +if [ "$lax_vm" = "LAX_VM" ]; then + # Using VM passed in as argument + debugOut "JVM specified using LAX_VM" + inspectVM "$lax_vm_value" + actvmType="$inspectedVMtype" + actvm="$lax_vm_value" + debugOut "* Using VM:.........(LAX_VM)............ $actvm" +else + #try to unzip the installer.zip to extract *.jvm and jvmspecs.properties files to the tmp directory + if [ $IS_INSTALLER ] ; then + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + unzip_success=`$UNZIP_CMD -d $INSTALLER_DATA_DIR $INSTALL_ZIP jvmspecs* > /dev/null 2>&1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + debugOut "Unzipping of installer.zip failed." + debugOut "Using the Default JVM Search" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + else + if [ -f "$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties" ] ; then + debugOut "Found jvmspecs.properties" + jvmSpecPropFilePath=$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties + jvmSpecBuildWithoutVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm=" | cut -d "=" -f2` + jvmSpecBuildOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.option=" | cut -d "=" -f2` + jvmSpecBuildWithVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm=" | cut -d "=" -f2` + jvmSpecBuildWithVMSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMNotFoundDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecTotalNum=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.total.num=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmDirectDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.direct.download.url=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.value=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.value=" | cut -d "=" -f2` + + if [ ! -z "$jvmSpecBuildOption" ] ; then + if [ $jvmSpecBuildOption = "withvm" ] ; then + if [ ! -z "$jvmSpecBuildWithVMSearchOption" ] ; then + case $jvmSpecBuildWithVMSearchOption in + 20) #20 = WITH_VM_SEARCH_FOR_VM_IF_NOT_FOUND_USE_BUNDLED + if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch_WithVMNoSpecFile "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + debugOut "JVM not found with or without spec file. Using bundled JVM" + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + fi + ;; + 21) #21 = WITH_VM_DONT_SEARCH_USE_BUNDLED + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + ;; + *) + DEFAULT=`getLocalizedString default` + printLocalizedString "$DEFAULT" "default" + ;; + esac + fi + elif [ $jvmSpecBuildOption = "withoutvm" ] ; then + debugOut "JVM Spec Build Option Specified Without VM" + if [ ! -z "$jvmSpecBuildWithoutVmSearchOption" ] ; then + case $jvmSpecBuildWithoutVmSearchOption in + 10) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + ;; + 11) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + func_download_vm_pack "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM1=`getLocalizedString downloadedVM1` + printLocalizedString "$DOWNLOADEDVM1" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + fi + + jreDownloadFile=`basename $jvmSpecBuildWithoutVMNotFoundDownloadUrl` + jreDownloadFileName=$INSTALLER_DATA_DIR/$jreDownloadFile + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC1=`getLocalizedString downloadLoc1` + printLocalizedString "$DOWNLOADLOC1" "Download location=$jreDownloadFileName" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" + R_md5Verification_1=$? + if [ $R_md5Verification_1 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + fi + ;; + 12) func_download_vm_pack "$jvmSpecBuildWithoutVmDirectDownloadUrl" #12 = WITHOUT_VM_DO_NOT_SEARCH_DOWNLOAD + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM2=`getLocalizedString downloadedVM2` + printLocalizedString "$DOWNLOADEDVM2" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVmDirectDownloadUrl" + fi + + jreDownloadFile_1=`basename $jvmSpecBuildWithoutVmDirectDownloadUrl` + jreDownloadFileName_1=$INSTALLER_DATA_DIR/$jreDownloadFile_1 + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC2=`getLocalizedString downloadLoc2` + printLocalizedString "$DOWNLOADLOC2" "Download location=$jreDownloadFileName_1" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVmDirectDownloadUrl" "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" + R_md5Verification_2=$? + if [ $R_md5Verification_2 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + ;; + *) + DEFCASE=`getLocalizedString defaultCase` + printLocalizedString "$DEFCASE" "default case" + ;; + esac + fi + fi + fi + else + debugOut "Could not detect JVM Search Policy. Exiting..." + exit; + fi + fi + else + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + #============================================================================================= +fi + +# If no VMs are found in path +if [ -z "$actvm" ] +then + echo "No Java virtual machine could be found from your PATH" + echo "environment variable. You must install a VM prior to" + echo "running this program." + + # Mikey [5/16/2000] -- If this was SEA'd then remove the temp directory + if [ "$IS_INSTALLER" = "true" ]; then + debugOut "Removing temporary installation directory: \"$lax_user_dir\"" + rm -rf "$lax_user_dir" + fi + + cd "$olddir" + exit +fi + +# write the current vm out to the environment properties +echo "lax.nl.current.vm=$actvm" >> $envPropertiesFile + +# set up a variable to esilty know if we are going to run 1.1 or 1.2 +# for setting up VM cmd line options later on +case "$actvmType" in + "JRE" | "JDK" | "JRE_J1" | "JDK_J1" ) + actvmVersion="1.1" + ;; + "R12" | "D12" | "JDK_J2" | "JRE_J2" | "OLDJAVA") + actvmVersion="1.2" + ;; + *) + actvmVersion="" + ;; +esac + +# +# end of finding VMs +########################################################################################## + +#################################################################################### +# Determining VM invocation options to use +# + +# +# Verification +# +if [ "$actvmVersion" = "1.1" ]; then + if [ "$verify" = "off" ]; then + options="$options -noverify" + else + if [ "$verify_mode" = "remote" ]; then + options="$options -verifyremote" + elif [ "$verify_mode" = "none" ]; then + options="$options -noverify" + elif [ "$verify_mode" = "all" ]; then + options="$options -verify" + fi + fi +fi + +verbo=${verbo:="none"} +if [ $verbo = "normal" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class" + fi +elif [ $verbo = "all" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class -verbose:gc" + fi +elif [ $verbo = "gc" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:gc" + fi +fi + +# +# Memory mgnt +# +gcxtnt=${gcxtnt:="none"} +if [ $gcxtnt = "min" ] +then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -noclassgc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xnoclassgc" + fi +fi + +gcthrd=${gcthrd:="none"} +if [ "$actvmVersion" = "1.1" ]; then + if [ $gcthrd = "off" ] + then + options="$options -noasyncgc" + fi +fi + + +nsmax=${nsmax:="none"} +if [ "$nsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ss$nsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xss$nsmax" + fi +fi + +jsmax=${jsmax:="none"} +if [ "$jsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -oss$jsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xoss$jsmax" + fi +fi + + +jhmax=${jhmax:="none"} +if [ "$jhmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -mx$jhmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xmx$jhmax" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Maximum Heap size to JVM options argument. + options="$options -Xmx$jhmax" + fi +fi + +jhinit=${jhinit:="none"} +if [ "$jhinit" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ms$jhinit" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xms$jhinit" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Initial Heap size to JVM options argument. + options="$options -Xms$jhinit" + fi +fi + +debug=${debug:-"off"} +if [ $debug != "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -debug" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xdebug" + fi +fi + +############################################################### +# JIT options +# Resetting java home and JIT compiler environment variables +# +jitOnOrOff=on; +# +# turn off according to VM type +# +if [ ! -z "$lax_nl_osname_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_osname_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_osname_J1_java_compiler +elif [ ! -z "$lax_nl_osname_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_osname_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_osname_JRE_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_osname_JDK_java_compiler +elif [ ! -z "$lax_nl_osname_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_ALL_java_compiler +# +elif [ ! -z "$lax_nl_unix_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_unix_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_unix_J1_java_compiler +elif [ ! -z "$lax_nl_unix_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_unix_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_unix_JRE_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_unix_JDK_java_compiler +elif [ ! -z "$lax_nl_unix_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_unix_ALL_java_compiler +# +elif [ ! -z "$lax_nl_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_J1_java_compiler +elif [ ! -z "$lax_nl_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_JRE_java_compiler +elif [ ! -z "$lax_nl_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_JDK_java_compiler +elif [ ! -z "$lax_nl_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_ALL_java_compiler +# +elif [ ! -z "$lax_nl_osname_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_java_compiler +elif [ ! -z "$lax_nl_java_compiler" ]; then + jitOnOrOff=$lax_nl_java_compiler +else + jitOnOrOff=on +fi + +# JIT is ON by default, so we only need to change its status +# the above else-if lists figures it should be OFF +if [ "$jitOnOrOff" = "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + case "$osName" in + *irix*) + jitinvoc="-nojit" + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + ;; + *hp-ux*|*hpux*) + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + jitinvoc="-nojit" + ;; + *solaris*|*sunos*) + jitinvoc="-Djava.compiler=" + ;; + *aix*) + JAVA_COMPILER=off + export JAVA_COMPILER + ;; + *freebsd*) + jitinvoc="-Djava.compiler=" + ;; + *linux*) + jitinvoc="-Djava.compiler=" + ;; + *rhapsody*|*macos*) + ;; + *compaq*|*dg*|*osf*) + jitinvoc="-nojit" + ;; + *) + debugOut "Unknown OS name (\"$osName\"). Cannot set JIT Options." + ;; + esac + elif [ "$actvmVersion" = "1.2" ]; then + jitinvoc="-Djava.compiler=NONE" + else + debugOut "Unknown VM version. Cannot set JIT Options." + fi +fi + +options="$jitinvoc $options" + +# set this variable to something so we're guaranteed a value +linux_LD_ASSUME_KERNEL_hack=0; + +# work around problem on RedHat Linux 7.1 IA-32 +# see Bug Id 4447270 at Sun JDC bug parade +if [ `cat /etc/redhat-release 2>/dev/null | grep "7\.1" | wc -l` = "1" ]; +then + if [ `uname -s` = "Linux" ]; + then + if [ `uname -m` != "ia64" ]; + then + case `uname -r` in + 2.[456]*) + linux_LD_ASSUME_KERNEL_hack=1 + ;; + esac + fi + fi +fi + +# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros +#if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then +# debugOut "checking for NPTL + JVM vulernability..." + #check libc to see if it was compiled with NPTL +# nptl="`strings /lib/libc.so.6 | grep -i nptl`" +# if [ "$nptl" ]; then +# debugOut "NPTL detected! checking for vulnerable JVM...."; + + # I have to set this before I check the JVM version, a-cuz + # the call will hang, if it -is- vulnerable! +# export LD_ASSUME_KERNEL=2.2.5 + +# $actvm -version > /dev/null 2> /dev/null +# if [ "$?" -eq "0" ]; then + +# eval `$actvm -version 2>&1 | $AWK ' +# BEGIN { +# vendor="Sun" +# } +# /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { +# gsub ("[\"]", "", $3) +# split ($3, ver, "[\._-]") +# printf "v_major=%s\nv_minor=%s\nv_patch=%s\n",ver[1],ver[2],ver[3] +# } +# /IBM/ { +# vendor="IBM" +# } +# END { +# printf "v_vendor=%s\n",vendor +# } +# ' ` + + # unset the LD_ASSUME_KERNEL in cause we don't need it +# unset LD_ASSUME_KERNEL + +# debugOut "major : ${v_major}" +# debugOut "minor : ${v_minor}" +# debugOut "patch : ${v_patch}" +# debugOut "vendor: ${v_vendor}" + + # check our rules for setting LD_ASSUME_KERNEL + # currently, we're only setting this for JVMS < 1.4 + # we can add more rules later, if we need to. +# if [ ${v_minor:-0} -lt 4 ]; then +# debugOut "Vulnerable JVM detected... implementing workaround" +# linux_LD_ASSUME_KERNEL_hack=1 +# else +# debugOut "Your JVM is OK! Congratulations!" +# fi +# else +# unset LD_ASSUME_KERNEL +# fi +# fi +#fi + +if [ $linux_LD_ASSUME_KERNEL_hack -eq 1 ]; then + LD_ASSUME_KERNEL=2.2.5 + export LD_ASSUME_KERNEL +fi + +################################################################################## +# LAUNCH VM + +# Passing in addtional stuff +options="$options $lax_nl_java_option_additional" + + +# Changing working directory +if [ ! "$lax_user_dir" = "" ] +then + if [ ! "$lax_user_dir" = "." ]; + then + cd "$lax_user_dir" + fi +else + cd "$olddir" +fi + +# Optional printout of all variable values for debugging purposes + +debugOut "" +debugOut "========= Virtual Machine Options ====================================" +debugOut "LAX properties incorporated............. OK." +debugOut "classpath............................... \"$lax_class_path\"" +debugOut "main class.............................. \"$lax_main_class\"" +debugOut ".lax file path.......................... \"$propfname\"" +debugOut "user directory.......................... \"$lax_user_dir\"" +debugOut "stdout to............................... \"$lax_stdout_redirect\"" +debugOut "sterr to................................ \"$lax_stderr_redirect\"" +debugOut "install directory....................... \"$lax_dir\"" +debugOut "JIT..................................... ${jittype:-"none"}" +debugOut "option (verify)......................... ${verify:-"none"}" +debugOut "option (verbosity)...................... ${verbo:-"none"}" +debugOut "option (garbage collection extent)...... ${gcxtnt:-"none"}" +debugOut "option (garbage collection thread)...... ${gcthrd:-"none"}" +debugOut "option (native stack max size).......... ${nsmax:-"none"}" +debugOut "option (java stack max size)............ ${jsmax:-"none"}" +debugOut "option (java heap max size)............. ${jhmax:-"none"}" +debugOut "option (java heap initial size)......... ${jhinit:-"none"}" +debugOut "option (lax.nl.java.option.additional).. ${lax_nl_java_option_additional:-"none"}" +resolveLink "$actvm" +actvm="$resolvedLink" + +actvmBinaryName=`basename "$actvm"` +# get dirname of binary +actvmHome=`dirname "$actvm"` +# is the dir the binary is in named "bin"? +if [ "`basename "$actvmHome"`" = "bin" ]; then + # if so then the dir above bin is the java home + JAVA_HOME=`dirname "$actvmHome"` +else + JAVA_HOME= +fi + +# Making $JAVA_HOME available to the application. +export JAVA_HOME + +# [RW] reset the locale that what we remember it to be (see use.sh line 22) +if [ "$IS_INSTALLER" = "true" ]; then + if [ "X$OLD_LANG" = X ] + then + # no locale was defined prior to running this program + unset LANG + else + # there was a locale: revert back to it + LANG="$OLD_LANG" + fi +fi + +########################################################################### +# tlb 2001-09-18 +# Moving the checking for the DISPLAY variable down here as there are +# options in the LAX that might override the need for checking the DISPLAY. +# Those options need loading before the check is performed. +# Also making sure we don't report an error when running on Mac OS X. + + +debugOut "" +debugOut "========= Display settings ===========================================" +# +# check the display +# +isRemoteDisplay="false" +if [ "$IS_INSTALLER" = "true" -a "$isConsole" = "false" -a "$isSilent" = "false" -a ! "$osName" = "darwin" ]; then + hostname=`hostname` + isRemoteDisplay="true" + for display in ${hostname}:0 ${hostname}:0.0 localhost:0 localhost:0.0 unix:0 unix:0.0 :0 :0.0 + do + if [ "$DISPLAY" = "$display" ]; then + isRemoteDisplay="false"; + fi + done +fi + +xDisp="local" +if [ "$isRemoteDisplay" = "true" ]; then + xDisp="remote" +fi +if [ -z "$DISPLAY" ]; then + xDisp="not set" +fi +debugOut "X display............................... $xDisp" + + +if [ -z "$DISPLAY" -a "$uimode" = "gui" ]; then + debugOut "WARNING: This shell's DISPLAY variable has not been set." + debugOut "This installer is configured to run in GUI and will probably" + debugOut "fail. Try running this installer in console or silent mode," + debugOut "or on another UNIX host which has the DISPLAY variable set," + debugOut "if the installer unexpectedly fails." +else + if [ "$isRemoteDisplay" = "true" -a "$uimode" = "gui" ]; then + debugOut "WARNING: The name of this host ($hostname) and the setting" + debugOut "of this shell's DISPLAY ($DISPLAY) variable do not match." + debugOut "If this launcher is being displayed to a Microsoft Windows desktop" + debugOut "through X Windows the Java Virtual Machine might abort. Try running" + debugOut "this installer locally on the target system or through X Windows to" + debugOut "another UNIX host if the installer unexpectedly fails." + fi +fi + +debugOut "UI mode................................. $uimode" + + +# COMMENT ME TO REMOVE OUTPUT FROM NORMAL INSTALLER EXECUTION +if [ "$IS_INSTALLER" = "true" -a "$uimode" != "silent" ]; then + echo "" + LAN_CON_MSG=`getLocalizedString launch` + printLocalizedString "$LAN_CON_MSG" "Launching installer..." + echo "" + [ -f "$CUSTOM" ] && rm -f "$CUSTOM" +fi + +# MMA - clear ENV to address a problem where the shell initialization +# file (.Xshrc) pointed to by ENV may overide the classpath we have just set, +# causing the app to fail. Drawback is that other environment variables set +# in the init file will not be available in the environment (they will be +# available as Java system properties, however). Comment out the two lines +# below to change this behavior. +ENV= +export ENV +# I split these up so they would be a bit clearer on the screen. + +#debugOut "" +debugOut "========= VM Command Line ============================================" +#debugOut "CLASSPATH=$lax_class_path" +#debugOut "\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs" +#debugOut "$command" +debugOut "options: $options" +# Here is where we actually run the app in Java: + +CLASSPATH="$lax_class_path:$CLASSPATH"; export CLASSPATH +debugOut "CLASSPATH:$CLASSPATH" + +if [ "`echo $actvm | grep 'jre$'`" ]; then + cpArg="-cp" +fi + +debugOut "" +unset POSIXLY_CORRECT +if [ $DO_NOT_FORK ] +then + debugOut "========= Executing JAVA =============================================" + # this is the original, it's still here for copy/paste purposes + #eval \"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs + + lax_class_path=\"$lax_class_path\" + if [ $cpArg ]; then + command="\"$actvm\" $options $cpArg \"$CLASSPATH\" $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + else + command="\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + fi + eval $command $cmdLineArgs +else + debugOut "========= Forking JAVA =============================================" + if [ $cpArg ]; then + exec "$actvm" $options $cpArg "$CLASSPATH" $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + else + DISTRO_NAME= + GUEST_OS_NAME= + if [ -f /etc/issue ] ; then + DISTRO_NAME=`cat /etc/issue` + fi + if [ -f /etc/centos-release ] ; then + DISTRO_NAME=`cat /etc/centos-release` + fi + if [ -f /etc/redhat-release ] ; then + DISTRO_NAME=`cat /etc/redhat-release` + fi + + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Ubuntu/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *not*found*|*install*bin* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/CentOS/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/SUSE/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Red Hat Enterprise Linux/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Fedora/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + + fi + else + if [ -f /etc/release ] ; then + DISTRO_NAME=`cat /etc/release` + fi + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Solaris/')" ] ; then + if [ -z "$(echo $DISTRO_NAME | awk '/SPARC/')" ] ; then + DO_NOT_FORK=1; + export DO_NOT_FORK + fi + JRE_SUCCESS=`exec "$actvm" 2>&1` + case "$JRE_SUCCESS" in + *cannot*execute*|*install*bin* ) + + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *Usage*) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + fi + + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + fi + + fi + + fi +fi +exitValue=$? +debugOut "========= JAVA Finished ==============================================" +debugOut "" + +# Change back to directory used priory to this script running. + +cd "$olddir" + +exit $exitValue diff --git a/.local/bin/IPMIView/JViewerX9.jar b/.local/bin/IPMIView/JViewerX9.jar new file mode 100755 index 0000000..c4e9c26 Binary files /dev/null and b/.local/bin/IPMIView/JViewerX9.jar differ diff --git a/.local/bin/IPMIView/JViewerX9.lax b/.local/bin/IPMIView/JViewerX9.lax new file mode 100755 index 0000000..350f6e8 --- /dev/null +++ b/.local/bin/IPMIView/JViewerX9.lax @@ -0,0 +1,137 @@ +# LaunchAnywhere (tm) Executable Properties File - Flexera Software LLC + +# LAX.APPLICATION.NAME +# -------------------- +# the default name of this executable -- do not edit + +lax.application.name=JViewerX9 + + +# LAX.CLASS.PATH +# -------------- +# the Java classpath necessary to run this application +# Can be separated by colons (Mac OS/Unix) or semicolons (Windows) + +lax.class.path=iKVM.jar:IPMIView20.jar:TrapView.jar:JViewerX9.jar:lax.jar + + +# LAX.COMMAND.LINE.ARGS +# --------------------- +# what will be passed to the main method -- be sure to quote arguments with spaces in them + +lax.command.line.args=$CMD_LINE_ARGUMENTS$ + + +# LAX.DIR +# ------- +# path to directory holding LaunchAnywhere's native launcher + +lax.dir=./ + + +# LAX.MAIN.CLASS +# -------------- +# the class that contains the main method for the application + +lax.main.class=supermicro.jviewer.JViewerX9 + + +# LAX.MAIN.METHOD +# --------------- +# the method in the main class that will be invoked + +lax.main.method=main + + +# LAX.NL.CURRENT.VM +# ----------------- +# the VM to use for the next launch + +lax.nl.current.vm=jre/bin/java + + +# LAX.NL.JAVA.LAUNCHER.MAIN.CLASS +# ------------------------------- +# main class of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.class=com.zerog.lax.LAX + + +# LAX.NL.JAVA.LAUNCHER.MAIN.METHOD +# -------------------------------- +# main method of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.method=main + + +# LAX.NL.JAVA.OPTION.JAVA.HEAP.SIZE.MAX +# ------------------------------------- +# Defines the maximum heap size in bytes for the installer that will be invoked. + +lax.nl.java.option.java.heap.size.max=536870912 + + +# LAX.NL.VALID.VM.LIST +# -------------------- +# Defines which VMs are valid for your project. +# If the native launcher cannot find the current vm, +# it will search for ones in this list + +lax.nl.valid.vm.list=1.7+ + + +# LAX.NL.WIN32.MICROSOFTVM.MIN.VERSION +# ------------------------------------ +# The minimum version of Microsoft's VM this application will run against + +lax.nl.win32.microsoftvm.min.version=2750 + + +# LAX.ROOT.INSTALL.DIR +# -------------------- +# path to the installdir magic folder + +lax.root.install.dir=./ + + +# LAX.STDERR.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stderr.redirect= + + +# LAX.STDIN.REDIRECT +# ------------------ +# leave blank for no input, "console" to read from the console window, +# and any path to a file to read from that file + +lax.stdin.redirect= + + +# LAX.STDOUT.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stdout.redirect= + + +# LAX.USER.DIR +# ------------ +# left blank, this property will cause the native launcher to not +# alter the platform default behavior for setting the user dir. +# To override this you may set this property to a relative or absolute path. +# Relative paths are relative to the launcher. + +lax.user.dir=. + + +# LAX.VERSION +# ----------- +# version of LaunchAnywhere that created this properties file + +lax.version=17.0 + + diff --git a/.local/bin/IPMIView/MicroBladeKVM.jar b/.local/bin/IPMIView/MicroBladeKVM.jar new file mode 100755 index 0000000..389a8e1 Binary files /dev/null and b/.local/bin/IPMIView/MicroBladeKVM.jar differ diff --git a/.local/bin/IPMIView/PMingLiU-02.ttf b/.local/bin/IPMIView/PMingLiU-02.ttf new file mode 100755 index 0000000..38a2bc5 Binary files /dev/null and b/.local/bin/IPMIView/PMingLiU-02.ttf differ diff --git a/.local/bin/IPMIView/ReleaseNotes.txt b/.local/bin/IPMIView/ReleaseNotes.txt new file mode 100755 index 0000000..dd2b599 --- /dev/null +++ b/.local/bin/IPMIView/ReleaseNotes.txt @@ -0,0 +1,617 @@ +------------------------------------------------------------------------------- +IPMIView release notes +Copyright(c) 2023 by Super Micro Computer, Inc. https://www.supermicro.com/ +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- + OS Compatibility list +------------------------------------------------------------------------------- +Red Hat Enterprise Linux (RHEL) 6.8 or later, +SUSE Linux Enterprise Server (SLES) 11 or later +Ubuntu Server 14.04 or later +Rocky Linux 8.8 and later +Windows 7 10 and 11 +Windows Server 2008 R2 SP 1, 2012 R2 or later + +------------------------------------------------------------------------------- + Blade Support list +------------------------------------------------------------------------------- +SuperBlade: +B10DRI, B10DRC, B9DR6, B9DRG, B9DRGX, +B9DRT, B9QR7, B8DT6, B8DTG, B8DTT, +B7DBE, B7DCL, BHDGT, BHDME, BHQG6, +BHQIE, BHQME, B11DPT, B10DRE, B11QPI, +B10KNM, B11DPE, B11SPE + +MicroBlade: +B1DRI, B1SA4F, B1SD2, B1SL1, B2SS2, B2SS1, B2SD2 + +------------------------------------------------------------------------------- +OpenJDK version +------------------------------------------------------------------------------- +openjdk version "11.0.19" 2023-04-18 LTS +OpenJDK Runtime Environment (Red_Hat-11.0.19+7-1) (build 11.0.19+7-LTS) + +------------------------------------------------------------------------------- +Stunnel version +------------------------------------------------------------------------------- +Windows: Stunnel 5.70 compiled with OpenSSL 3.0.9 30 May 2023 +Linux: Stunnel 5.69 compiled with OpenSSL 3.1.0 14 Mar 2023 + +------------------------------------------------------------------------------- +Version 2.21.1 build 230720 +------------------------------------------------------------------------------- +1. Fix Virtual media panel license issue +2. Support following GUID + B301MS (X12DPG-OA6) + 1501MS (X13SCW-F) + 2501MS (MBD-G1SMH) + D401MS (B4SA1) + F401MS (H13SRD-F) + E401MS (H13SSF) + 0501MS (X13SCH-F/-LN4F/-SYS) + 5501MS (X13DEG-OAD) + 6501MS (H13 AST2600 Delta Next) +3. Support new blade type B4SA1, B4SC1, B13DEE and B13SEG +4. Update IPMI SEL format +5. Fix system NIC incorrect sensor type in SEL list +6. Add warm reset function +7. Add IPMIView Software Update function +8. Fix user account edit panel displaying issue +9. Fix failed link status of dedicated 1G full duplex +10. Fix operator and user privilege cannot access Event log, BMC setting/Network and + Sensor/Text view panel correctly issue +11. Add file save dialog to Trap frame +12. Fix not display illegal IP tips if the NTP is disabled +13. Fix privilege issue in KVM panel +14. Update bundle java to OpenJDK 11.0.19+7-LTS +15. Fix incomplete PSU info of graphic sensor panel issue +16. Fix event log abnormal displaying issue +17. Upgrade bundle Stunnel version to 5.69 for Linux + Upgrade bundle Stunnel version to 5.70 for Windows +18. Fix trap receiver version typo +19. Add maximum FAN speed string to graphic sensor view + +------------------------------------------------------------------------------- +Version 2.21.0 build 221118 +------------------------------------------------------------------------------- +1. Add following information in the IPMIDevice page: + - Firmware Build Time + - Bios Version + - Bios Build Time + - CPLD version (BMC dependent) + - Redfish version (BMC dependent) + - BMC MAC Address +2. Add "date and time setting" in the BMC setting tab page. +3. Support new blade type B13SEE, B13DET. +4. Add SMC RAKP connection function and configuration. +5. Improve IPMIDevice page for better UI/UX. +6. Support follwoing GUID: + -1401MS (H13SST-G) + -2401MS (X13OEI) + -3401MS (X13DEG-QT-P) + -4401MS (B13SEE) + -A401MS (X12DGU) + -B401MS (MicroBlade CMM AST2600) +7. Fix SNMPv3 trap format parsing issue in X11 platform. +8. Update Virtual media panel to support ASPEED AST2400 and later BMC. +9. Fix sensor text view display wrong status label issue +10. Update bundle java to OpenJDK 11.0.14+9-LTS. + +------------------------------------------------------------------------------- +Version 2.20.0 build 220309 +------------------------------------------------------------------------------- +1. Support SNMPv3 trap in trap receiver +2. Support follwoing GUID + 1301MS (X12DGQ) + 4301MS (H12DSG) + 5301MS (HGIMEZZ) + 6301MS (X12STW) + 7301MS (MicroBladeCMM64MB) + 8301MS (X12DSC) + 9301MS (H12SSG) + A301MS (B3ST1) + C301MS (X13SSW) + D301MS (X13DEM) +3. Support new blade type B3ST1, B12DPE +4. Add account lockout setting panel in Users table. +5. Support html5 version of KVM +6. Improve Network configuration panel for better user-experience +7. Improve user account panel for better user-experience +8. Enhance backward compatibility for KVM +9. Fix compatibility issue of uninstaller on Windows Server 2019 +10. Fix FW version displaying issue on B2SC2 +11. Fix Firmware cannot update with IPv6 +12. Update bundle java to OpenJDK 11.0.13+8-LTS +13. Fix MEL displaying issue when license is not activated on X11 +14. Fix voltage sensor missing issue +15. Fix Cannot open supermicro web url through Supermicro icon on windows server 2019 issue + +------------------------------------------------------------------------------- +Version 2.19.1 build 210831 +------------------------------------------------------------------------------- +1. Support new blade type B3ST1, B12DPE +2. Support X12STW, X12DSC, H12SSG, B3ST1, X12DGQ and H12DSG GUID. +3. Enhance backward compatibility for KVM +4. Fix the compatibility issue of uninstaller on Windows Server 2019. +5. Support new BIOS preserve options on Tatlow platform + +------------------------------------------------------------------------------- +Version 2.19.0 build 210401 +------------------------------------------------------------------------------- +1. Pad leading zero to FW revision +2. Update bundle java to JDK11 +3. Add severity field in sel list command for X12 and above +4. Add liquid cooling and smart speed fan mode +5. Add vulnerability alert window when running iKVM in CentOS 6.x +6. Support BIOS update in X12 series +7. Support X12DGO, H12SSFF, and H12SSFR GUID +8. Support next boot option in IPMI device panel. +9. Support IPv6 settings in BMC setting panel. +10. Add a sensor readings text view in sensor panel +11. Add vulnerability alert window when running iKVM in CentOS 6.x +12. Elevate KVM privilege when being launched in Windows System +13. Support search function in Group Management/Event Log and System Management/Event Log. +14. Add MEL function to Group Management/Event Log +15. Support 'Severity' column to Group Management/Event Log/Health event on X12 series +16. Disable the unsupported LAN interface mode +17. Add scrollbar to CMM/Node status panel to display full information when apply the + larger scale level font. +18. Fix bootoption issue of X12 and replace "UEFI USB PXE" with "UEFI PXE". +19. Fix network setting GUI display abnormal issue after VLAN setting changed. +20. Fix IPv6 router has wrong reference issue +21. Fix IPv4 Static IP mode and IPv4 DNS are abnormal issue +22. Fix SNMP receiver cannot work on X12 series issue +23. Fix "Device reset failed" after BMC FW flashing issue + +------------------------------------------------------------------------------- +Version 2.18.0 build 201007 +------------------------------------------------------------------------------- +1. Support X12-AST2600-ROT, X12-AST2500 and H12Rot GUID +2. Add new FW update panel to support X12 and later model +3. Improve event log stability +4. Fix switch and fan panels' title index in node status page of MicroBlade +5. Update X12 devices icon +6. Add MicroBlade UID icon status monitoring for CMM module +7. Fix CMM slot number and FAN index in MicroBlade management page +8. Fix the temperature panel display abnormally in sensor page +9. Fix temperature and voltage panels' inactive components even if hide setting is enabled +10. Update KVM to support X12 + +------------------------------------------------------------------------------- +Version 2.17.0 build 200505 +------------------------------------------------------------------------------- +1. Support fully parsing maintenance event log +2. Rename "System Event Log" to "Health Event Log" in the Event Log tab +3. Improve the UX of SEL time setting in the Event Log tab +4. Add invalid date-time value pre-check when setting SEL time +5. Improve language description in drop-down list of Language +6. Update backward compatibility for ukvm and virtual medial mount +7. Support X12-AST2500 GUID +8. Update event log definition in IPMILib +9. Fix certain typo +10. Update MigLayout versoin from 4.2 to 5.2 +11. Fix the font display incompletely issue on Linux OS +12. No sub-item pop-up to choose after checked the UTF-8 box of the Text Console on SLES12 +13. Fix "open in browser" hanging issue on Linux platform +14. Fix SLES12 does not support Chinese font issue +15. Add fan info component/page in node status page +16. Add the model name of power supply in MicroBlade node status page +17. Add the model name of node in MicroBlade node status page +18. Click KVM screen can resize KVM resolution when KVM screen size is abnormal +19. Update microblade kvm function +20. Fix 0xDC sensor type can not be recognized issue in trap Viewer column in trap Viewer +21. Fix Discrete Sensors panel layout can not be saved issue +22. Add filter for domain name +23. Modify the column index sorting method of quick trap panel +24. Support sorting function with filter. +25. Fix filter function will cause group list abnormal. +26. Fix some component does not support traditional/simplified chinese and revise translation. + +------------------------------------------------------------------------------- +Version 2.16.1 build 191104 +------------------------------------------------------------------------------- +1. Support new blade type B11SCG +2. Update B11SPE structure to fix sensor reading issue +3. Fix IPMI Domain can't be sorted by online devices issue +4. Fix SuperBlade switch model SBM-XEM-X8SM 1.25V sensor reading issue +5. Add new H12 support +6. Update bundle java to OpenJDK 1.8.0_201 +7. Support FW auxiliary version displaying +8. Support Nuvoton GUID +9. Enhance device list UI and action behavior +10. Fix trap receiver selection issue +11. Support multi-language for action message +12. Support X11Rot GUID +13. Support new blade type B2SD2 +14. Update backward compatibility for KVM + +------------------------------------------------------------------------------- +Version 2.15.0 build 190109 +------------------------------------------------------------------------------- +1. Fix trap event displaying issue +2. Add FRU Product Asset Tag field +3. Add microblade switch power consumption data +4. Update main page image +5. Update bundle java to 1.8 +6. Enhance KVM by implement stunnel multi-Instance to fix system administrator + privilege required issue. +7. Fix launch KVM of P8DTU fail on CentOS7 64bit issue +8. Fix launch KVM fail due to stunnel instance startup fail +9. Add blade type B2SC1 in microblade management +10. Fix two or more KVMs could not be launched in Windows Systems at the same + time +11. Keep keyboard layout setting for KVM function +12. Fix SOL Window could not works in SUSE system +13. Update MicroBlade node structure to support NVMe and Storage +14. Add new blade type B11SRE +15. Add workaround to avoid user privilege control issue on Windows platform +16. Fix tab focus issue after close a node session +17. Fix keyboard not work in SUSE system +18. Fix stunnel service will not close on Windows platform issue + +------------------------------------------------------------------------------- +Version 2.14.0 build 180213 +------------------------------------------------------------------------------- +1. Fix X10 FW update issue +2. Add blade type B11DPE, B11SPE, and B10KNM in microblade management +3. Add board model name information +4. Fix KVM launch fail when password contains double quote +5. Fix microblade psu dc current reading issue + +------------------------------------------------------------------------------- +Version 2.13.1 build 171024 +------------------------------------------------------------------------------- +1. Use Chassis power status instead of ACPI power status in Device panel +2. Fix discrete sensor did not display issue +3. Add new guid support +4. Fix fan2 display issue in PSU panel +5. Rename IPM device as IPMI device +6. Add blade type B10DRE in microblade management +7. Add blade type B2SS2_MTF in microblade management +8. Fix power consumption and other sensor reading issue +9. Adjust main window layout size +10. Add iKVM Auto-resize-window enable/disable property + +------------------------------------------------------------------------------- +Version 2.13.0 build 170504 +------------------------------------------------------------------------------- +1. Support P8DTU FW update +2. Update board ID to 20161014 (ipmilib) +3. Support multiple microblade backplane type +4. Update DIMM ecc location (OEM SEL) for X10OBI +5. Add watch dog sensor support for micro nodes +6. Support Purley platform firmware update +7. Support IPv6 platform firmware update +8. Support IPv6 (address and hostname) when adding new device +9. Support KVM with CA +10. Implement chassis power status instead of ACPI power status in SOL Panel +11. Update trap receiver to support acknowledge function +12. Fix SOL does not work well issue + +------------------------------------------------------------------------------- +Version 2.12.0 build 160804 +------------------------------------------------------------------------------- +1. Support ipv6 BMC connection +2. Update board ID +3. Fix KVM connection fail issue(IssueID=72378) + +------------------------------------------------------------------------------- +Version 2.11.1 build 160525 +------------------------------------------------------------------------------- +1. Remove VBAT sensor for B1SD2 and update watchdog sensor +2. Update kvm function to support stunnel + FW compatibility: + SMT_X10 v3.29, SMT_X11 v1.16 +3. Update IB Temp and 10G Temp in B10DRG and B10DRT +4. Fix KVM console window title +5. Set all microblade VBAT high limit to N/A +6. Support CB3 deivce including FW update +7. Support blade type B2SS1 +8. Fix VBAT sensor high limit displaying +9. Support dynamic kvm ssl port and change kvm library(iKVM.dll) + +------------------------------------------------------------------------------- +Version 2.11.0 build 151223 +------------------------------------------------------------------------------- +1. Add Microblade CMM informations +2. Add new Grantley MRC code definition +3. Add Microblade B2SS2 support +4. Update Microblade KVM to improve stability + +------------------------------------------------------------------------------- +Version 2.10.2 build 150909 +------------------------------------------------------------------------------- +1. Update microblade node sensor length (IPMILib) +2. Preserve option behavior is not same with web UI (IPMILib) +3. Update X11 devices icon + +------------------------------------------------------------------------------- +Version 2.10.2 build 150819 +------------------------------------------------------------------------------- +1. Update bundle jre to 1.7 +2. Support FW update for X11 AST2400 devices + +------------------------------------------------------------------------------- +Version 2.10.2 build 150713 +------------------------------------------------------------------------------- +1. Update microblade nodeSensorInfo structure due to FW change + +------------------------------------------------------------------------------- +Version 2.10.2 build 150622 +------------------------------------------------------------------------------- +1. Update DIMM ecc location (OEM SEL) for X10QRH +2. Remove IPv6 information after pressing detect button +3. Add OK button in "About" dialog +4. Add scroll bar to "Sensor" frames +5. Adjust superblade blade data size due to FW version + +------------------------------------------------------------------------------- +Version 2.10.2 +------------------------------------------------------------------------------- +1. Fix invoke browser by clicking Supermicro logo issue +2. Fix User privilege error +3. Update sel oem sensor type +4. Update board ID +5. Fix SuperBlade CMM CPU ID and Memory Speed display error +6. Support SuperBlade type B10DRG +7. Support SuperBlade type B10DRT_IBF2, B10DRI_N and B10DRC_N +8. Add Power Consumption sensor display for X10DRT-P +9. Add new fan mode PUE3 for X10 platform +10. Add new blade type B1SA4F and B1SD2 for sensor readings +11. Add microblade midplane informations +12. Fix microblade node graceful shutdown function +13. Support microblade cmm firmware update function +14. Update sensor limits from non-critical to critical +15. Remove group management power graceful control functions +16. Fix Configuration Tip" dialog display error +17. Fix microblade cmm display error + +------------------------------------------------------------------------------- +Version 2.10.1 build 141121 +------------------------------------------------------------------------------- +1. Support Microblade CMM +2. Update Superblade gigabit switch structure +3. Show the "Configuration Tip" dialog + +------------------------------------------------------------------------------- +Version 2.9.32.1 build 140722 +------------------------------------------------------------------------------- +1.Update for HP IPMI discovery and connection + +------------------------------------------------------------------------------- +Version 2.9.32 build 140624 +------------------------------------------------------------------------------- +1.Fix UIDLED issue +2.Fix Session abnormal close issue +3.Update group management to load individual username/password +4.Add B10DRI and B9QR7 +5.Set power cycle delaying time to 1 sec + +------------------------------------------------------------------------------- +Version 2.9.31 build 140403 +------------------------------------------------------------------------------- +1.Updated Supermicro new logo + +------------------------------------------------------------------------------- +Version 2.9.30 build 140318 +------------------------------------------------------------------------------- +1.Updated MicroBlade CMM and MicroBlade Node frimware version check + (IssueID=51309) +2.Added SDR Type 2 to support PS Status Compact SDR +3.Updated CPU Core Voltage high and low limit for BHQGE and BHDGT + +------------------------------------------------------------------------------- +Version 2.9.29 build 140206 +------------------------------------------------------------------------------- +1.Updated KVM support for B1SA4-F +1.Updated AMI X9,B9 firmware update and version check (Verify stage failure) + +------------------------------------------------------------------------------- +Version 2.9.28 build 131220 +------------------------------------------------------------------------------- +1.Updated for 920P check rule +2.Updated PMBus item names +3.Fixed a workaround for 1K62P power status +4.Updated input type (DC) for PMBus monitor + +------------------------------------------------------------------------------- +Version 2.9.27 build 131122 +------------------------------------------------------------------------------- +1.Updated iKVM native library (Linux 32bit) +2.Updated SOL initial commands for ATEN X9 +3.Updated 10G structure for SuperBlade (CMM V2.2.53 or later)(IssueID=49183) +4.Update CPU number of memory ecc error (X8 MBs and Bromolow) + +------------------------------------------------------------------------------- +Version 2.9.26 build 131104 +------------------------------------------------------------------------------- +1.Updated BHQG6/E sensors high low limit +2.Updated PMbus reading for 920P +3.Updated SOL initial command for ATEN X10 +4.Updated board ID list + +------------------------------------------------------------------------------- +Version 2.9.25 build 130828 +------------------------------------------------------------------------------- +1.Updated iKVM v1.69 r14 (Power control function enabled) +2.Updated OOB OEM SEL +3.Updated board ID list +4.Updated a workaround for unsigned linear data format for PMBus power + consumption + +------------------------------------------------------------------------------- +Version 2.9.24 build 130725 +------------------------------------------------------------------------------- +1.Fixed cannot open more then one KVM to multiple X9 Renesas BMC (AMI firmware) + +------------------------------------------------------------------------------- +Version 2.9.23 build 130709 +------------------------------------------------------------------------------- +1.Added UID control for X9DBS + +------------------------------------------------------------------------------- +Version 2.9.22 build 130625 +------------------------------------------------------------------------------- +1.Added B9DRG-E +2.Added PMBus(B0,B2,B4,B6) and FRU (A0,A2,A4,A6) addresses for 1K66P +3.Updated B9DR6, B9DRG and B9DRT sensor table for DIMM temp +4.Added SuperBlade OEM event (Shutdown the problematic blade after minutes of + CPU over heating) + +------------------------------------------------------------------------------- +Version 2.9.21 build 130610 +------------------------------------------------------------------------------- +1.Fixed ATEN X10,X9 firmware update bug for checking BMC version + +------------------------------------------------------------------------------- +Version 2.9.20 build 130530 +------------------------------------------------------------------------------- +1.Updated version format in X10 firmware update function +2.Updated X10 configuration for sensor (power failure issue), user and + BMCSetting. +3.Added Session Audit 02h and 03h event + +------------------------------------------------------------------------------- +Version 2.9.19 build 130523 +------------------------------------------------------------------------------- +1.Added X10 ASPEED firmware update preserve configure option +2.Updated memory ecc location on Trap receiver +3.Added Heavy IO fan mode +4.Updated SOL setting for X10 ASPEED + +------------------------------------------------------------------------------- +Version 2.9.18 build 130410 +------------------------------------------------------------------------------- +1.Added X10 ASPEED firmware update function +2.Updated parameters for ATEN X10 iKVM +3.Bug fixed for Linux path of properties file +4.Removed splash window to speed start up + +------------------------------------------------------------------------------- +Version 2.9.17 build 130123 +------------------------------------------------------------------------------- +1.Added B9DRGX DIMM temp +2.Added X10 ASPEED GUID + +------------------------------------------------------------------------------- +Version 2.9.16 build 121221 +------------------------------------------------------------------------------- +1.Updated GB 3 & 4 initialized and Error reading (SuperBlade) +2.Fixed BBP discharge setting dialog minor bugs +3.Added PUE Optimal fan mode + +------------------------------------------------------------------------------- +Version 2.9.15 build 121211 +------------------------------------------------------------------------------- +1.Added BBP (Battery Backup Power) management in sensors tab. + * FRU + * HW monitor + * Auto and User dishcarge setting + +------------------------------------------------------------------------------- +Version 2.9.14 build 121115 +------------------------------------------------------------------------------- +1.Fixed B9DRP wrong picture on BPN-SB-E202 system +2.Added 3rd auxiliary Firmware Revision for X9 and B9 (Renesas BMC) board +3.Modified GB 3¡B4 position. #3 at bottom, #4 at top + +------------------------------------------------------------------------------- +Version 2.9.13 build 121026 +------------------------------------------------------------------------------- +1.Updated DC current formula for power supply (SuperBlade) +2.Updated HDD trap message in TrapReceiver +3.Fixed OEM SEL wrong message in Group management +4.Added B9DR6, B9DR7 and B9DRP DIMM temperature sensors + +------------------------------------------------------------------------------- +Version 2.9.12 build 121012 +------------------------------------------------------------------------------- +1.Updated trap receiver email content and multiple email receiver +2.Added hostname and email password encryption in Trap Receiver +3.Added exception handling for internal receiver thread +4.Added B9DRP picture +5.Minor user management bug fixed + +------------------------------------------------------------------------------- +Version 2.9.11 build 120914 +------------------------------------------------------------------------------- +1. Added IBFDR +2. Added Fan Speed Mode +3. Fixed cannot connect issue for some particular Linux environment +4. Updated B9DRI VBAT & 1.1V sensors limit +5. Updated B9DRI CPU temp high limit +6. Added B9DRP +7. New release package with bundled JRE + +------------------------------------------------------------------------------- +Version 2.9.10 build 120725 +------------------------------------------------------------------------------- +1. Added B9DR7 and B9DRGX +2. Fixed AMI X9 KVM session token issue +3. Updated ATEN KVM session issue + +------------------------------------------------------------------------------- +Version 2.9.9 build 120531 +------------------------------------------------------------------------------- +1. Bug fixed for E103 mid-plane + +------------------------------------------------------------------------------- +Version 2.9.8 build 120525 +------------------------------------------------------------------------------- +1. Added B9DRT +2. Fixed user's password length issue on both IPMI and Blade system +3. Updated X9 OEM SEL (Mem Ecc for Romley EP,EX and EN) +4. Added E104 mid-plane + +------------------------------------------------------------------------------- +Version 2.9.7 build 120427 +------------------------------------------------------------------------------- +1. Added X9 OEM SEL +2. Updated iKVM 1.69 r13 shared library for VM issue (enable *.ima uploader) +3. Added X9 and B9 Renesas IPMI firmware update function +4. Improved stability of ATEN firmware update function + +------------------------------------------------------------------------------- +Version 2.9.6 build 120316 +------------------------------------------------------------------------------- +1. Fixed incorrect CPU Vcore voltage of B8DTT in v2.9.5 + +------------------------------------------------------------------------------- +Version 2.9.5 build 120308 +------------------------------------------------------------------------------- +1. Added B9DRE and B9DRG blades +2. Added KVM panel for B9* and BH* blades +3. Updated CPU sensor color when CPU temperature is high (in Group Management) +4. Updated format for firmware version +5. Fixed bug in calculating blade memory size + +------------------------------------------------------------------------------- +Version 2.9.4 build 111230 +------------------------------------------------------------------------------- +1. Updated PMBus information for reduntant charaters +2. Fixed SOL screen scroll fresh issue + +------------------------------------------------------------------------------- +Version 2.9.3 build 111215 +------------------------------------------------------------------------------- +1. Updated SOL minor issue for text color +2. Updated iKVM to v1.69 r13 + +------------------------------------------------------------------------------- +Version 2.9.2 build 111110 +------------------------------------------------------------------------------- +1. Added 4*Gigabit Switches for ZTE SuperBlade customization + +------------------------------------------------------------------------------- +Version 2.9.1 build 111027 +------------------------------------------------------------------------------- +1. Fixed X9 AMI Virtual Media "cdrom service disabled" issue +2. Updated Power supply PMBus/FRU status icon and description (on/off) + + +------------------------------------------------------------------------------- +Version 2.9.0 build 111025 +------------------------------------------------------------------------------- +1. Added PSU PMBus/FRU health monitoring (in Sensors tab) +2. Fixed reduntant event description in SEL exporting log diff --git a/.local/bin/IPMIView/SMCIPMITool.properties b/.local/bin/IPMIView/SMCIPMITool.properties new file mode 100644 index 0000000..e69de29 diff --git a/.local/bin/IPMIView/SharedLibrary32.dll b/.local/bin/IPMIView/SharedLibrary32.dll new file mode 100755 index 0000000..5862d03 Binary files /dev/null and b/.local/bin/IPMIView/SharedLibrary32.dll differ diff --git a/.local/bin/IPMIView/SharedLibrary64.dll b/.local/bin/IPMIView/SharedLibrary64.dll new file mode 100755 index 0000000..ff87575 Binary files /dev/null and b/.local/bin/IPMIView/SharedLibrary64.dll differ diff --git a/.local/bin/IPMIView/SharedLibrary_v11_32.dll b/.local/bin/IPMIView/SharedLibrary_v11_32.dll new file mode 100755 index 0000000..5862d03 Binary files /dev/null and b/.local/bin/IPMIView/SharedLibrary_v11_32.dll differ diff --git a/.local/bin/IPMIView/SharedLibrary_v11_64.dll b/.local/bin/IPMIView/SharedLibrary_v11_64.dll new file mode 100755 index 0000000..ff87575 Binary files /dev/null and b/.local/bin/IPMIView/SharedLibrary_v11_64.dll differ diff --git a/.local/bin/IPMIView/TrapReceiver b/.local/bin/IPMIView/TrapReceiver new file mode 100755 index 0000000..58f6af9 --- /dev/null +++ b/.local/bin/IPMIView/TrapReceiver @@ -0,0 +1,2828 @@ +#!/bin/sh +################################################################################################# +# +# LAXUNIX.SH - LaunchAnywhere (tm) version 17.0 +# +# (c) Copyright 2015 Flexera Software LLC. All rights reserved. +# +# To run this script you will need to have the following: +# 1) a Java VM installed (however, it will handle a lack of Java nicely). +# 2) a Java-style properties file having the same name as this script +# with the suffix .lax. If this script is appended to the +# self-extractor, it will look for the properties file in the +# directory specified by $seLaxPath; otherwise, it will look in +# the same directory that this script is in. +# 3) a Java program in the file "lax.jar". +# +# The .lax property file must contain at least the following properties: +# 1) lax.class.path classpath (do not include the environment variable $CLASSPATH ) +# 2) lax.nl.java.launcher.main.class (main class of LaunchAnywhere Executable) +# +################################################################################################# + +# +# Since USERENV is already set in the self-extractor, if its not set we know +# this is not an installer but a separate launcher. +# USERENV is just a flag passed from use.sh. +# +IS_INSTALLER='' +[ $USERENV ] && IS_INSTALLER=true + +# +# later on we might add things to the PATH, but we want to preserve the PATH +# order for which VMs are the first ones found. +# +VM_SEARCH_PATH="$PATH" + +case `uname -s` in +"SunOS") TR="/usr/xpg4/bin/tr" +;; +*) TR="/usr/bin/tr" +;; +esac + +#################################################################################### +# Set some constants +if [ "$1" = "LAX_VM" ]; then + lax_vm="LAX_VM" + lax_vm_value="$2" + shift 2 +else + lax_vm="" +fi +anyVMlist="JDK_J2 D12 JRE_J2 R12 JDK_J1 JRE_J1 JDK JRE ALL" + +#################################################################################### +#Specifying some global variables +IATEMP="/tmp" +DEBUG=0 +var_searchAndverifyJvm=2 #var_searchAndverifyJvm - jvm search&verify result; successful search&verify sets to zero; initializing to non-zero +var_verifyJVM=2 # verification of a JVM result. successful verification of searched JVM sets to zero; initializing to non-zero +pbc=1 +LOG=/tmp/ourlog +iaVV="true" +actvmType="" +actvm="" +PLATFORM_HINT_FILE=/tmp/tmpPlatformHintFile + + +#################################################################################### +# Format commandline args +# To overcome the problem of quoted args (with internal spaces) to the launcher +# is that they get "unquoted" or separated into discreet args when they are put +# on the cmdline for the application. This following block makes sure the stay intact +overrideDefaultUIMode="false" +ignoreMode="false"; +uimode="not set" +hasSeenI="false" +tmpArgs="" +origArgs=$@ +for arg in "$@" +do + if [ "$arg" != "" ]; then + tmpArgs="$tmpArgs \"$arg\"" + if [ "$arg" = "-i" -o "$arg" = "-I" ]; then + hasSeenI="true" + elif [ "$hasSeenI" = "true" ]; then + lowerArg=`echo $arg | $TR "[:upper:]" "[:lower:]"` + if [ "$lowerArg" = "awt" ]; then + uimode="awt" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "swing" ]; then + uimode="swing" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "gui" ]; then + uimode="gui" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "console" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "text" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "silent" ]; then + uimode="silent" + overrideDefaultUIMode="true" + else + ignoreMode="true" + fi + fi + fi +done + +# JVM heap size option are no longer required, hence removing it from the command line arguments. +# *NOTE* :: This part can be done in the above code but still doing the same again. +tmpArgs="" +jvmOptPresent="false" +for arg in "$@" +do + if [ "$arg" != "-jvmxms" ] && [ "$arg" != "-jvmxmx" ] && [ "$jvmOptPresent" = "false" ]; then + tmpArgs="$tmpArgs \"$arg\"" + else + if [ "$jvmOptPresent" = "false" ]; then + jvmOptPresent="true" + else + jvmOptPresent="false" + fi + fi +done + +cmdLineArgs="$tmpArgs" +thisScript="$0" +# make sure thisScript is an abs path +case $thisScript in + /*) + ;; + *) + thisScript="`pwd`/$thisScript" + ;; +esac + +#################################################################################### +# +# WHere does the LAX_DEBUG output go? +# + +if [ "$LAX_DEBUG" = "file" ]; then + jx_log="`pwd`/jx.log" + rm -f "$jx_log" + touch "$jx_log" + if [ "$?" -gt "0" ]; then + jx_log_ok="false" + echo "Could not create $jx_log. Sending debug output to console." + else + jx_log_ok="true" + fi +fi + +debugOut() +{ + case "$LAX_DEBUG" in + "file" ) + if [ "$jx_log_ok" = "true" ]; then + echo "$1" >> "$jx_log" + else + echo "$1" + fi + ;; + "" ) + echo "$1" >> /dev/null + ;; + * ) + echo "$1" + ;; + esac +} + +#################################################################################### +# +# UNIX ENVIRONMENT configuration +# +debugOut "" +debugOut "========= Analyzing UNIX Environment =================================" + + +# Get os type , note that it is LOWER-CASED. Used here and later on +osName=`uname -s 2> /dev/null | $TR "[:upper:]" "[:lower:]" 2> /dev/null` +debugOut "Setting UNIX ($osName) flavor specifics." +vmScript=".java_wrapper" +case "$osName" in + *irix*) + cpuName="unknown" + ;; + *hp-ux*|*hpux*) + cpuName=`uname -m 2> /dev/null` + ;; + *solaris*|*sunos*) + cpuName=`uname -p 2> /dev/null` + THREADS_FLAG=""; export THREADS_FLAG + PATH=/usr/bin:$PATH; export PATH + ;; + *aix*) + cpuName="unknown" + ;; + *freebsd*) + cpuName=`uname -p 2> /dev/null` + ;; + *linux*) + cpuName=`uname -m 2> /dev/null` + ;; + # tlb 2001-09-18 updating to support Darwin + *rhapsody*|*darwin*) + cpuName=`uname -p 2> /dev/null` + vmScript=".java_command" + ;; + *compaq*|*dg*|*osf*) + cpuName="unknown" + ;; + *) + cpuName="unknown" + ;; +esac + + +if [ -x /bin/ls ]; then + lsCMD="/bin/ls" +elif [ -x /usr/bin/ls ]; then + lsCMD="/usr/bin/ls" +else + lsCMD="ls" +fi + +debugOut "Importing UNIX environment into LAX properties." + +#################################################################################### +# +# CREATE ENV.PROPERTIES and figure out if this is being exec'd from an installer +# +# We need POSIX awk. On some systems it's called awk, on others +# nawk. It's most frequently called nawk, so start with that. +# +debugOut "Checking for POSIX awk." + +AWK=nawk +( $AWK '{}' ) < /dev/null 2>&0 || AWK=awk + +if [ -z "$IATEMPDIR" ]; then + TMPDIR=/tmp +else + TMPDIR=$IATEMPDIR +fi + + +if [ -z "$envPropertiesFile" ] +then + if [ -d $TMPDIR ] + then + envPropertiesFile=$TMPDIR/env.properties.$$ + else + envPropertiesFile="$HOME/env.properties.$$" + fi +fi + +# +# Convert environment variables to LAX properties. The variables +# are also named with alternate case (all upper, all lower). +# +# E.g. +# export My_Env_Var="abc +# def" +# +# is converted to: +# lax.nl.env.exact_case.My_Env_Var=abc def +# lax.nl.env.MY_ENV_VAR=abc def +# lax.nl.env.my_env_var=abc def +# +# The second gsub() is used to escape backslashes so that when the properties +# file is read by the java.util.Properties object, there is not a problem +# with incorrectly interpreted escaped unicode. +# +# This code segment is written in POSIX awk for performance reasons. +# + +$AWK -v LAX_PREFIX=lax.nl.env. ' +END { + for (var in ENVIRON) + { + # get variable value + value = ENVIRON[var] + + # strip newlines + gsub(/\n/, " ", value) + + # convert one backslash to two + gsub(/\\/, "\\\\", value) + + # print as LAX property + print LAX_PREFIX "exact_case." var "=" value + print LAX_PREFIX tolower(var) "=" value + print LAX_PREFIX toupper(var) "=" value + } +}' < /dev/null > $envPropertiesFile + + + +#################################################################################### +# +# Tracing symbolic links to actual launcher location +# + +resolveLink() +{ + rl_linked="true" + rl_operand="$1" + rl_origDir="`dirname "$1"`" + + # bypass the whole thing if this isnt a link + rl_ls=`$lsCMD -l "$rl_operand"` + case "$rl_ls" in + *"->"*) + ;; + *) + resolvedLink="$rl_operand" + return + ;; + esac + + while [ "$rl_linked" = "true" ]; do + # if the operand is not of an abs path, get its abs path + case "$rl_operand" in + /*) + rl_origDir=`dirname "$rl_operand"` + ;; + \./*) + rl_origDir=`pwd` + rl_operand="$rl_origDir/$rl_operand" + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + # + # the prevPrev hack is here because .../java often points to .java_wrapper. + # at the end of the resolution rl_operand actually points to garbage + # signifying it is done resolving the link. So prev is actually .java_wrapper. + # but we want the one just before that, its the real vm starting poiint we want + # + rl_prevOperand="$rl_operand" + rl_ls=`$lsCMD -l "$rl_operand"` + # get the output ls into a list + set x $rl_ls + # get rid of x and file info from ls -l + shift 9 + + #is this a link? + case "$rl_ls" in + *"->"*) + rl_linked="true" + # is a link, shift past the "->" + rl_linker="" + while [ "$1" != "->" -a $# -gt 1 ]; do + rl_linker="$rl_linker $1" + shift + done + + if [ "$1" = "->" ]; then + shift + fi + ;; + *) + # not a link, the rest must be the targets name + rl_linked="false" + ;; + esac + # now grab what's left + rl_linkee="$*" + + # debugOut "Following link to LAX $rl_linker -> $rl_linkee" + + if [ "$rl_linked" = "true" -a "`basename "$rl_linkee"`" != "$vmScript" ]; then + # set to true incase the thing linked to is also a link and we can + # try again. The current think linked to now becomes the operand + rl_operand="$rl_linkee" + # if the linkee is not abs, make it abs relative to the linker + case "$rl_operand" in + /*) + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + else + # otherwise, this operand is not a link itself and we are done + rl_resolvedLink="$rl_prevOperand" + # however, do not resolve the last leg of a VMs linked scripts. this will + # disrupt their scripts. it is expecting a link to the .java* script + # let us believe it is not linked and continue on... + if [ "`basename "$rl_linkee"`" = "$vmScript" ]; then + rl_linked="false" + fi + fi + # make sure the path returned is absolute + case "$rl_operand" in + \.\/*) + rl_operand="`pwd`/$rl_operand" + ;; + esac + done + + # remove "/./" in paths, make it "/" + # i,e, "/a/b/./c" becomes "/a/b/c" + resolvedLink=`echo "$rl_resolvedLink" | sed 's,/\./,/,'` +} + +#################################################################################### +# +# FINDING THE LAX FILE +# +# If this is an installer, use $seLaxPath +# +debugOut "" +debugOut "========= Analyzing LAX ==============================================" +olddir=`pwd` +resolveLink "$thisScript" +absLauncherName="$resolvedLink" +cd "`dirname "$absLauncherName"`" +if [ "$IS_INSTALLER" != "" ]; then + if [ ! -z "$seLaxPath" ]; then + propfname="$seLaxPath" + else + # legacy for old self-extractors + propfname="$templaxpath" + fi +else + propfname="$absLauncherName.lax" +fi + + +if [ ! -r "$propfname" ]; then + debugOut "The file "$propfname" could" + debugOut "not be found, and the program cannot be run without it." + debugOut "Try reinstalling the program." + exit; +else + debugOut "LAX found............................ OK." +fi + + +#################################################################################### +# +# READING THE LAX FILE +# +OFS="$IFS" +# run prop file through sed calls that do: +# 1. transform first '=' on a line into a control-O +# 2. transform all other ='s to control-F +# 3. transform control-Os back to = +# this is to differentiate the lhs=rhs processing from confusing the first = from other +# = that might be part of the value. Later on those =-tranformed-to-control-Fs are +# transformed back to = signs. +set x `cat "$propfname" | sed -e 's~^\([^\=]*\)\=\(.*\)~\1\\2~g' -e 's~=~~g' -e 's~~=~g' | grep '='`; shift + +while test $# -gt 0; do + # line separator + case "x${1}x" in + *"="* ) BIFS=" "; ;; + * ) BIFS="" ; ;; + esac + # word separator + case "x${2}x" in + *"="* ) AIFS=""; ;; + * ) AIFS=""; ;; + esac + INPUT="$INPUT$BIFS$1$AIFS" + shift +done + +while test "x$INPUT" != "x"; do + set x $INPUT; shift + X="$1" + shift + INPUT="$@" + IFS="=$AIFS" + set x $X; shift + IFS="$OFS" + + lhs="${1}" + shift + rhs="$@" + + # transform non lhs=rhs delimiting = signs back from ^F to = + case "$rhs" in + **) + rhs=`echo $rhs | sed 's~~=~g'` + ;; + esac + + # assing the values + case $lhs in + lax.class.path*) + lax_class_path="$rhs" + ;; + lax.main.class*) + lax_main_class="$rhs" + ;; + lax.nl.java.launcher.main.class*) + lax_nl_java_launcher_main_class="$rhs" + ;; + lax.nl.current.vm*) + lax_nl_current_vm="$rhs" + ;; + lax.user.dir*) + lax_user_dir="$rhs" + lax_user_dir=`echo $lax_user_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.resource.dir*) + lax_resource_dir="$rhs" + lax_resource_dir=`echo $lax_resource_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.stdout.redirect*) + lax_stdout_redirect="$rhs" + ;; + lax.stderr.redirect*) + lax_stderr_redirect="$rhs" + ;; + lax.dir*) + lax_dir="$rhs" + ;; + lax.always.ask*) + lax_always_ask="$rhs" + ;; + lax.application.name*) + lax_application_name="$rhs" + ;; + lax.nl.message.vm.not.loaded*) + lax_nl_message_vm_loaded="$rhs" + ;; + lax.nl.valid.vm.list*) + # transform an blank value to "ALL" + case "$rhs" in + "") rhs="ALL"; ;; + esac + lax_nl_valid_vm_list="$rhs" + ;; + lax.nl.java.option.check.source*) + verify="$rhs" + ;; + lax.nl.java.option.verify.mode*) + verify_mode="$rhs" + ;; + lax.nl.java.option.verbose*) + verbo="$rhs" + ;; + lax.nl.java.option.garbage.collection.extent*) + gcxtnt="$rhs" + ;; + lax.nl.java.option.garbage.collection.background.thread*) + gcthrd="$rhs" + ;; + lax.nl.java.option.native.stack.size.max*) + nsmax="$rhs" + ;; + lax.nl.java.option.java.stack.size.max*) + jsmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.max*) + jhmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.initial*) + jhinit="$rhs" + ;; + lax.nl.java.option.debugging*) + debug="$rhs" + ;; + lax.nl.$osName.$cpuName.java.compiler*) + lax_nl_osname_cpuname_java_compiler="$rhs" + ;; + lax.nl.$osName.java.compiler*) + lax_nl_osname_java_compiler="$rhs" + ;; + lax.nl.java.compiler*) + lax_nl_java_compiler="$rhs" + ;; + lax.nl.java.option.additional*) + lax_nl_java_option_additional="$rhs" + ;; + ###################################################### + # tlb 2001-09-18 + # Reading default UI mode for UNIX + lax.installer.unix.ui.default*) + lax_installer_unix_ui_default="$rhs" + ;; + ###################################################### + # JIT overrides + lax.nl.unix.JDK_J1.java.compiler*) + lax_nl_unix_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JDK_J2.java.compiler*) + lax_nl_unix_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J1.java.compiler*) + lax_nl_unix_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J2.java.compiler*) + lax_nl_unix_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.unix.J1.java.compiler*) + lax_nl_unix_J1_java_compiler="$rhs" + ;; + lax.nl.unix.J2.java.compiler*) + lax_nl_unix_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE.java.compiler*) + lax_nl_unix_JRE_java_compiler="$rhs" + ;; + lax.nl.unix.JDK.java.compiler*) + lax_nl_unix_JDK_java_compiler="$rhs" + ;; + lax.nl.unix.ALL.java.compiler*) + lax_nl_unix_ALL_java_compiler="$rhs" + ;; + # + lax.nl.JDK_J1.java.compiler*) + lax_nl_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.JDK_J2.java.compiler*) + lax_nl_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.JRE_J1.java.compiler*) + lax_nl_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.JRE_J2.java.compiler*) + lax_nl_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.J1.java.compiler*) + lax_nl_J1_java_compiler="$rhs" + ;; + lax.nl.J2.java.compiler*) + lax_nl_J2_java_compiler="$rhs" + ;; + lax.nl.JRE.java.compiler*) + lax_nl_JRE_java_compiler="$rhs" + ;; + lax.nl.JDK.java.compiler*) + lax_nl_JDK_java_compiler="$rhs" + ;; + lax.nl.ALL.java.compiler*) + lax_nl_ALL_java_compiler="$rhs" + ;; + # + lax.nl.$osName.JDK_J1.java.compiler*) + lax_nl_osname_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK_J2.java.compiler*) + lax_nl_osname_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J1.java.compiler*) + lax_nl_osname_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J2.java.compiler*) + lax_nl_osname_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.J1.java.compiler*) + lax_nl_osname_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.J2.java.compiler*) + lax_nl_osname_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE.java.compiler*) + lax_nl_osname_JRE_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK.java.compiler*) + lax_nl_osname_JDK_java_compiler="$rhs" + ;; + lax.nl.$osName.ALL.java.compiler*) + lax_nl_osname_ALL_java_compiler="$rhs" + ;; + # + # JIT overrides + ###################################################### + esac +done + +debugOut "LAX properties read.................. OK." + +if [ "${lax_class_path:-""}" = "" ]; then + debugOut "The classpath specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi +if [ "${lax_nl_java_launcher_main_class:-""}" = "" ]; then + debugOut "The main class specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi + +if [ ! -z "$INSTALLER_OVERRIDE_VMLIST" ]; then + lax_nl_valid_vm_list="$INSTALLER_OVERRIDE_VMLIST" +fi + +################################################### +# tlb 2001-09-18 +# Making sure the default UNIX UI mode is honored +# if overrideDefaultUIMode is not set, which means no commandline +# options were entered at the commandline regarding +# ui mode, we will look to the LAX file to set a ui +# mode. If there is no such setting in the LAX, +# which would be an error, we default to GUI. + + if [ "$overrideDefaultUIMode" = "false" ]; then + if [ -n "$lax_installer_unix_ui_default" -a "$ignoreMode" = "false" ]; then + if [ $lax_installer_unix_ui_default = SILENT ]; then + isSilent="true" + cmdLineArgs="$cmdLineArgs -m SILENT" + uimode="silent" + elif [ $lax_installer_unix_ui_default = CONSOLE ]; then + isConsole="true" + cmdLineArgs="$cmdLineArgs -m CONSOLE" + uimode="console" + elif [ $lax_installer_unix_ui_default = GUI ]; then + isSilent="false" + isConsole="false" + uimode="gui" + fi + fi + fi + +#################################################################################### +# +# if user.dir != . then relative paths on the classpath will be broken. they +# are expecting the pwd to be '.' (meaning the install dir). If user.dir is +# any other directory, it will break +lax_class_path=`echo "$lax_class_path" | sed 's^;^:^g'` +absInstallDir=`dirname "$absLauncherName"` +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + \/*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + *|*\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="${absInstallDir}/$1" + else + tmp_lcp="$tmp_lcp:${absInstallDir}/$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + +# resolve $ENV_CLASSPATH$ +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + *\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$CLASSPATH" + else + tmp_lcp="$tmp_lcp:$CLASSPATH" + fi + ;; + *) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + + + +#################################################################################### +# just incase this the lax was written in DOS, be sure to make all ';' path +# separators into :'s or it will fubar the commandline +# +case "$smclp" in + *\;*) + oldIFS=$IFS + IFS=";" + for smclp_piece in $smclp; do + tmp_smclp="$tmp_smclp:$smclp_piece" + done + IFS=$oldIFS + clp=$tmp_smclp + ;; +esac + +################################################################## +# Setting stdout and stderr redirection +# +if [ "$LAX_DEBUG" = "file" -o "$LAX_DEBUG" = "" ]; then + echo "lax.stderr.redirect=$lax_stderr_redirect" >> $envPropertiesFile + echo "lax.stdout.redirect=$lax_stdout_redirect" >> $envPropertiesFile +else + echo "lax.stderr.redirect=console" >> $envPropertiesFile + echo "lax.stdout.redirect=console" >> $envPropertiesFile + lax_stdout_redirect="console" + lax_stderr_redirect="console" +fi + +lax_version="16.5" + +validVMtypeList="$lax_nl_valid_vm_list" + +# MMA 04.26.2000 +# +# Added check for validVMtypeList not being set to any value, in +# which case we should just set the valid list to all. +# +if [ "$validVMtypeList" = "ALL" -o "$validVMtypeList" = "" ]; then + validVMtypeList=$anyVMlist +fi + + +############################################################# +# PICK A VALID VM +# + +debugOut "" +debugOut "========= Finding VM =================================================" +debugOut "Valid VM types.......................... $validVMtypeList" + +# +# If the vm gets a relative path, we must make it absolute to the Install +# Directory tm 3/3 +# +if [ ! -z "${lax_nl_current_vm:-""}" ]; then + # tlb 2001-09-18 updating the LAX to support CD-ROM installations + # the variable `expr "$lax_nl_current_vm" : '\/'` will evaluate to 1 if the path starts with / + isAbsPath=`expr "$lax_nl_current_vm" : '\/'` + if [ "$isAbsPath" = "0" ]; then + # When running a CD-ROM installer lax_dir is not set, lax_dir is set by the SEA. + # We set it to the working directory if it is not set + if [ -z "$lax_dir" ]; then + lax_dir=`pwd` + abs_lax_nl_current_vm="${lax_dir}"/"${lax_nl_current_vm}" + else + abs_lax_nl_current_vm="${lax_dir}""${lax_nl_current_vm}" + fi + else + abs_lax_nl_current_vm="$lax_nl_current_vm" + fi + debugOut "Absolute LAX_VM path.................... $abs_lax_nl_current_vm" +fi + +#-------------------------------------------------------- +# getJavaVersion() +# +# $1: path to java executeable +# +# returns: +# $javaVersion +# +getJavaVersion() +{ + javaExe=$1 + javaVersion=` "${javaExe}" -version 2>&1 | $AWK ' +$3 ~ /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { + gsub ("[^0-9._]", "", $3) + print $3 +} + ' ` + unset javaExe +} +# +#-------------------------------------------------------- + +################################################################################# +# inspectVM() +# +# param: a pathname to a potential VM file, maybe a link +# +# returns: $inspectedVMpath the real path to the VM file +# returns: $inspectedVMtype the type of the VM +# returns: $inspectedOldVMtype ? +# +inspectVM() +{ + resolveLink "$1" + + inspectee="$resolvedLink" + inspecteeDir=`dirname "$inspectee"` + inspecteeName=`basename "$inspectee"` + + inspectedVMpath="$inspectee" + + # + # is it JDK1.1 , JDK1.2 or JRE1.2? + # + if [ "$inspecteeName" = "oldjava" ]; then + inspectedOldVMtype="OLDJAVA" + inspectedVMtype="OLDJAVA" + elif [ "$inspecteeName" = "java" ]; then + + ############################################################ + # Do some OS-specific quirky stuff + # + # MacOS X / Rhapsody + # + quirk_classesZip="" + if [ "$osName" = "rhapsody" ]; then + if [ "`expr "$inspecteeDIR" : ".*JavaVM.framework$"`" != "0" ]; then + quirk_classesZip="$file/Classes/classes.jar" + inspecteeDir="$inspecteeDir/Home/bin" + fi + fi + # END OS quirky stuff + ############################################################ + + # + # is it JDK1.1? + # + if [ -r "$inspecteeDir/../lib/classes.zip" -o -r "$quirk_classesZip" ]; then + inspectedOldVMtype="JDK" + inspectedVMtype="JDK_J1" + inspectedVMVersion="1.1" + else + # JDK1.2 + # + # is the "java" JRE1.2 or JDK1.2? + # + if [ -r "$inspecteeDir/../lib/dt.jar" ] + then + inspectedOldVMtype="D12" + inspectedVMtype="JDK_J2" + else + inspectedOldVMtype="R12" + inspectedVMtype="JRE_J2" + fi + # + # find version + # + if [ -r "$inspecteeDir/pack200" ]; + then + inspectedVMVersion="1.5" + elif [ -r "$inspecteeDir/client" -o -r "$inspecteeDir/server" -o -r "$inspecteeDir/../jre/bin/server" -o -r "$inspecteeDir/../jre/bin/server" ]; + then + inspectedVMVersion="1.4" + elif [ -r "$inspecteeDir/hotspot" -o -r "$inspecteeDir/../jre/bin/hotspot" ]; + then + inspectedVMVersion="1.3" + elif [ -r "$inspecteeDir/classic" ]; + then + inspectedVMVersion="1.2" + fi + getJavaVersion $inspectee + if [ -n "$javaVersion" ]; then + inspectedVMVersion=$javaVersion + fi + unset javaVersion + fi + elif [ "$inspecteeName" = "jre" ]; then + inspectedOldVMtype="JRE" + inspectedVMtype="JRE_J1" + inspectedVMVersion="1.1" + else + inspectedOldVMtype="UNKNOWN" + inspectedVMtype="UNKNOWN" + fi +} +### +### end inspectVM() +### +######################################################################################## + + +# massage valid VM list. Expand inclusive types (i.e. JRE = JRE_J1 and JRE_J2 ) +tmpValidVMlist="" +for type in $validVMtypeList; do + case $type in + J1) tmpValidVMlist="$tmpValidVMlist JRE_J1 JDK_J1" ;; + J2) tmpValidVMlist="$tmpValidVMlist JRE_J2 JDK_J2" ;; + JRE) tmpValidVMlist="$tmpValidVMlist JRE_J2 R12 JRE_J1" ;; + JDK) tmpValidVMlist="$tmpValidVMlist JDK_J2 D12 JDK_J1" ;; + *) tmpValidVMlist="$tmpValidVMlist $type " ;; + esac +done +validVMtypeList="$tmpValidVMlist" +debugOut "Expanded Valid VM types................. $validVMtypeList" + +#-------------------------------------------------------------- +# strictCheck +# checks that the version passed in matches the 'strict vm +# selection pattern' +# +# $1: vm version +# $2: pattern to match +# $3: vm type list +# +# returns: +# +# exit status: +# 0 on match, 1 otherwise + +strictCheck() +{ + vmVersion=$1 + pattern=$2 + types=$3 + eval `$AWK ' +BEGIN { + if ( ARGV[1] ~ /^(JDK|JRE)_/ ) { + printf ("version=%s\ntype=%s\n", substr(ARGV[1],5), substr(ARGV[1], 1, 3) ); + } else { + printf ("version=%s\ntype=%s\n",ARGV[1],"none"); + } +} + ' $pattern` + + $AWK ' +function asNum(s) { + return s+0; +} +function versionToNumber(verStr) { + split(verStr, verVec, "[._+*]"); + return (asNum(verVec[1]) * 1000000) + \ + (asNum(verVec[2]) * 10000) + \ + (asNum(verVec[3]) * 100) + \ + asNum(verVec[4]); +} +function subVersionOf(version, pattern) { + pString = sprintf("%0.8d", pattern); + vString = sprintf("%0.8d", version); + sub( "0+$", "", pString ); + return vString ~ "^" + pString; +} +BEGIN { + version = versionToNumber( ARGV[1] ); + pattern = versionToNumber( ARGV[2] ); + op = substr(ARGV[2],length(ARGV[2]) ); + if (op=="+") success = version >= pattern; + else if (op=="*") success = subVersionOf(version, pattern); + else success = version == pattern; + if (success) exit(0); + exit(1); +} + ' "$vmVersion" "$version" + success=$? + if [ $success = 0 ]; then + case "none $types" in + *$type*) + debugOut "checking: \"$vmVersion\" against \"$pattern\": passed" + success=0 + ;; + *) + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong type)" + success=1 + ;; + esac + else + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong version)" + fi + return $success +} + +#--------------------------------------------------------------- +writetab() +{ + awk ' BEGIN { processingTag=0 } + $0 == "/:" { if (beginprocessingTag == 1) beginprocessingTag=0 ; next } + $0 == tag { beginprocessingTag=1; next } + { if (beginprocessingTag == 1) { print $0 >> tab; next } } + END { } ' tab="$2" tag="$3" "$1" +} + +pbclr() +{ + [ -z "$SILENT" ] && { + awk ' END { + printf("%c",13); + printf("%s"," "); + i=length(pbmesg); + for (k=1 ; k <= i; k++ ) printf("%c",32); + }' pbmesg="$pbmesg" /dev/null` + if [ $alive != "0" ] ; then + sleep 1 + ctr=`expr $ctr + 1` + else + return + fi + done + foo=`kill -9 $1 > /dev/null 2>&1` +} + +VerifyJVM() +{ + pbclr + pbmesg="Verifying JVM" + pb + + [ ! -f "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" ] + awk ' BEGIN { begin=0; i=1 } + $0 == "/:" { if (begin == 1) begin=0 ; next; } + $0 == tag { begin=1; next; } + { if (begin== 1) { item[i]=$0; i++; next; } } + END { for (k=1; k < i; k++) print item[k] >> tab; } ' tab="$IATEMP/sp" tag="JVM_PROPERTIES:" "$1" 2>/dev/null + if [ -f "$IATEMP/sp" ] ; then + + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo "$spl" | sed 's/\"//g'` + systemprops=`awk 'END { i=index(spl,"="); s=substr(spl,1,i-1); ss=sprintf("%s %s", sp, s); print ss; } ' spl="$spl" sp="$systemprops" /dev/null` + spcc=`expr $spcc + 1` + done + jvm_classpath= + cp_switch=`awk 'BEGIN{ FS=":"} $1 == tag { print $2; exit; }' tag=CLASSPATH $1` + cp_switch=`echo "$cp_switch" | sed 's/\"//g'` + jvm_classpath=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_CLASSPATH $1` + + debugOut "---" + + if [ -z "$jvm_classpath" ] ; then + debugOut "Verifying1... $2 $cp_switch $INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + else + jb=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_EXE $1 2>/dev/null` + jb=`echo "$jb" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + jb=`echo "$jb" | sed 's/\//\\\\\//g'` + JVM_HOME=`echo "$2" | sed "s/${jb}//"` + eval jvm_classpath="$jvm_classpath" + debugOut "Verifying2... $2 $cp_switch $jvm_classpath:$INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$jvm_classpath":"$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + JVM_HOME= + fi + + if [ -f "$IATEMP/jvmout" ] ; then + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo $spl | sed 's/\"//g'` + jvmfilevalue=`awk 'END { i=index(spl,"="); s=substr(spl,i+1); print s } ' spl="$spl" sp="$systemprops" /dev/null` + jvmoutc=`expr $spcc + 1` + jvmout=`sed -n -e "${jvmoutc}p" "$IATEMP/jvmout"` + + var_verifyJVM=`awk ' END { + exactMatch=1 + var_verifyJVM=2 + len = length(jvmfilevalue) + for (k = len ; k >len-3 ; k--) { + char=substr(jvmfilevalue, k, 1); + s = sprintf("%s%s", s,char); + } + if (length(s) == length("...")) { + if ( index(s, "...") == 1) { + exactMatch=0 + } + } + if (exactMatch == 1) { + if ( (length(jvmfilevalue) == length(jvmout)) && (index(jvmfilevalue, jvmout) == 1) ) var_verifyJVM=0 + } else { + jvmfilevalue_prefix=substr(jvmfilevalue, 1, len-3) + if (index(jvmout,jvmfilevalue_prefix) == 1 ) var_verifyJVM=0 + } + if (length(iaVV) > 0) { + printf("jvm system property specified in jvm file=%s\n",jvmfilevalue) >> ilog + printf("jvm system property from running Verify diagnostics on the JVM=%s\n",jvmout) >> ilog + if (var_verifyJVM == 0) { + if (exactMatch == 1) { + print "exact match of system property succeeded" >> ilog + } else { + print "non-exact match of system property succeeded" >> ilog + } + } else { + if (exactMatch == 1) { + print "exact match of system property failed" >> ilog + } + else { + print "non-exact match of system property failed" >> ilog + } + } + } + print var_verifyJVM + } ' jvmout="$jvmout" jvmfilevalue="$jvmfilevalue" iaVV="$iaVV" ilog="$LOG" /dev/null` + if [ "$var_verifyJVM" != "0" ] ; then + break + fi + spcc=`expr $spcc + 1` + done + else + debugOut "$IATEMP/jvmout does not exist. JVM Verification process may have failed." + fi + else + debugOut "system properties are not specified in "$1"" + fi + rm -f "$IATEMP/sp" + rm -f "$IATEMP/jvmout" +} + +preparePlatformHintFile() +{ + JVM_FILE=$1 + + while read fileLine + do + eachLine=`echo $fileLine` + if [ "$eachLine" = "PLATFORM_HINT:" ] ; then + flag=0 + fi + + if [ "$flag" = 0 ] ; then + echo $eachLine >> $PLATFORM_HINT_FILE + fi + + if [ "$eachLine" = "/:" ] ; then + flag=1 + fi + + done < $JVM_FILE + + #sed -i 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE + sed 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE + #sed -i 's/^\/://' $PLATFORM_HINT_FILE + sed 's/^\/://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE +} + +searchPlatformHints() +{ + debugOut "Checking the environment variables specifed in the JVM spec files to find the JVM..." + DOT_JVM_FILE=$1 + preparePlatformHintFile "$DOT_JVM_FILE" + + if [ ! -f /tmp/tmpActvmFile ] ; then + touch /tmp/tmpActvmFile + fi + + envVarValue="" + + while read fileLine + do + eachLine=`echo $fileLine` + if [ ! -z "$eachLine" ] ; then + envVarValue=`env | grep $eachLine | cut -d "=" -f2` + if [ -x $envVarValue/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + elif [ -x $envVarValue/jre/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/jre/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/jre/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + fi + fi + done < $PLATFORM_HINT_FILE + + actvm=`cat /tmp/tmpActvmFile` + + if [ -f /tmp/tmpActvmFile ] ; then + rm -rf /tmp/tmpActvmFile + fi + + if [ -f "$PLATFORM_HINT_FILE" ] ; then + rm -f $PLATFORM_HINT_FILE + fi +} + +searchPathHints() +{ + writetab "$1" "$IATEMP/pathHint" "PATH_HINT:" + installerPath= + + if [ -f "$IATEMP/pathHint" ] ; then + debugOut "using path hints in the JVM file $1" + pathHintc=`wc -l "$IATEMP/pathHint" | awk '{ print $1 }'` + pathHintcc=1 + + while [ $pathHintcc -le $pathHintc ] ; do + pbc=`expr $pbc + 1` + pb + PathHint=`sed -n -e "${pathHintcc}p;s/^[ ]*//;s/[ ]*$//" "$IATEMP/pathHint"` + pathSep=`echo $PathHint | grep "^/" | wc -l` + char='.' + count=0 + i=1 + #if [[ "$PathHint" =~ "../" ]]; then + case "$PathHint" in + *../*) + seaLocPath=$lax_user_dir/sea_loc + while IFS='|' read -r LINE + do + installerPath=$LINE + break + done < $seaLocPath + len=`expr length $PathHint` + pathLength=`expr $len + 1` + while [ $i -le $len ] + do + cchar=`expr substr $PathHint $i 1` + if [ $char = $cchar ] + then + count=`expr $count + 1 ` + fi + i=`expr $i + 1` + done + if [ $count -gt 0 ] + then + newcount=`expr $count / 2` + mat='../' + res=${PathHint//$mat} + j=0 + + while [ $newcount -gt $j ] + do + val="/*" + installerPath=${installerPath%$val} + newcount=`expr $newcount - 1` + done + fi + if [ $count -gt $j ] + then + PathHint="$installerPath/$res" + fi + ;; + esac + #fi + IS_RELATIVE=0 + + if [ -f "$1.fr" ] ; then + rm -f "$1.fr" + fi + + debugOut "Checking whether the passed pathhint is a directory" + if [ -d "$PathHint" ] ; then + for x in $PathHint ; + do + if [ -x "$x/$JVM_EXE" ] ; then + echo "$x/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + if [ -x "$x/jre/$JVM_EXE" ] ; then + echo "$x/jre/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + done + fi + + find $PathHint/$JVM_EXE > "$1.fr.findcommand" 2>/dev/null + if [ $? -eq 0 ] ; then + if [ -f "$1.fr.findcommand" ] ; then + frc=`wc -l "$1.fr.findcommand" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr.findcommand"` + grep "$frl" "$1.fr.shellxpansion" 1>/dev/null 2>&1 + if [ $? -ne 0 ] ; then + echo "$frl" >> "$1.fr.shellxpansion" + fi + + frcc=`expr $frcc + 1` + done + fi + else + var_searchAndverifyJvm=2 + fi + + if [ -f "$1.fr.findcommand" ] ; then + rm -f "$1.fr.findcommand" + fi + + if [ -f "$1.fr.shellxpansion" ] ; then + mv "$1.fr.shellxpansion" "$1.fr" + rm -f "$1.fr.shellxpansion" + fi + + if [ -f "$1.fr" ] ; then + frc=`wc -l "$1.fr" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr"` + jvm_exe=`echo $JVM_EXE | sed 's/\//\\\\\//g'` + + # $1 is the *.jvm file and $frl is the resolved jvm path from the path hint taken one at a time for e.g. + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/bin/java + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/jre/bin/java + + VerifyJVM "$1" "$frl" + + debugOut " === verify=$var_verifyJVM" + if [ "$var_verifyJVM" = "0" ] ; then + debugOut " &&& $1" + J=`echo "$frl" | sed "s/${jvm_exe}//"` + J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + echo "JVM_HOME:$J" >> "$1" + RESOLVED_JVM="$1" + actvm="$J"/bin/java + if [ $IS_RELATIVE -eq 1 ] ; then + IS_JVM_TEMP=1 + DESTINATION_DIR=$MEDIA_DIR + fi + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $frl using the JVM file $1." + rm -f "$1.fr" + return + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $frl using the JVM file $1." + fi + frcc=`expr $frcc + 1` + done + else + debugOut "find result is empty for the pathhint=$PathHint" + fi + pathHintcc=`expr $pathHintcc + 1` + done + fi +} + +#function to search and verify a valid JVM as specified in the .jvm file +searchAndVerifyJVM() +{ + debugOut "Searching for a JVM using $1 If found, will verify" + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi + + JVM_EXE=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$1" 2>/dev/null` + JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` + + if [ -z "$JVM_EXE" ] ; then + return + else + var_searchAndverifyJvm=0 + fi + + #Search using PLATFORM_HINT section in the spec file + searchPlatformHints $1 + + #Search using PATH_HINT section in the spec file only if PLATFORM_HINT search doesn't yield any result + if [ -z "$actvm" ] ; then + debugOut "PLATFORM_HINT did not find any suitable JVM. Searching for JVM using PATH_HINT section" + searchPathHints $1 + fi +} + +func_ourJVMSearch() +{ + jvmSpecBuildJvmSpecTotalNum=$1 + jvmSpecPropFilePath=$2 + idx=0 + while [ $idx -lt $jvmSpecBuildJvmSpecTotalNum ] ; do + jvmSpecFile_1=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.$idx=" | cut -d "=" -f2` + jvmSpecFile=$INSTALLER_DATA_DIR/jvmspecs/$jvmSpecFile_1 + dotJvmFile=`echo $jvmSpecFile | $TR -cd "[:print:]"` + + if [ -f "$dotJvmFile" ] ; then + debugOut "JVM Spec file found!!" + searchAndVerifyJVM "$dotJvmFile" + + if [ $var_searchAndverifyJvm -eq 0 ]; then + debugOut "jvm found and verification passed for $dotJvmFile." + break + fi + else + debugOut "JVM Spec file not found!!" + fi + + idx=`expr $idx + 1` + done + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi +} + +func_existingJVMSearch() +{ + debugOut "Searching without JVM specs" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 + + # 1st inspect the lax.nl.current.vm. As long as it is in the + # valid vm list it takes precedence over everything else. + laxVMisValid="false" + # is the lax current vm is specifies + if [ ! -z "$abs_lax_nl_current_vm" -a -x "$abs_lax_nl_current_vm" ]; then + # inspect it + inspectVM "$abs_lax_nl_current_vm" + eval laxVMtype="$inspectedVMtype" + eval laxOldVMType="$inspectedOldVMtype" + + # when VM is specified using the lax.nl.current.vm property or the + # LAX_VM command-line option, just accept that VM, no validation is required + laxVMisValid="true" + fi + # if the lax current vm is valid use it + if [ "$laxVMisValid" = "true" ]; then + # dont overwrite the lax.nl.current.vm if this one works just fine + actvm="$abs_lax_nl_current_vm" + actvmType="$laxVMtype" + debugOut "* Using VM.....(lax.nl.current.vm)...... $actvm" + else + # other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done + fi +} + +func_existingJVMSearch_WithVMNoSpecFile() +{ + debugOut "Searching without JVM specs for With VM; if not found, use bundled VM" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 +# other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done +} + +func_extract_vm_pack() +{ + RESOURCE_PATH="$ZIPLOC/$RESOURCE_DIR/resource" + JRE_TARZ="$RESOURCE_PATH/vm.tar.Z" + JRE_TAR="$RESOURCE_PATH/vm.tar" + + # save the old directory and switch into the temp directory + sePwd=`pwd` + cd "$ZIPLOC" + # make the platform directory and switch into it + mkdir "$RESOURCE_DIR" + cd "$RESOURCE_DIR" + # make the resource directory + mkdir resource + # switch back to the previous directory + cd "$sePwd" + + # Extract the .vm file + TAR_CMD="" + GZIP_CMD="" + UNZIP_CMD="" + if [ -x /usr/bin/tar ] ; then + TAR_CMD="/usr/bin/tar" + elif [ -x /bin/tar ] ; then + TAR_CMD="/bin/tar" + elif [ -x /usr/sbin/tar] ; then + TAR_CMD="/usr/sbin/tar" + else + TAR_CMD="tar" + fi + + if [ -x /bin/gzip ] ; then + GZIP_CMD="/bin/gzip" + elif [ -x /usr/bin/gzip ] ; then + GZIP_CMD="/usr/bin/gzip" + elif [ -x /usr/sbin/gzip ] ; then + GZIP_CMD="/usr/sbin/gzip" + else + GZIP_CMD="gzip" + fi + + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + + cd "$RESOURCE_PATH" + unzip_success=`$UNZIP_CMD $1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Unzipping of VM pack $1 failed" + fi + exit $R_unzip + else + debugOut "Unzip done" + fi + + gzip_sucess=`$GZIP_CMD -d $JRE_TARZ` + R_gzip=$? + if [ $R_gzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Gzip failed" + fi + exit $R_gzip + else + debugOut "Gzip done" + fi + + untar_success=`$TAR_CMD xf $JRE_TAR` + R_untar=$? + if [ $R_untar -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "TAR failed" + echo "The included VM could not be unarchived (TAR). Please try to download" + echo "the installer again and make sure that you download using 'binary'" + echo "mode. Please do not attempt to install this currently downloaded copy." + fi + exit 15 + else + debugOut "TAR done" + fi + + chmod -R 755 jre > /dev/null 2>&1 + + javaDir=$RESOURCE_PATH/jre/bin/java + javaDir_Special=$RESOURCE_PATH/jre/jre/bin/java + + if [ -f "$javaDir" ] ; then + actvm=$javaDir + elif [ -f "$javaDir_Special" ] ; then + actvm=$javaDir_Special + fi + + cd "$sePwd" + + if [ $R_unzip -eq 0 -a $R_gzip -eq 0 -a $R_untar -eq 0 ] ; then + debugOut "Extracted the JVM pack $1 successfully!!" + fi +} +func_download_vm_pack() +{ + R_wget= + if [ -z "$1" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download URL empty. Returning...." + fi + return + fi + + if [ -x /usr/bin/wget ] ; then + WGET_CMD="/usr/bin/wget" + elif [ -x /usr/sbin/wget ] ; then + WGET_CMD="/usr/sbin/wget" + elif [ -x /usr/local/bin/wget ] ; then + WGET_CMD="/usr/local/bin/wget" + else + WGET_CMD="wget" + fi + + wget_success= + if [ ! -z "$WGET_CMD" ] ; then + if [ ! -z "$uimode" -a "$uimode" = "silent" ] ; then + wget_success=`$WGET_CMD --tries=3 --output-file="$IATEMP/downloadLog" --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + else + wget_success=`$WGET_CMD --tries=3 --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + fi + R_wget=$? + if [ $R_wget -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download of VM pack failed" + fi + #exit $R_wget + else + debugOut "Download of VM pack succeded" + fi + fi + return $R_wget +} + +func_md5Verification() +{ + R_md5= + #find the location of md5sum tool on the UNIX machine + MD5SUM_CMD="" + if [ -x /usr/bin/md5sum ] ; then + MD5SUM_CMD="/usr/bin/md5sum" + elif [ -x /usr/sbin/md5sum ] ; then + MD5SUM_CMD="usr/sbin/md5sum" + elif [ -x /usr/local/bin/md5sum ] ; then + MD5SUM_CMD="/usr/local/bin/md5sum" + else + MD5SUM_CMD="md5sum" + fi + + jvmSpecBuildWithoutVMDownloadUrl=$1 + jvmSpecBuildWithoutVMMD5ChecksumValue=$2 + + debugOut "Verifying the downloaded JVM with MD5 checksum specified" + downloadedJVMURL=`basename $jvmSpecBuildWithoutVMDownloadUrl` + downloadedJVM=$INSTALLER_DATA_DIR/$downloadedJVMURL + + md5_var=`$MD5SUM_CMD $downloadedJVM` + + if [ ! -z "$md5_var" ] ;then + md5_checksum_value=`echo $md5_var | awk '{print $1}'` + + if [ ! -z "$md5_checksum_value" ] ; then + if [ "$md5_checksum_value" = "$jvmSpecBuildWithoutVMMD5ChecksumValue" ] ; then + R_md5=0 + else + R_md5=1 + fi + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Warning!! Error in executing md5sum command on the downloaded JVM." + echo "Check if md5sum tool is available on your machine or if you have the required permissions to execute md5sum command" + fi + R_md5=1 + fi + + + return $R_md5 +} + +# +#-------------------------------------------------------------- +# if a VM was forced on the command line use it otherwise search +if [ "$lax_vm" = "LAX_VM" ]; then + # Using VM passed in as argument + debugOut "JVM specified using LAX_VM" + inspectVM "$lax_vm_value" + actvmType="$inspectedVMtype" + actvm="$lax_vm_value" + debugOut "* Using VM:.........(LAX_VM)............ $actvm" +else + #try to unzip the installer.zip to extract *.jvm and jvmspecs.properties files to the tmp directory + if [ $IS_INSTALLER ] ; then + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + unzip_success=`$UNZIP_CMD -d $INSTALLER_DATA_DIR $INSTALL_ZIP jvmspecs* > /dev/null 2>&1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + debugOut "Unzipping of installer.zip failed." + debugOut "Using the Default JVM Search" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + else + if [ -f "$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties" ] ; then + debugOut "Found jvmspecs.properties" + jvmSpecPropFilePath=$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties + jvmSpecBuildWithoutVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm=" | cut -d "=" -f2` + jvmSpecBuildOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.option=" | cut -d "=" -f2` + jvmSpecBuildWithVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm=" | cut -d "=" -f2` + jvmSpecBuildWithVMSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMNotFoundDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecTotalNum=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.total.num=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmDirectDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.direct.download.url=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.value=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.value=" | cut -d "=" -f2` + + if [ ! -z "$jvmSpecBuildOption" ] ; then + if [ $jvmSpecBuildOption = "withvm" ] ; then + if [ ! -z "$jvmSpecBuildWithVMSearchOption" ] ; then + case $jvmSpecBuildWithVMSearchOption in + 20) #20 = WITH_VM_SEARCH_FOR_VM_IF_NOT_FOUND_USE_BUNDLED + if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch_WithVMNoSpecFile "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + debugOut "JVM not found with or without spec file. Using bundled JVM" + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + fi + ;; + 21) #21 = WITH_VM_DONT_SEARCH_USE_BUNDLED + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + ;; + *) + DEFAULT=`getLocalizedString default` + printLocalizedString "$DEFAULT" "default" + ;; + esac + fi + elif [ $jvmSpecBuildOption = "withoutvm" ] ; then + debugOut "JVM Spec Build Option Specified Without VM" + if [ ! -z "$jvmSpecBuildWithoutVmSearchOption" ] ; then + case $jvmSpecBuildWithoutVmSearchOption in + 10) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + ;; + 11) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + func_download_vm_pack "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM1=`getLocalizedString downloadedVM1` + printLocalizedString "$DOWNLOADEDVM1" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + fi + + jreDownloadFile=`basename $jvmSpecBuildWithoutVMNotFoundDownloadUrl` + jreDownloadFileName=$INSTALLER_DATA_DIR/$jreDownloadFile + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC1=`getLocalizedString downloadLoc1` + printLocalizedString "$DOWNLOADLOC1" "Download location=$jreDownloadFileName" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" + R_md5Verification_1=$? + if [ $R_md5Verification_1 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + fi + ;; + 12) func_download_vm_pack "$jvmSpecBuildWithoutVmDirectDownloadUrl" #12 = WITHOUT_VM_DO_NOT_SEARCH_DOWNLOAD + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM2=`getLocalizedString downloadedVM2` + printLocalizedString "$DOWNLOADEDVM2" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVmDirectDownloadUrl" + fi + + jreDownloadFile_1=`basename $jvmSpecBuildWithoutVmDirectDownloadUrl` + jreDownloadFileName_1=$INSTALLER_DATA_DIR/$jreDownloadFile_1 + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC2=`getLocalizedString downloadLoc2` + printLocalizedString "$DOWNLOADLOC2" "Download location=$jreDownloadFileName_1" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVmDirectDownloadUrl" "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" + R_md5Verification_2=$? + if [ $R_md5Verification_2 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + ;; + *) + DEFCASE=`getLocalizedString defaultCase` + printLocalizedString "$DEFCASE" "default case" + ;; + esac + fi + fi + fi + else + debugOut "Could not detect JVM Search Policy. Exiting..." + exit; + fi + fi + else + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + #============================================================================================= +fi + +# If no VMs are found in path +if [ -z "$actvm" ] +then + echo "No Java virtual machine could be found from your PATH" + echo "environment variable. You must install a VM prior to" + echo "running this program." + + # Mikey [5/16/2000] -- If this was SEA'd then remove the temp directory + if [ "$IS_INSTALLER" = "true" ]; then + debugOut "Removing temporary installation directory: \"$lax_user_dir\"" + rm -rf "$lax_user_dir" + fi + + cd "$olddir" + exit +fi + +# write the current vm out to the environment properties +echo "lax.nl.current.vm=$actvm" >> $envPropertiesFile + +# set up a variable to esilty know if we are going to run 1.1 or 1.2 +# for setting up VM cmd line options later on +case "$actvmType" in + "JRE" | "JDK" | "JRE_J1" | "JDK_J1" ) + actvmVersion="1.1" + ;; + "R12" | "D12" | "JDK_J2" | "JRE_J2" | "OLDJAVA") + actvmVersion="1.2" + ;; + *) + actvmVersion="" + ;; +esac + +# +# end of finding VMs +########################################################################################## + +#################################################################################### +# Determining VM invocation options to use +# + +# +# Verification +# +if [ "$actvmVersion" = "1.1" ]; then + if [ "$verify" = "off" ]; then + options="$options -noverify" + else + if [ "$verify_mode" = "remote" ]; then + options="$options -verifyremote" + elif [ "$verify_mode" = "none" ]; then + options="$options -noverify" + elif [ "$verify_mode" = "all" ]; then + options="$options -verify" + fi + fi +fi + +verbo=${verbo:="none"} +if [ $verbo = "normal" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class" + fi +elif [ $verbo = "all" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class -verbose:gc" + fi +elif [ $verbo = "gc" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:gc" + fi +fi + +# +# Memory mgnt +# +gcxtnt=${gcxtnt:="none"} +if [ $gcxtnt = "min" ] +then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -noclassgc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xnoclassgc" + fi +fi + +gcthrd=${gcthrd:="none"} +if [ "$actvmVersion" = "1.1" ]; then + if [ $gcthrd = "off" ] + then + options="$options -noasyncgc" + fi +fi + + +nsmax=${nsmax:="none"} +if [ "$nsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ss$nsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xss$nsmax" + fi +fi + +jsmax=${jsmax:="none"} +if [ "$jsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -oss$jsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xoss$jsmax" + fi +fi + + +jhmax=${jhmax:="none"} +if [ "$jhmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -mx$jhmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xmx$jhmax" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Maximum Heap size to JVM options argument. + options="$options -Xmx$jhmax" + fi +fi + +jhinit=${jhinit:="none"} +if [ "$jhinit" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ms$jhinit" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xms$jhinit" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Initial Heap size to JVM options argument. + options="$options -Xms$jhinit" + fi +fi + +debug=${debug:-"off"} +if [ $debug != "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -debug" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xdebug" + fi +fi + +############################################################### +# JIT options +# Resetting java home and JIT compiler environment variables +# +jitOnOrOff=on; +# +# turn off according to VM type +# +if [ ! -z "$lax_nl_osname_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_osname_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_osname_J1_java_compiler +elif [ ! -z "$lax_nl_osname_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_osname_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_osname_JRE_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_osname_JDK_java_compiler +elif [ ! -z "$lax_nl_osname_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_ALL_java_compiler +# +elif [ ! -z "$lax_nl_unix_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_unix_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_unix_J1_java_compiler +elif [ ! -z "$lax_nl_unix_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_unix_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_unix_JRE_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_unix_JDK_java_compiler +elif [ ! -z "$lax_nl_unix_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_unix_ALL_java_compiler +# +elif [ ! -z "$lax_nl_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_J1_java_compiler +elif [ ! -z "$lax_nl_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_JRE_java_compiler +elif [ ! -z "$lax_nl_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_JDK_java_compiler +elif [ ! -z "$lax_nl_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_ALL_java_compiler +# +elif [ ! -z "$lax_nl_osname_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_java_compiler +elif [ ! -z "$lax_nl_java_compiler" ]; then + jitOnOrOff=$lax_nl_java_compiler +else + jitOnOrOff=on +fi + +# JIT is ON by default, so we only need to change its status +# the above else-if lists figures it should be OFF +if [ "$jitOnOrOff" = "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + case "$osName" in + *irix*) + jitinvoc="-nojit" + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + ;; + *hp-ux*|*hpux*) + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + jitinvoc="-nojit" + ;; + *solaris*|*sunos*) + jitinvoc="-Djava.compiler=" + ;; + *aix*) + JAVA_COMPILER=off + export JAVA_COMPILER + ;; + *freebsd*) + jitinvoc="-Djava.compiler=" + ;; + *linux*) + jitinvoc="-Djava.compiler=" + ;; + *rhapsody*|*macos*) + ;; + *compaq*|*dg*|*osf*) + jitinvoc="-nojit" + ;; + *) + debugOut "Unknown OS name (\"$osName\"). Cannot set JIT Options." + ;; + esac + elif [ "$actvmVersion" = "1.2" ]; then + jitinvoc="-Djava.compiler=NONE" + else + debugOut "Unknown VM version. Cannot set JIT Options." + fi +fi + +options="$jitinvoc $options" + +# set this variable to something so we're guaranteed a value +linux_LD_ASSUME_KERNEL_hack=0; + +# work around problem on RedHat Linux 7.1 IA-32 +# see Bug Id 4447270 at Sun JDC bug parade +if [ `cat /etc/redhat-release 2>/dev/null | grep "7\.1" | wc -l` = "1" ]; +then + if [ `uname -s` = "Linux" ]; + then + if [ `uname -m` != "ia64" ]; + then + case `uname -r` in + 2.[456]*) + linux_LD_ASSUME_KERNEL_hack=1 + ;; + esac + fi + fi +fi + +# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros +#if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then +# debugOut "checking for NPTL + JVM vulernability..." + #check libc to see if it was compiled with NPTL +# nptl="`strings /lib/libc.so.6 | grep -i nptl`" +# if [ "$nptl" ]; then +# debugOut "NPTL detected! checking for vulnerable JVM...."; + + # I have to set this before I check the JVM version, a-cuz + # the call will hang, if it -is- vulnerable! +# export LD_ASSUME_KERNEL=2.2.5 + +# $actvm -version > /dev/null 2> /dev/null +# if [ "$?" -eq "0" ]; then + +# eval `$actvm -version 2>&1 | $AWK ' +# BEGIN { +# vendor="Sun" +# } +# /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { +# gsub ("[\"]", "", $3) +# split ($3, ver, "[\._-]") +# printf "v_major=%s\nv_minor=%s\nv_patch=%s\n",ver[1],ver[2],ver[3] +# } +# /IBM/ { +# vendor="IBM" +# } +# END { +# printf "v_vendor=%s\n",vendor +# } +# ' ` + + # unset the LD_ASSUME_KERNEL in cause we don't need it +# unset LD_ASSUME_KERNEL + +# debugOut "major : ${v_major}" +# debugOut "minor : ${v_minor}" +# debugOut "patch : ${v_patch}" +# debugOut "vendor: ${v_vendor}" + + # check our rules for setting LD_ASSUME_KERNEL + # currently, we're only setting this for JVMS < 1.4 + # we can add more rules later, if we need to. +# if [ ${v_minor:-0} -lt 4 ]; then +# debugOut "Vulnerable JVM detected... implementing workaround" +# linux_LD_ASSUME_KERNEL_hack=1 +# else +# debugOut "Your JVM is OK! Congratulations!" +# fi +# else +# unset LD_ASSUME_KERNEL +# fi +# fi +#fi + +if [ $linux_LD_ASSUME_KERNEL_hack -eq 1 ]; then + LD_ASSUME_KERNEL=2.2.5 + export LD_ASSUME_KERNEL +fi + +################################################################################## +# LAUNCH VM + +# Passing in addtional stuff +options="$options $lax_nl_java_option_additional" + + +# Changing working directory +if [ ! "$lax_user_dir" = "" ] +then + if [ ! "$lax_user_dir" = "." ]; + then + cd "$lax_user_dir" + fi +else + cd "$olddir" +fi + +# Optional printout of all variable values for debugging purposes + +debugOut "" +debugOut "========= Virtual Machine Options ====================================" +debugOut "LAX properties incorporated............. OK." +debugOut "classpath............................... \"$lax_class_path\"" +debugOut "main class.............................. \"$lax_main_class\"" +debugOut ".lax file path.......................... \"$propfname\"" +debugOut "user directory.......................... \"$lax_user_dir\"" +debugOut "stdout to............................... \"$lax_stdout_redirect\"" +debugOut "sterr to................................ \"$lax_stderr_redirect\"" +debugOut "install directory....................... \"$lax_dir\"" +debugOut "JIT..................................... ${jittype:-"none"}" +debugOut "option (verify)......................... ${verify:-"none"}" +debugOut "option (verbosity)...................... ${verbo:-"none"}" +debugOut "option (garbage collection extent)...... ${gcxtnt:-"none"}" +debugOut "option (garbage collection thread)...... ${gcthrd:-"none"}" +debugOut "option (native stack max size).......... ${nsmax:-"none"}" +debugOut "option (java stack max size)............ ${jsmax:-"none"}" +debugOut "option (java heap max size)............. ${jhmax:-"none"}" +debugOut "option (java heap initial size)......... ${jhinit:-"none"}" +debugOut "option (lax.nl.java.option.additional).. ${lax_nl_java_option_additional:-"none"}" +resolveLink "$actvm" +actvm="$resolvedLink" + +actvmBinaryName=`basename "$actvm"` +# get dirname of binary +actvmHome=`dirname "$actvm"` +# is the dir the binary is in named "bin"? +if [ "`basename "$actvmHome"`" = "bin" ]; then + # if so then the dir above bin is the java home + JAVA_HOME=`dirname "$actvmHome"` +else + JAVA_HOME= +fi + +# Making $JAVA_HOME available to the application. +export JAVA_HOME + +# [RW] reset the locale that what we remember it to be (see use.sh line 22) +if [ "$IS_INSTALLER" = "true" ]; then + if [ "X$OLD_LANG" = X ] + then + # no locale was defined prior to running this program + unset LANG + else + # there was a locale: revert back to it + LANG="$OLD_LANG" + fi +fi + +########################################################################### +# tlb 2001-09-18 +# Moving the checking for the DISPLAY variable down here as there are +# options in the LAX that might override the need for checking the DISPLAY. +# Those options need loading before the check is performed. +# Also making sure we don't report an error when running on Mac OS X. + + +debugOut "" +debugOut "========= Display settings ===========================================" +# +# check the display +# +isRemoteDisplay="false" +if [ "$IS_INSTALLER" = "true" -a "$isConsole" = "false" -a "$isSilent" = "false" -a ! "$osName" = "darwin" ]; then + hostname=`hostname` + isRemoteDisplay="true" + for display in ${hostname}:0 ${hostname}:0.0 localhost:0 localhost:0.0 unix:0 unix:0.0 :0 :0.0 + do + if [ "$DISPLAY" = "$display" ]; then + isRemoteDisplay="false"; + fi + done +fi + +xDisp="local" +if [ "$isRemoteDisplay" = "true" ]; then + xDisp="remote" +fi +if [ -z "$DISPLAY" ]; then + xDisp="not set" +fi +debugOut "X display............................... $xDisp" + + +if [ -z "$DISPLAY" -a "$uimode" = "gui" ]; then + debugOut "WARNING: This shell's DISPLAY variable has not been set." + debugOut "This installer is configured to run in GUI and will probably" + debugOut "fail. Try running this installer in console or silent mode," + debugOut "or on another UNIX host which has the DISPLAY variable set," + debugOut "if the installer unexpectedly fails." +else + if [ "$isRemoteDisplay" = "true" -a "$uimode" = "gui" ]; then + debugOut "WARNING: The name of this host ($hostname) and the setting" + debugOut "of this shell's DISPLAY ($DISPLAY) variable do not match." + debugOut "If this launcher is being displayed to a Microsoft Windows desktop" + debugOut "through X Windows the Java Virtual Machine might abort. Try running" + debugOut "this installer locally on the target system or through X Windows to" + debugOut "another UNIX host if the installer unexpectedly fails." + fi +fi + +debugOut "UI mode................................. $uimode" + + +# COMMENT ME TO REMOVE OUTPUT FROM NORMAL INSTALLER EXECUTION +if [ "$IS_INSTALLER" = "true" -a "$uimode" != "silent" ]; then + echo "" + LAN_CON_MSG=`getLocalizedString launch` + printLocalizedString "$LAN_CON_MSG" "Launching installer..." + echo "" + [ -f "$CUSTOM" ] && rm -f "$CUSTOM" +fi + +# MMA - clear ENV to address a problem where the shell initialization +# file (.Xshrc) pointed to by ENV may overide the classpath we have just set, +# causing the app to fail. Drawback is that other environment variables set +# in the init file will not be available in the environment (they will be +# available as Java system properties, however). Comment out the two lines +# below to change this behavior. +ENV= +export ENV +# I split these up so they would be a bit clearer on the screen. + +#debugOut "" +debugOut "========= VM Command Line ============================================" +#debugOut "CLASSPATH=$lax_class_path" +#debugOut "\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs" +#debugOut "$command" +debugOut "options: $options" +# Here is where we actually run the app in Java: + +CLASSPATH="$lax_class_path:$CLASSPATH"; export CLASSPATH +debugOut "CLASSPATH:$CLASSPATH" + +if [ "`echo $actvm | grep 'jre$'`" ]; then + cpArg="-cp" +fi + +debugOut "" +unset POSIXLY_CORRECT +if [ $DO_NOT_FORK ] +then + debugOut "========= Executing JAVA =============================================" + # this is the original, it's still here for copy/paste purposes + #eval \"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs + + lax_class_path=\"$lax_class_path\" + if [ $cpArg ]; then + command="\"$actvm\" $options $cpArg \"$CLASSPATH\" $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + else + command="\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + fi + eval $command $cmdLineArgs +else + debugOut "========= Forking JAVA =============================================" + if [ $cpArg ]; then + exec "$actvm" $options $cpArg "$CLASSPATH" $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + else + DISTRO_NAME= + GUEST_OS_NAME= + if [ -f /etc/issue ] ; then + DISTRO_NAME=`cat /etc/issue` + fi + if [ -f /etc/centos-release ] ; then + DISTRO_NAME=`cat /etc/centos-release` + fi + if [ -f /etc/redhat-release ] ; then + DISTRO_NAME=`cat /etc/redhat-release` + fi + + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Ubuntu/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *not*found*|*install*bin* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/CentOS/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/SUSE/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Red Hat Enterprise Linux/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Fedora/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + + fi + else + if [ -f /etc/release ] ; then + DISTRO_NAME=`cat /etc/release` + fi + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Solaris/')" ] ; then + if [ -z "$(echo $DISTRO_NAME | awk '/SPARC/')" ] ; then + DO_NOT_FORK=1; + export DO_NOT_FORK + fi + JRE_SUCCESS=`exec "$actvm" 2>&1` + case "$JRE_SUCCESS" in + *cannot*execute*|*install*bin* ) + + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *Usage*) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + fi + + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + fi + + fi + + fi +fi +exitValue=$? +debugOut "========= JAVA Finished ==============================================" +debugOut "" + +# Change back to directory used priory to this script running. + +cd "$olddir" + +exit $exitValue diff --git a/.local/bin/IPMIView/TrapReceiver.lax b/.local/bin/IPMIView/TrapReceiver.lax new file mode 100755 index 0000000..c892743 --- /dev/null +++ b/.local/bin/IPMIView/TrapReceiver.lax @@ -0,0 +1,137 @@ +# LaunchAnywhere (tm) Executable Properties File - Flexera Software LLC + +# LAX.APPLICATION.NAME +# -------------------- +# the default name of this executable -- do not edit + +lax.application.name=TrapReceiver + + +# LAX.CLASS.PATH +# -------------- +# the Java classpath necessary to run this application +# Can be separated by colons (Mac OS/Unix) or semicolons (Windows) + +lax.class.path=iKVM.jar:IPMIView20.jar:TrapView.jar:JViewerX9.jar:lax.jar + + +# LAX.COMMAND.LINE.ARGS +# --------------------- +# what will be passed to the main method -- be sure to quote arguments with spaces in them + +lax.command.line.args=$CMD_LINE_ARGUMENTS$ + + +# LAX.DIR +# ------- +# path to directory holding LaunchAnywhere's native launcher + +lax.dir=./ + + +# LAX.MAIN.CLASS +# -------------- +# the class that contains the main method for the application + +lax.main.class=IPMIView20.trap.TrapView + + +# LAX.MAIN.METHOD +# --------------- +# the method in the main class that will be invoked + +lax.main.method=main + + +# LAX.NL.CURRENT.VM +# ----------------- +# the VM to use for the next launch + +lax.nl.current.vm=jre/bin/java + + +# LAX.NL.JAVA.LAUNCHER.MAIN.CLASS +# ------------------------------- +# main class of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.class=com.zerog.lax.LAX + + +# LAX.NL.JAVA.LAUNCHER.MAIN.METHOD +# -------------------------------- +# main method of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.method=main + + +# LAX.NL.JAVA.OPTION.JAVA.HEAP.SIZE.MAX +# ------------------------------------- +# Defines the maximum heap size in bytes for the installer that will be invoked. + +lax.nl.java.option.java.heap.size.max=536870912 + + +# LAX.NL.VALID.VM.LIST +# -------------------- +# Defines which VMs are valid for your project. +# If the native launcher cannot find the current vm, +# it will search for ones in this list + +lax.nl.valid.vm.list=1.7+ + + +# LAX.NL.WIN32.MICROSOFTVM.MIN.VERSION +# ------------------------------------ +# The minimum version of Microsoft's VM this application will run against + +lax.nl.win32.microsoftvm.min.version=2750 + + +# LAX.ROOT.INSTALL.DIR +# -------------------- +# path to the installdir magic folder + +lax.root.install.dir=./ + + +# LAX.STDERR.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stderr.redirect= + + +# LAX.STDIN.REDIRECT +# ------------------ +# leave blank for no input, "console" to read from the console window, +# and any path to a file to read from that file + +lax.stdin.redirect= + + +# LAX.STDOUT.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stdout.redirect= + + +# LAX.USER.DIR +# ------------ +# left blank, this property will cause the native launcher to not +# alter the platform default behavior for setting the user dir. +# To override this you may set this property to a relative or absolute path. +# Relative paths are relative to the launcher. + +lax.user.dir=. + + +# LAX.VERSION +# ----------- +# version of LaunchAnywhere that created this properties file + +lax.version=17.0 + + diff --git a/.local/bin/IPMIView/TrapView.jar b/.local/bin/IPMIView/TrapView.jar new file mode 100755 index 0000000..b5f306c Binary files /dev/null and b/.local/bin/IPMIView/TrapView.jar differ diff --git a/.local/bin/IPMIView/account.properties b/.local/bin/IPMIView/account.properties new file mode 100644 index 0000000..51c7057 --- /dev/null +++ b/.local/bin/IPMIView/account.properties @@ -0,0 +1,5 @@ +#MyTitle +#Sat May 31 22:29:03 PDT 2025 +Backup\ Server=d_mcknight,20910561cbbef2e88188aedf1f073c0d3f7c11647d737553e2d2d761cb091480 +Router=d_mcknight,72f799e88babfebe1d8700dd9156cdc3668f63d892dc71874af8f106dfc4a75f +Backup\ IPMI=d_mcknight,b192b43d5829ffedaaa62b6f3806c82fad27752c443ed30a987f59d8fb9cdb6f diff --git a/.local/bin/IPMIView/email.properties b/.local/bin/IPMIView/email.properties new file mode 100644 index 0000000..e69de29 diff --git a/.local/bin/IPMIView/iKVM b/.local/bin/IPMIView/iKVM new file mode 100755 index 0000000..58f6af9 --- /dev/null +++ b/.local/bin/IPMIView/iKVM @@ -0,0 +1,2828 @@ +#!/bin/sh +################################################################################################# +# +# LAXUNIX.SH - LaunchAnywhere (tm) version 17.0 +# +# (c) Copyright 2015 Flexera Software LLC. All rights reserved. +# +# To run this script you will need to have the following: +# 1) a Java VM installed (however, it will handle a lack of Java nicely). +# 2) a Java-style properties file having the same name as this script +# with the suffix .lax. If this script is appended to the +# self-extractor, it will look for the properties file in the +# directory specified by $seLaxPath; otherwise, it will look in +# the same directory that this script is in. +# 3) a Java program in the file "lax.jar". +# +# The .lax property file must contain at least the following properties: +# 1) lax.class.path classpath (do not include the environment variable $CLASSPATH ) +# 2) lax.nl.java.launcher.main.class (main class of LaunchAnywhere Executable) +# +################################################################################################# + +# +# Since USERENV is already set in the self-extractor, if its not set we know +# this is not an installer but a separate launcher. +# USERENV is just a flag passed from use.sh. +# +IS_INSTALLER='' +[ $USERENV ] && IS_INSTALLER=true + +# +# later on we might add things to the PATH, but we want to preserve the PATH +# order for which VMs are the first ones found. +# +VM_SEARCH_PATH="$PATH" + +case `uname -s` in +"SunOS") TR="/usr/xpg4/bin/tr" +;; +*) TR="/usr/bin/tr" +;; +esac + +#################################################################################### +# Set some constants +if [ "$1" = "LAX_VM" ]; then + lax_vm="LAX_VM" + lax_vm_value="$2" + shift 2 +else + lax_vm="" +fi +anyVMlist="JDK_J2 D12 JRE_J2 R12 JDK_J1 JRE_J1 JDK JRE ALL" + +#################################################################################### +#Specifying some global variables +IATEMP="/tmp" +DEBUG=0 +var_searchAndverifyJvm=2 #var_searchAndverifyJvm - jvm search&verify result; successful search&verify sets to zero; initializing to non-zero +var_verifyJVM=2 # verification of a JVM result. successful verification of searched JVM sets to zero; initializing to non-zero +pbc=1 +LOG=/tmp/ourlog +iaVV="true" +actvmType="" +actvm="" +PLATFORM_HINT_FILE=/tmp/tmpPlatformHintFile + + +#################################################################################### +# Format commandline args +# To overcome the problem of quoted args (with internal spaces) to the launcher +# is that they get "unquoted" or separated into discreet args when they are put +# on the cmdline for the application. This following block makes sure the stay intact +overrideDefaultUIMode="false" +ignoreMode="false"; +uimode="not set" +hasSeenI="false" +tmpArgs="" +origArgs=$@ +for arg in "$@" +do + if [ "$arg" != "" ]; then + tmpArgs="$tmpArgs \"$arg\"" + if [ "$arg" = "-i" -o "$arg" = "-I" ]; then + hasSeenI="true" + elif [ "$hasSeenI" = "true" ]; then + lowerArg=`echo $arg | $TR "[:upper:]" "[:lower:]"` + if [ "$lowerArg" = "awt" ]; then + uimode="awt" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "swing" ]; then + uimode="swing" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "gui" ]; then + uimode="gui" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "console" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "text" ]; then + uimode="console" + overrideDefaultUIMode="true" + elif [ "$lowerArg" = "silent" ]; then + uimode="silent" + overrideDefaultUIMode="true" + else + ignoreMode="true" + fi + fi + fi +done + +# JVM heap size option are no longer required, hence removing it from the command line arguments. +# *NOTE* :: This part can be done in the above code but still doing the same again. +tmpArgs="" +jvmOptPresent="false" +for arg in "$@" +do + if [ "$arg" != "-jvmxms" ] && [ "$arg" != "-jvmxmx" ] && [ "$jvmOptPresent" = "false" ]; then + tmpArgs="$tmpArgs \"$arg\"" + else + if [ "$jvmOptPresent" = "false" ]; then + jvmOptPresent="true" + else + jvmOptPresent="false" + fi + fi +done + +cmdLineArgs="$tmpArgs" +thisScript="$0" +# make sure thisScript is an abs path +case $thisScript in + /*) + ;; + *) + thisScript="`pwd`/$thisScript" + ;; +esac + +#################################################################################### +# +# WHere does the LAX_DEBUG output go? +# + +if [ "$LAX_DEBUG" = "file" ]; then + jx_log="`pwd`/jx.log" + rm -f "$jx_log" + touch "$jx_log" + if [ "$?" -gt "0" ]; then + jx_log_ok="false" + echo "Could not create $jx_log. Sending debug output to console." + else + jx_log_ok="true" + fi +fi + +debugOut() +{ + case "$LAX_DEBUG" in + "file" ) + if [ "$jx_log_ok" = "true" ]; then + echo "$1" >> "$jx_log" + else + echo "$1" + fi + ;; + "" ) + echo "$1" >> /dev/null + ;; + * ) + echo "$1" + ;; + esac +} + +#################################################################################### +# +# UNIX ENVIRONMENT configuration +# +debugOut "" +debugOut "========= Analyzing UNIX Environment =================================" + + +# Get os type , note that it is LOWER-CASED. Used here and later on +osName=`uname -s 2> /dev/null | $TR "[:upper:]" "[:lower:]" 2> /dev/null` +debugOut "Setting UNIX ($osName) flavor specifics." +vmScript=".java_wrapper" +case "$osName" in + *irix*) + cpuName="unknown" + ;; + *hp-ux*|*hpux*) + cpuName=`uname -m 2> /dev/null` + ;; + *solaris*|*sunos*) + cpuName=`uname -p 2> /dev/null` + THREADS_FLAG=""; export THREADS_FLAG + PATH=/usr/bin:$PATH; export PATH + ;; + *aix*) + cpuName="unknown" + ;; + *freebsd*) + cpuName=`uname -p 2> /dev/null` + ;; + *linux*) + cpuName=`uname -m 2> /dev/null` + ;; + # tlb 2001-09-18 updating to support Darwin + *rhapsody*|*darwin*) + cpuName=`uname -p 2> /dev/null` + vmScript=".java_command" + ;; + *compaq*|*dg*|*osf*) + cpuName="unknown" + ;; + *) + cpuName="unknown" + ;; +esac + + +if [ -x /bin/ls ]; then + lsCMD="/bin/ls" +elif [ -x /usr/bin/ls ]; then + lsCMD="/usr/bin/ls" +else + lsCMD="ls" +fi + +debugOut "Importing UNIX environment into LAX properties." + +#################################################################################### +# +# CREATE ENV.PROPERTIES and figure out if this is being exec'd from an installer +# +# We need POSIX awk. On some systems it's called awk, on others +# nawk. It's most frequently called nawk, so start with that. +# +debugOut "Checking for POSIX awk." + +AWK=nawk +( $AWK '{}' ) < /dev/null 2>&0 || AWK=awk + +if [ -z "$IATEMPDIR" ]; then + TMPDIR=/tmp +else + TMPDIR=$IATEMPDIR +fi + + +if [ -z "$envPropertiesFile" ] +then + if [ -d $TMPDIR ] + then + envPropertiesFile=$TMPDIR/env.properties.$$ + else + envPropertiesFile="$HOME/env.properties.$$" + fi +fi + +# +# Convert environment variables to LAX properties. The variables +# are also named with alternate case (all upper, all lower). +# +# E.g. +# export My_Env_Var="abc +# def" +# +# is converted to: +# lax.nl.env.exact_case.My_Env_Var=abc def +# lax.nl.env.MY_ENV_VAR=abc def +# lax.nl.env.my_env_var=abc def +# +# The second gsub() is used to escape backslashes so that when the properties +# file is read by the java.util.Properties object, there is not a problem +# with incorrectly interpreted escaped unicode. +# +# This code segment is written in POSIX awk for performance reasons. +# + +$AWK -v LAX_PREFIX=lax.nl.env. ' +END { + for (var in ENVIRON) + { + # get variable value + value = ENVIRON[var] + + # strip newlines + gsub(/\n/, " ", value) + + # convert one backslash to two + gsub(/\\/, "\\\\", value) + + # print as LAX property + print LAX_PREFIX "exact_case." var "=" value + print LAX_PREFIX tolower(var) "=" value + print LAX_PREFIX toupper(var) "=" value + } +}' < /dev/null > $envPropertiesFile + + + +#################################################################################### +# +# Tracing symbolic links to actual launcher location +# + +resolveLink() +{ + rl_linked="true" + rl_operand="$1" + rl_origDir="`dirname "$1"`" + + # bypass the whole thing if this isnt a link + rl_ls=`$lsCMD -l "$rl_operand"` + case "$rl_ls" in + *"->"*) + ;; + *) + resolvedLink="$rl_operand" + return + ;; + esac + + while [ "$rl_linked" = "true" ]; do + # if the operand is not of an abs path, get its abs path + case "$rl_operand" in + /*) + rl_origDir=`dirname "$rl_operand"` + ;; + \./*) + rl_origDir=`pwd` + rl_operand="$rl_origDir/$rl_operand" + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + # + # the prevPrev hack is here because .../java often points to .java_wrapper. + # at the end of the resolution rl_operand actually points to garbage + # signifying it is done resolving the link. So prev is actually .java_wrapper. + # but we want the one just before that, its the real vm starting poiint we want + # + rl_prevOperand="$rl_operand" + rl_ls=`$lsCMD -l "$rl_operand"` + # get the output ls into a list + set x $rl_ls + # get rid of x and file info from ls -l + shift 9 + + #is this a link? + case "$rl_ls" in + *"->"*) + rl_linked="true" + # is a link, shift past the "->" + rl_linker="" + while [ "$1" != "->" -a $# -gt 1 ]; do + rl_linker="$rl_linker $1" + shift + done + + if [ "$1" = "->" ]; then + shift + fi + ;; + *) + # not a link, the rest must be the targets name + rl_linked="false" + ;; + esac + # now grab what's left + rl_linkee="$*" + + # debugOut "Following link to LAX $rl_linker -> $rl_linkee" + + if [ "$rl_linked" = "true" -a "`basename "$rl_linkee"`" != "$vmScript" ]; then + # set to true incase the thing linked to is also a link and we can + # try again. The current think linked to now becomes the operand + rl_operand="$rl_linkee" + # if the linkee is not abs, make it abs relative to the linker + case "$rl_operand" in + /*) + ;; + *) + rl_operand="$rl_origDir/$rl_operand" + ;; + esac + else + # otherwise, this operand is not a link itself and we are done + rl_resolvedLink="$rl_prevOperand" + # however, do not resolve the last leg of a VMs linked scripts. this will + # disrupt their scripts. it is expecting a link to the .java* script + # let us believe it is not linked and continue on... + if [ "`basename "$rl_linkee"`" = "$vmScript" ]; then + rl_linked="false" + fi + fi + # make sure the path returned is absolute + case "$rl_operand" in + \.\/*) + rl_operand="`pwd`/$rl_operand" + ;; + esac + done + + # remove "/./" in paths, make it "/" + # i,e, "/a/b/./c" becomes "/a/b/c" + resolvedLink=`echo "$rl_resolvedLink" | sed 's,/\./,/,'` +} + +#################################################################################### +# +# FINDING THE LAX FILE +# +# If this is an installer, use $seLaxPath +# +debugOut "" +debugOut "========= Analyzing LAX ==============================================" +olddir=`pwd` +resolveLink "$thisScript" +absLauncherName="$resolvedLink" +cd "`dirname "$absLauncherName"`" +if [ "$IS_INSTALLER" != "" ]; then + if [ ! -z "$seLaxPath" ]; then + propfname="$seLaxPath" + else + # legacy for old self-extractors + propfname="$templaxpath" + fi +else + propfname="$absLauncherName.lax" +fi + + +if [ ! -r "$propfname" ]; then + debugOut "The file "$propfname" could" + debugOut "not be found, and the program cannot be run without it." + debugOut "Try reinstalling the program." + exit; +else + debugOut "LAX found............................ OK." +fi + + +#################################################################################### +# +# READING THE LAX FILE +# +OFS="$IFS" +# run prop file through sed calls that do: +# 1. transform first '=' on a line into a control-O +# 2. transform all other ='s to control-F +# 3. transform control-Os back to = +# this is to differentiate the lhs=rhs processing from confusing the first = from other +# = that might be part of the value. Later on those =-tranformed-to-control-Fs are +# transformed back to = signs. +set x `cat "$propfname" | sed -e 's~^\([^\=]*\)\=\(.*\)~\1\\2~g' -e 's~=~~g' -e 's~~=~g' | grep '='`; shift + +while test $# -gt 0; do + # line separator + case "x${1}x" in + *"="* ) BIFS=" "; ;; + * ) BIFS="" ; ;; + esac + # word separator + case "x${2}x" in + *"="* ) AIFS=""; ;; + * ) AIFS=""; ;; + esac + INPUT="$INPUT$BIFS$1$AIFS" + shift +done + +while test "x$INPUT" != "x"; do + set x $INPUT; shift + X="$1" + shift + INPUT="$@" + IFS="=$AIFS" + set x $X; shift + IFS="$OFS" + + lhs="${1}" + shift + rhs="$@" + + # transform non lhs=rhs delimiting = signs back from ^F to = + case "$rhs" in + **) + rhs=`echo $rhs | sed 's~~=~g'` + ;; + esac + + # assing the values + case $lhs in + lax.class.path*) + lax_class_path="$rhs" + ;; + lax.main.class*) + lax_main_class="$rhs" + ;; + lax.nl.java.launcher.main.class*) + lax_nl_java_launcher_main_class="$rhs" + ;; + lax.nl.current.vm*) + lax_nl_current_vm="$rhs" + ;; + lax.user.dir*) + lax_user_dir="$rhs" + lax_user_dir=`echo $lax_user_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.resource.dir*) + lax_resource_dir="$rhs" + lax_resource_dir=`echo $lax_resource_dir | sed 's;^[ ]*\(.*\)[ ]*$;\1;'` + ;; + lax.stdout.redirect*) + lax_stdout_redirect="$rhs" + ;; + lax.stderr.redirect*) + lax_stderr_redirect="$rhs" + ;; + lax.dir*) + lax_dir="$rhs" + ;; + lax.always.ask*) + lax_always_ask="$rhs" + ;; + lax.application.name*) + lax_application_name="$rhs" + ;; + lax.nl.message.vm.not.loaded*) + lax_nl_message_vm_loaded="$rhs" + ;; + lax.nl.valid.vm.list*) + # transform an blank value to "ALL" + case "$rhs" in + "") rhs="ALL"; ;; + esac + lax_nl_valid_vm_list="$rhs" + ;; + lax.nl.java.option.check.source*) + verify="$rhs" + ;; + lax.nl.java.option.verify.mode*) + verify_mode="$rhs" + ;; + lax.nl.java.option.verbose*) + verbo="$rhs" + ;; + lax.nl.java.option.garbage.collection.extent*) + gcxtnt="$rhs" + ;; + lax.nl.java.option.garbage.collection.background.thread*) + gcthrd="$rhs" + ;; + lax.nl.java.option.native.stack.size.max*) + nsmax="$rhs" + ;; + lax.nl.java.option.java.stack.size.max*) + jsmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.max*) + jhmax="$rhs" + ;; + lax.nl.java.option.java.heap.size.initial*) + jhinit="$rhs" + ;; + lax.nl.java.option.debugging*) + debug="$rhs" + ;; + lax.nl.$osName.$cpuName.java.compiler*) + lax_nl_osname_cpuname_java_compiler="$rhs" + ;; + lax.nl.$osName.java.compiler*) + lax_nl_osname_java_compiler="$rhs" + ;; + lax.nl.java.compiler*) + lax_nl_java_compiler="$rhs" + ;; + lax.nl.java.option.additional*) + lax_nl_java_option_additional="$rhs" + ;; + ###################################################### + # tlb 2001-09-18 + # Reading default UI mode for UNIX + lax.installer.unix.ui.default*) + lax_installer_unix_ui_default="$rhs" + ;; + ###################################################### + # JIT overrides + lax.nl.unix.JDK_J1.java.compiler*) + lax_nl_unix_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JDK_J2.java.compiler*) + lax_nl_unix_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J1.java.compiler*) + lax_nl_unix_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.unix.JRE_J2.java.compiler*) + lax_nl_unix_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.unix.J1.java.compiler*) + lax_nl_unix_J1_java_compiler="$rhs" + ;; + lax.nl.unix.J2.java.compiler*) + lax_nl_unix_J2_java_compiler="$rhs" + ;; + lax.nl.unix.JRE.java.compiler*) + lax_nl_unix_JRE_java_compiler="$rhs" + ;; + lax.nl.unix.JDK.java.compiler*) + lax_nl_unix_JDK_java_compiler="$rhs" + ;; + lax.nl.unix.ALL.java.compiler*) + lax_nl_unix_ALL_java_compiler="$rhs" + ;; + # + lax.nl.JDK_J1.java.compiler*) + lax_nl_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.JDK_J2.java.compiler*) + lax_nl_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.JRE_J1.java.compiler*) + lax_nl_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.JRE_J2.java.compiler*) + lax_nl_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.J1.java.compiler*) + lax_nl_J1_java_compiler="$rhs" + ;; + lax.nl.J2.java.compiler*) + lax_nl_J2_java_compiler="$rhs" + ;; + lax.nl.JRE.java.compiler*) + lax_nl_JRE_java_compiler="$rhs" + ;; + lax.nl.JDK.java.compiler*) + lax_nl_JDK_java_compiler="$rhs" + ;; + lax.nl.ALL.java.compiler*) + lax_nl_ALL_java_compiler="$rhs" + ;; + # + lax.nl.$osName.JDK_J1.java.compiler*) + lax_nl_osname_JDK_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK_J2.java.compiler*) + lax_nl_osname_JDK_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J1.java.compiler*) + lax_nl_osname_JRE_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE_J2.java.compiler*) + lax_nl_osname_JRE_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.J1.java.compiler*) + lax_nl_osname_J1_java_compiler="$rhs" + ;; + lax.nl.$osName.J2.java.compiler*) + lax_nl_osname_J2_java_compiler="$rhs" + ;; + lax.nl.$osName.JRE.java.compiler*) + lax_nl_osname_JRE_java_compiler="$rhs" + ;; + lax.nl.$osName.JDK.java.compiler*) + lax_nl_osname_JDK_java_compiler="$rhs" + ;; + lax.nl.$osName.ALL.java.compiler*) + lax_nl_osname_ALL_java_compiler="$rhs" + ;; + # + # JIT overrides + ###################################################### + esac +done + +debugOut "LAX properties read.................. OK." + +if [ "${lax_class_path:-""}" = "" ]; then + debugOut "The classpath specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi +if [ "${lax_nl_java_launcher_main_class:-""}" = "" ]; then + debugOut "The main class specified in the LAX properties file" + debugOut "is invalid. Try reinstalling the program." + exit; +fi + +if [ ! -z "$INSTALLER_OVERRIDE_VMLIST" ]; then + lax_nl_valid_vm_list="$INSTALLER_OVERRIDE_VMLIST" +fi + +################################################### +# tlb 2001-09-18 +# Making sure the default UNIX UI mode is honored +# if overrideDefaultUIMode is not set, which means no commandline +# options were entered at the commandline regarding +# ui mode, we will look to the LAX file to set a ui +# mode. If there is no such setting in the LAX, +# which would be an error, we default to GUI. + + if [ "$overrideDefaultUIMode" = "false" ]; then + if [ -n "$lax_installer_unix_ui_default" -a "$ignoreMode" = "false" ]; then + if [ $lax_installer_unix_ui_default = SILENT ]; then + isSilent="true" + cmdLineArgs="$cmdLineArgs -m SILENT" + uimode="silent" + elif [ $lax_installer_unix_ui_default = CONSOLE ]; then + isConsole="true" + cmdLineArgs="$cmdLineArgs -m CONSOLE" + uimode="console" + elif [ $lax_installer_unix_ui_default = GUI ]; then + isSilent="false" + isConsole="false" + uimode="gui" + fi + fi + fi + +#################################################################################### +# +# if user.dir != . then relative paths on the classpath will be broken. they +# are expecting the pwd to be '.' (meaning the install dir). If user.dir is +# any other directory, it will break +lax_class_path=`echo "$lax_class_path" | sed 's^;^:^g'` +absInstallDir=`dirname "$absLauncherName"` +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + \/*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + *|*\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="${absInstallDir}/$1" + else + tmp_lcp="$tmp_lcp:${absInstallDir}/$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + +# resolve $ENV_CLASSPATH$ +OFS="$IFS" +IFS=":" +set x $lax_class_path; shift +IFS="$OFS" +tmp_lcp="" +while test $# -gt 0; do + case "$1" in + *\$ENV_CLASSPATH\$*) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$CLASSPATH" + else + tmp_lcp="$tmp_lcp:$CLASSPATH" + fi + ;; + *) + if [ "$tmp_lcp" = "" ]; then + tmp_lcp="$1" + else + tmp_lcp="$tmp_lcp:$1" + fi + ;; + esac + shift +done +lax_class_path="$tmp_lcp" + + + +#################################################################################### +# just incase this the lax was written in DOS, be sure to make all ';' path +# separators into :'s or it will fubar the commandline +# +case "$smclp" in + *\;*) + oldIFS=$IFS + IFS=";" + for smclp_piece in $smclp; do + tmp_smclp="$tmp_smclp:$smclp_piece" + done + IFS=$oldIFS + clp=$tmp_smclp + ;; +esac + +################################################################## +# Setting stdout and stderr redirection +# +if [ "$LAX_DEBUG" = "file" -o "$LAX_DEBUG" = "" ]; then + echo "lax.stderr.redirect=$lax_stderr_redirect" >> $envPropertiesFile + echo "lax.stdout.redirect=$lax_stdout_redirect" >> $envPropertiesFile +else + echo "lax.stderr.redirect=console" >> $envPropertiesFile + echo "lax.stdout.redirect=console" >> $envPropertiesFile + lax_stdout_redirect="console" + lax_stderr_redirect="console" +fi + +lax_version="16.5" + +validVMtypeList="$lax_nl_valid_vm_list" + +# MMA 04.26.2000 +# +# Added check for validVMtypeList not being set to any value, in +# which case we should just set the valid list to all. +# +if [ "$validVMtypeList" = "ALL" -o "$validVMtypeList" = "" ]; then + validVMtypeList=$anyVMlist +fi + + +############################################################# +# PICK A VALID VM +# + +debugOut "" +debugOut "========= Finding VM =================================================" +debugOut "Valid VM types.......................... $validVMtypeList" + +# +# If the vm gets a relative path, we must make it absolute to the Install +# Directory tm 3/3 +# +if [ ! -z "${lax_nl_current_vm:-""}" ]; then + # tlb 2001-09-18 updating the LAX to support CD-ROM installations + # the variable `expr "$lax_nl_current_vm" : '\/'` will evaluate to 1 if the path starts with / + isAbsPath=`expr "$lax_nl_current_vm" : '\/'` + if [ "$isAbsPath" = "0" ]; then + # When running a CD-ROM installer lax_dir is not set, lax_dir is set by the SEA. + # We set it to the working directory if it is not set + if [ -z "$lax_dir" ]; then + lax_dir=`pwd` + abs_lax_nl_current_vm="${lax_dir}"/"${lax_nl_current_vm}" + else + abs_lax_nl_current_vm="${lax_dir}""${lax_nl_current_vm}" + fi + else + abs_lax_nl_current_vm="$lax_nl_current_vm" + fi + debugOut "Absolute LAX_VM path.................... $abs_lax_nl_current_vm" +fi + +#-------------------------------------------------------- +# getJavaVersion() +# +# $1: path to java executeable +# +# returns: +# $javaVersion +# +getJavaVersion() +{ + javaExe=$1 + javaVersion=` "${javaExe}" -version 2>&1 | $AWK ' +$3 ~ /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { + gsub ("[^0-9._]", "", $3) + print $3 +} + ' ` + unset javaExe +} +# +#-------------------------------------------------------- + +################################################################################# +# inspectVM() +# +# param: a pathname to a potential VM file, maybe a link +# +# returns: $inspectedVMpath the real path to the VM file +# returns: $inspectedVMtype the type of the VM +# returns: $inspectedOldVMtype ? +# +inspectVM() +{ + resolveLink "$1" + + inspectee="$resolvedLink" + inspecteeDir=`dirname "$inspectee"` + inspecteeName=`basename "$inspectee"` + + inspectedVMpath="$inspectee" + + # + # is it JDK1.1 , JDK1.2 or JRE1.2? + # + if [ "$inspecteeName" = "oldjava" ]; then + inspectedOldVMtype="OLDJAVA" + inspectedVMtype="OLDJAVA" + elif [ "$inspecteeName" = "java" ]; then + + ############################################################ + # Do some OS-specific quirky stuff + # + # MacOS X / Rhapsody + # + quirk_classesZip="" + if [ "$osName" = "rhapsody" ]; then + if [ "`expr "$inspecteeDIR" : ".*JavaVM.framework$"`" != "0" ]; then + quirk_classesZip="$file/Classes/classes.jar" + inspecteeDir="$inspecteeDir/Home/bin" + fi + fi + # END OS quirky stuff + ############################################################ + + # + # is it JDK1.1? + # + if [ -r "$inspecteeDir/../lib/classes.zip" -o -r "$quirk_classesZip" ]; then + inspectedOldVMtype="JDK" + inspectedVMtype="JDK_J1" + inspectedVMVersion="1.1" + else + # JDK1.2 + # + # is the "java" JRE1.2 or JDK1.2? + # + if [ -r "$inspecteeDir/../lib/dt.jar" ] + then + inspectedOldVMtype="D12" + inspectedVMtype="JDK_J2" + else + inspectedOldVMtype="R12" + inspectedVMtype="JRE_J2" + fi + # + # find version + # + if [ -r "$inspecteeDir/pack200" ]; + then + inspectedVMVersion="1.5" + elif [ -r "$inspecteeDir/client" -o -r "$inspecteeDir/server" -o -r "$inspecteeDir/../jre/bin/server" -o -r "$inspecteeDir/../jre/bin/server" ]; + then + inspectedVMVersion="1.4" + elif [ -r "$inspecteeDir/hotspot" -o -r "$inspecteeDir/../jre/bin/hotspot" ]; + then + inspectedVMVersion="1.3" + elif [ -r "$inspecteeDir/classic" ]; + then + inspectedVMVersion="1.2" + fi + getJavaVersion $inspectee + if [ -n "$javaVersion" ]; then + inspectedVMVersion=$javaVersion + fi + unset javaVersion + fi + elif [ "$inspecteeName" = "jre" ]; then + inspectedOldVMtype="JRE" + inspectedVMtype="JRE_J1" + inspectedVMVersion="1.1" + else + inspectedOldVMtype="UNKNOWN" + inspectedVMtype="UNKNOWN" + fi +} +### +### end inspectVM() +### +######################################################################################## + + +# massage valid VM list. Expand inclusive types (i.e. JRE = JRE_J1 and JRE_J2 ) +tmpValidVMlist="" +for type in $validVMtypeList; do + case $type in + J1) tmpValidVMlist="$tmpValidVMlist JRE_J1 JDK_J1" ;; + J2) tmpValidVMlist="$tmpValidVMlist JRE_J2 JDK_J2" ;; + JRE) tmpValidVMlist="$tmpValidVMlist JRE_J2 R12 JRE_J1" ;; + JDK) tmpValidVMlist="$tmpValidVMlist JDK_J2 D12 JDK_J1" ;; + *) tmpValidVMlist="$tmpValidVMlist $type " ;; + esac +done +validVMtypeList="$tmpValidVMlist" +debugOut "Expanded Valid VM types................. $validVMtypeList" + +#-------------------------------------------------------------- +# strictCheck +# checks that the version passed in matches the 'strict vm +# selection pattern' +# +# $1: vm version +# $2: pattern to match +# $3: vm type list +# +# returns: +# +# exit status: +# 0 on match, 1 otherwise + +strictCheck() +{ + vmVersion=$1 + pattern=$2 + types=$3 + eval `$AWK ' +BEGIN { + if ( ARGV[1] ~ /^(JDK|JRE)_/ ) { + printf ("version=%s\ntype=%s\n", substr(ARGV[1],5), substr(ARGV[1], 1, 3) ); + } else { + printf ("version=%s\ntype=%s\n",ARGV[1],"none"); + } +} + ' $pattern` + + $AWK ' +function asNum(s) { + return s+0; +} +function versionToNumber(verStr) { + split(verStr, verVec, "[._+*]"); + return (asNum(verVec[1]) * 1000000) + \ + (asNum(verVec[2]) * 10000) + \ + (asNum(verVec[3]) * 100) + \ + asNum(verVec[4]); +} +function subVersionOf(version, pattern) { + pString = sprintf("%0.8d", pattern); + vString = sprintf("%0.8d", version); + sub( "0+$", "", pString ); + return vString ~ "^" + pString; +} +BEGIN { + version = versionToNumber( ARGV[1] ); + pattern = versionToNumber( ARGV[2] ); + op = substr(ARGV[2],length(ARGV[2]) ); + if (op=="+") success = version >= pattern; + else if (op=="*") success = subVersionOf(version, pattern); + else success = version == pattern; + if (success) exit(0); + exit(1); +} + ' "$vmVersion" "$version" + success=$? + if [ $success = 0 ]; then + case "none $types" in + *$type*) + debugOut "checking: \"$vmVersion\" against \"$pattern\": passed" + success=0 + ;; + *) + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong type)" + success=1 + ;; + esac + else + debugOut "checking: \"$vmVersion\" against \"$pattern\": failed (wrong version)" + fi + return $success +} + +#--------------------------------------------------------------- +writetab() +{ + awk ' BEGIN { processingTag=0 } + $0 == "/:" { if (beginprocessingTag == 1) beginprocessingTag=0 ; next } + $0 == tag { beginprocessingTag=1; next } + { if (beginprocessingTag == 1) { print $0 >> tab; next } } + END { } ' tab="$2" tag="$3" "$1" +} + +pbclr() +{ + [ -z "$SILENT" ] && { + awk ' END { + printf("%c",13); + printf("%s"," "); + i=length(pbmesg); + for (k=1 ; k <= i; k++ ) printf("%c",32); + }' pbmesg="$pbmesg" /dev/null` + if [ $alive != "0" ] ; then + sleep 1 + ctr=`expr $ctr + 1` + else + return + fi + done + foo=`kill -9 $1 > /dev/null 2>&1` +} + +VerifyJVM() +{ + pbclr + pbmesg="Verifying JVM" + pb + + [ ! -f "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" ] + awk ' BEGIN { begin=0; i=1 } + $0 == "/:" { if (begin == 1) begin=0 ; next; } + $0 == tag { begin=1; next; } + { if (begin== 1) { item[i]=$0; i++; next; } } + END { for (k=1; k < i; k++) print item[k] >> tab; } ' tab="$IATEMP/sp" tag="JVM_PROPERTIES:" "$1" 2>/dev/null + if [ -f "$IATEMP/sp" ] ; then + + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo "$spl" | sed 's/\"//g'` + systemprops=`awk 'END { i=index(spl,"="); s=substr(spl,1,i-1); ss=sprintf("%s %s", sp, s); print ss; } ' spl="$spl" sp="$systemprops" /dev/null` + spcc=`expr $spcc + 1` + done + jvm_classpath= + cp_switch=`awk 'BEGIN{ FS=":"} $1 == tag { print $2; exit; }' tag=CLASSPATH $1` + cp_switch=`echo "$cp_switch" | sed 's/\"//g'` + jvm_classpath=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_CLASSPATH $1` + + debugOut "---" + + if [ -z "$jvm_classpath" ] ; then + debugOut "Verifying1... $2 $cp_switch $INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + else + jb=`awk 'BEGIN { FS=":" } $1 == tag { i=index($0,":"); s=substr($0,i+1); print s; exit; }' tag=JVM_EXE $1 2>/dev/null` + jb=`echo "$jb" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + jb=`echo "$jb" | sed 's/\//\\\\\//g'` + JVM_HOME=`echo "$2" | sed "s/${jb}//"` + eval jvm_classpath="$jvm_classpath" + debugOut "Verifying2... $2 $cp_switch $jvm_classpath:$INSTALLER_DATA_DIR/jvmspecs/Verify.jar Verify $systemprops" + eval "\"$2\"" $cp_switch "$jvm_classpath":"$INSTALLER_DATA_DIR/jvmspecs/Verify.jar" Verify $systemprops 1>"$IATEMP/jvmout" 2>/dev/null& + bgpid=$! + Timer $bgpid& + wait $bgpid 1>/dev/null 2>&1 + JVM_HOME= + fi + + if [ -f "$IATEMP/jvmout" ] ; then + spc=`wc -l "$IATEMP/sp" | awk '{ print $1 }'` + spcc=1 + systemprops= + while [ $spcc -le $spc ] ; do + spl=`sed -n -e "${spcc}p" "$IATEMP/sp"` + spl=`echo $spl | sed 's/\"//g'` + jvmfilevalue=`awk 'END { i=index(spl,"="); s=substr(spl,i+1); print s } ' spl="$spl" sp="$systemprops" /dev/null` + jvmoutc=`expr $spcc + 1` + jvmout=`sed -n -e "${jvmoutc}p" "$IATEMP/jvmout"` + + var_verifyJVM=`awk ' END { + exactMatch=1 + var_verifyJVM=2 + len = length(jvmfilevalue) + for (k = len ; k >len-3 ; k--) { + char=substr(jvmfilevalue, k, 1); + s = sprintf("%s%s", s,char); + } + if (length(s) == length("...")) { + if ( index(s, "...") == 1) { + exactMatch=0 + } + } + if (exactMatch == 1) { + if ( (length(jvmfilevalue) == length(jvmout)) && (index(jvmfilevalue, jvmout) == 1) ) var_verifyJVM=0 + } else { + jvmfilevalue_prefix=substr(jvmfilevalue, 1, len-3) + if (index(jvmout,jvmfilevalue_prefix) == 1 ) var_verifyJVM=0 + } + if (length(iaVV) > 0) { + printf("jvm system property specified in jvm file=%s\n",jvmfilevalue) >> ilog + printf("jvm system property from running Verify diagnostics on the JVM=%s\n",jvmout) >> ilog + if (var_verifyJVM == 0) { + if (exactMatch == 1) { + print "exact match of system property succeeded" >> ilog + } else { + print "non-exact match of system property succeeded" >> ilog + } + } else { + if (exactMatch == 1) { + print "exact match of system property failed" >> ilog + } + else { + print "non-exact match of system property failed" >> ilog + } + } + } + print var_verifyJVM + } ' jvmout="$jvmout" jvmfilevalue="$jvmfilevalue" iaVV="$iaVV" ilog="$LOG" /dev/null` + if [ "$var_verifyJVM" != "0" ] ; then + break + fi + spcc=`expr $spcc + 1` + done + else + debugOut "$IATEMP/jvmout does not exist. JVM Verification process may have failed." + fi + else + debugOut "system properties are not specified in "$1"" + fi + rm -f "$IATEMP/sp" + rm -f "$IATEMP/jvmout" +} + +preparePlatformHintFile() +{ + JVM_FILE=$1 + + while read fileLine + do + eachLine=`echo $fileLine` + if [ "$eachLine" = "PLATFORM_HINT:" ] ; then + flag=0 + fi + + if [ "$flag" = 0 ] ; then + echo $eachLine >> $PLATFORM_HINT_FILE + fi + + if [ "$eachLine" = "/:" ] ; then + flag=1 + fi + + done < $JVM_FILE + + #sed -i 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE + sed 's/^PLATFORM_HINT://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE + #sed -i 's/^\/://' $PLATFORM_HINT_FILE + sed 's/^\/://' $PLATFORM_HINT_FILE > $PLATFORM_HINT_FILE.tmp + mv $PLATFORM_HINT_FILE.tmp $PLATFORM_HINT_FILE +} + +searchPlatformHints() +{ + debugOut "Checking the environment variables specifed in the JVM spec files to find the JVM..." + DOT_JVM_FILE=$1 + preparePlatformHintFile "$DOT_JVM_FILE" + + if [ ! -f /tmp/tmpActvmFile ] ; then + touch /tmp/tmpActvmFile + fi + + envVarValue="" + + while read fileLine + do + eachLine=`echo $fileLine` + if [ ! -z "$eachLine" ] ; then + envVarValue=`env | grep $eachLine | cut -d "=" -f2` + if [ -x $envVarValue/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + elif [ -x $envVarValue/jre/$JVM_EXE ] ; then + VerifyJVM "$DOT_JVM_FILE" "$envVarValue/jre/$JVM_EXE" + if [ "$var_verifyJVM" = "0" ] ; then + actvm="$envVarValue/jre/$JVM_EXE" + echo $actvm > /tmp/tmpActvmFile + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + break + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $envVarValue/jre/$JVM_EXE using JVM file $DOT_JVM_FILE using PLATFORM_HINT section" + fi + fi + fi + done < $PLATFORM_HINT_FILE + + actvm=`cat /tmp/tmpActvmFile` + + if [ -f /tmp/tmpActvmFile ] ; then + rm -rf /tmp/tmpActvmFile + fi + + if [ -f "$PLATFORM_HINT_FILE" ] ; then + rm -f $PLATFORM_HINT_FILE + fi +} + +searchPathHints() +{ + writetab "$1" "$IATEMP/pathHint" "PATH_HINT:" + installerPath= + + if [ -f "$IATEMP/pathHint" ] ; then + debugOut "using path hints in the JVM file $1" + pathHintc=`wc -l "$IATEMP/pathHint" | awk '{ print $1 }'` + pathHintcc=1 + + while [ $pathHintcc -le $pathHintc ] ; do + pbc=`expr $pbc + 1` + pb + PathHint=`sed -n -e "${pathHintcc}p;s/^[ ]*//;s/[ ]*$//" "$IATEMP/pathHint"` + pathSep=`echo $PathHint | grep "^/" | wc -l` + char='.' + count=0 + i=1 + #if [[ "$PathHint" =~ "../" ]]; then + case "$PathHint" in + *../*) + seaLocPath=$lax_user_dir/sea_loc + while IFS='|' read -r LINE + do + installerPath=$LINE + break + done < $seaLocPath + len=`expr length $PathHint` + pathLength=`expr $len + 1` + while [ $i -le $len ] + do + cchar=`expr substr $PathHint $i 1` + if [ $char = $cchar ] + then + count=`expr $count + 1 ` + fi + i=`expr $i + 1` + done + if [ $count -gt 0 ] + then + newcount=`expr $count / 2` + mat='../' + res=${PathHint//$mat} + j=0 + + while [ $newcount -gt $j ] + do + val="/*" + installerPath=${installerPath%$val} + newcount=`expr $newcount - 1` + done + fi + if [ $count -gt $j ] + then + PathHint="$installerPath/$res" + fi + ;; + esac + #fi + IS_RELATIVE=0 + + if [ -f "$1.fr" ] ; then + rm -f "$1.fr" + fi + + debugOut "Checking whether the passed pathhint is a directory" + if [ -d "$PathHint" ] ; then + for x in $PathHint ; + do + if [ -x "$x/$JVM_EXE" ] ; then + echo "$x/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + if [ -x "$x/jre/$JVM_EXE" ] ; then + echo "$x/jre/$JVM_EXE" >> "$1.fr.shellxpansion" + else + var_searchAndverifyJvm=2 + fi + done + fi + + find $PathHint/$JVM_EXE > "$1.fr.findcommand" 2>/dev/null + if [ $? -eq 0 ] ; then + if [ -f "$1.fr.findcommand" ] ; then + frc=`wc -l "$1.fr.findcommand" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr.findcommand"` + grep "$frl" "$1.fr.shellxpansion" 1>/dev/null 2>&1 + if [ $? -ne 0 ] ; then + echo "$frl" >> "$1.fr.shellxpansion" + fi + + frcc=`expr $frcc + 1` + done + fi + else + var_searchAndverifyJvm=2 + fi + + if [ -f "$1.fr.findcommand" ] ; then + rm -f "$1.fr.findcommand" + fi + + if [ -f "$1.fr.shellxpansion" ] ; then + mv "$1.fr.shellxpansion" "$1.fr" + rm -f "$1.fr.shellxpansion" + fi + + if [ -f "$1.fr" ] ; then + frc=`wc -l "$1.fr" | awk '{ print $1 }'` + frcc=1 + while [ $frcc -le $frc ] ; do + frl=`sed -n -e "${frcc}p" "$1.fr"` + jvm_exe=`echo $JVM_EXE | sed 's/\//\\\\\//g'` + + # $1 is the *.jvm file and $frl is the resolved jvm path from the path hint taken one at a time for e.g. + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/bin/java + # params to verify jvmspecs/ibm_aix_15x.jvm /usr/java14/jre/bin/java + + VerifyJVM "$1" "$frl" + + debugOut " === verify=$var_verifyJVM" + if [ "$var_verifyJVM" = "0" ] ; then + debugOut " &&& $1" + J=`echo "$frl" | sed "s/${jvm_exe}//"` + J=`echo "$J" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//'` + echo "JVM_HOME:$J" >> "$1" + RESOLVED_JVM="$1" + actvm="$J"/bin/java + if [ $IS_RELATIVE -eq 1 ] ; then + IS_JVM_TEMP=1 + DESTINATION_DIR=$MEDIA_DIR + fi + var_searchAndverify=0 + var_searchAndverifyJvm=0 + debugOut "Verification passed for $frl using the JVM file $1." + rm -f "$1.fr" + return + else + var_searchAndverifyJvm=2 + debugOut "Verification failed for $frl using the JVM file $1." + fi + frcc=`expr $frcc + 1` + done + else + debugOut "find result is empty for the pathhint=$PathHint" + fi + pathHintcc=`expr $pathHintcc + 1` + done + fi +} + +#function to search and verify a valid JVM as specified in the .jvm file +searchAndVerifyJVM() +{ + debugOut "Searching for a JVM using $1 If found, will verify" + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi + + JVM_EXE=`awk ' BEGIN { FS=":" } /^JVM_EXE/ { print $2; exit }' "$1" 2>/dev/null` + JVM_EXE=`echo "$JVM_EXE" | sed 's/^[ ]*//;s/[ ]*$//;s/^[ ]*//;s/[ ]*$//;s/\"//g'` + + if [ -z "$JVM_EXE" ] ; then + return + else + var_searchAndverifyJvm=0 + fi + + #Search using PLATFORM_HINT section in the spec file + searchPlatformHints $1 + + #Search using PATH_HINT section in the spec file only if PLATFORM_HINT search doesn't yield any result + if [ -z "$actvm" ] ; then + debugOut "PLATFORM_HINT did not find any suitable JVM. Searching for JVM using PATH_HINT section" + searchPathHints $1 + fi +} + +func_ourJVMSearch() +{ + jvmSpecBuildJvmSpecTotalNum=$1 + jvmSpecPropFilePath=$2 + idx=0 + while [ $idx -lt $jvmSpecBuildJvmSpecTotalNum ] ; do + jvmSpecFile_1=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.$idx=" | cut -d "=" -f2` + jvmSpecFile=$INSTALLER_DATA_DIR/jvmspecs/$jvmSpecFile_1 + dotJvmFile=`echo $jvmSpecFile | $TR -cd "[:print:]"` + + if [ -f "$dotJvmFile" ] ; then + debugOut "JVM Spec file found!!" + searchAndVerifyJVM "$dotJvmFile" + + if [ $var_searchAndverifyJvm -eq 0 ]; then + debugOut "jvm found and verification passed for $dotJvmFile." + break + fi + else + debugOut "JVM Spec file not found!!" + fi + + idx=`expr $idx + 1` + done + + if [ -f "$IATEMP/pathHint" ] ; then + rm -f "$IATEMP/pathHint" + fi +} + +func_existingJVMSearch() +{ + debugOut "Searching without JVM specs" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 + + # 1st inspect the lax.nl.current.vm. As long as it is in the + # valid vm list it takes precedence over everything else. + laxVMisValid="false" + # is the lax current vm is specifies + if [ ! -z "$abs_lax_nl_current_vm" -a -x "$abs_lax_nl_current_vm" ]; then + # inspect it + inspectVM "$abs_lax_nl_current_vm" + eval laxVMtype="$inspectedVMtype" + eval laxOldVMType="$inspectedOldVMtype" + + # when VM is specified using the lax.nl.current.vm property or the + # LAX_VM command-line option, just accept that VM, no validation is required + laxVMisValid="true" + fi + # if the lax current vm is valid use it + if [ "$laxVMisValid" = "true" ]; then + # dont overwrite the lax.nl.current.vm if this one works just fine + actvm="$abs_lax_nl_current_vm" + actvmType="$laxVMtype" + debugOut "* Using VM.....(lax.nl.current.vm)...... $actvm" + else + # other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done + fi +} + +func_existingJVMSearch_WithVMNoSpecFile() +{ + debugOut "Searching without JVM specs for With VM; if not found, use bundled VM" + abs_lax_nl_current_vm=$1 + inspectedVMtype=$2 + inspectedOldVMtype=$3 + VM_SEARCH_PATH=$4 + IFS=$5 + inspectedVMpath=$6 + inspectedVMVersion=$7 + validVMtypeList=$8 +# other wise search the path + debugOut "WARNING! No valid lax.nl.current.vm available." + + # sift through the path to look for VMs + + # unique the PATH to limit the amount of work; see bug #6285. + debugOut "$VM_SEARCH_PATH" + uniquedPath=`echo $VM_SEARCH_PATH | $TR ':' '\012'` + + vmNumber=0; + OFS="$IFS" + IFS=":" + set x $uniquedPath; shift + IFS="$OFS" + debugOut "Searching for VMs in PATH:" + for pathDir in $*; do + debugOut "Looking in:............................. $pathDir" + # For each type of binary vm name + for binaryName in java jre oldjava; do + + vmPath="$pathDir/$binaryName" + + # if the binary exists, is executable and is not a directory... + if [ -x "$vmPath" -a \( ! -d "$vmPath" \) ]; then + debugOut " Found VM:............................. $vmPath" + inspectVM "$vmPath" + # set up a Bourne-style array of VM props using var1, var2, etc... + eval vmBinary$vmNumber="$inspectedVMpath" + eval vmType$vmNumber="$inspectedVMtype" + eval oldVMtype$vmNumber="$inspectedOldVMtype" + eval vmVersion$vmNumber="$inspectedVMVersion" + vmNumber=`expr ${vmNumber:-0} + 1` + debugOut " Version:............................. $inspectedVMVersion" + fi + done + done + + ######################################### + # VERIFY VMS against valid types + # + actvmType="" + vmHighNumber="$vmNumber" + + # for each type of valid VM + for validType in $validVMtypeList; do + vmNumber="0"; + + # run through the list of VMs found + while [ "$vmNumber" -lt $vmHighNumber ]; do + eval type="$"vmType$vmNumber"" + eval oldType="$"oldVMtype$vmNumber"" + eval bin="$"vmBinary$vmNumber"" + eval version="$"vmVersion$vmNumber"" + + # if the type of this VM is of '$type' or '$oldType' + # make it the actual vm (actvm) to use + case "${type} ${oldType}" in + *${validType}*) + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + ;; + esac + if strictCheck "$version" "$validType" "$type"; then + actvm="$bin" + actvmType="$type" + debugOut "* Using VM:............................. $actvm" + break 2 + fi + vmNumber=`expr ${vmNumber:-0} + 1` + done + done +} + +func_extract_vm_pack() +{ + RESOURCE_PATH="$ZIPLOC/$RESOURCE_DIR/resource" + JRE_TARZ="$RESOURCE_PATH/vm.tar.Z" + JRE_TAR="$RESOURCE_PATH/vm.tar" + + # save the old directory and switch into the temp directory + sePwd=`pwd` + cd "$ZIPLOC" + # make the platform directory and switch into it + mkdir "$RESOURCE_DIR" + cd "$RESOURCE_DIR" + # make the resource directory + mkdir resource + # switch back to the previous directory + cd "$sePwd" + + # Extract the .vm file + TAR_CMD="" + GZIP_CMD="" + UNZIP_CMD="" + if [ -x /usr/bin/tar ] ; then + TAR_CMD="/usr/bin/tar" + elif [ -x /bin/tar ] ; then + TAR_CMD="/bin/tar" + elif [ -x /usr/sbin/tar] ; then + TAR_CMD="/usr/sbin/tar" + else + TAR_CMD="tar" + fi + + if [ -x /bin/gzip ] ; then + GZIP_CMD="/bin/gzip" + elif [ -x /usr/bin/gzip ] ; then + GZIP_CMD="/usr/bin/gzip" + elif [ -x /usr/sbin/gzip ] ; then + GZIP_CMD="/usr/sbin/gzip" + else + GZIP_CMD="gzip" + fi + + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + + cd "$RESOURCE_PATH" + unzip_success=`$UNZIP_CMD $1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Unzipping of VM pack $1 failed" + fi + exit $R_unzip + else + debugOut "Unzip done" + fi + + gzip_sucess=`$GZIP_CMD -d $JRE_TARZ` + R_gzip=$? + if [ $R_gzip -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Gzip failed" + fi + exit $R_gzip + else + debugOut "Gzip done" + fi + + untar_success=`$TAR_CMD xf $JRE_TAR` + R_untar=$? + if [ $R_untar -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "TAR failed" + echo "The included VM could not be unarchived (TAR). Please try to download" + echo "the installer again and make sure that you download using 'binary'" + echo "mode. Please do not attempt to install this currently downloaded copy." + fi + exit 15 + else + debugOut "TAR done" + fi + + chmod -R 755 jre > /dev/null 2>&1 + + javaDir=$RESOURCE_PATH/jre/bin/java + javaDir_Special=$RESOURCE_PATH/jre/jre/bin/java + + if [ -f "$javaDir" ] ; then + actvm=$javaDir + elif [ -f "$javaDir_Special" ] ; then + actvm=$javaDir_Special + fi + + cd "$sePwd" + + if [ $R_unzip -eq 0 -a $R_gzip -eq 0 -a $R_untar -eq 0 ] ; then + debugOut "Extracted the JVM pack $1 successfully!!" + fi +} +func_download_vm_pack() +{ + R_wget= + if [ -z "$1" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download URL empty. Returning...." + fi + return + fi + + if [ -x /usr/bin/wget ] ; then + WGET_CMD="/usr/bin/wget" + elif [ -x /usr/sbin/wget ] ; then + WGET_CMD="/usr/sbin/wget" + elif [ -x /usr/local/bin/wget ] ; then + WGET_CMD="/usr/local/bin/wget" + else + WGET_CMD="wget" + fi + + wget_success= + if [ ! -z "$WGET_CMD" ] ; then + if [ ! -z "$uimode" -a "$uimode" = "silent" ] ; then + wget_success=`$WGET_CMD --tries=3 --output-file="$IATEMP/downloadLog" --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + else + wget_success=`$WGET_CMD --tries=3 --directory-prefix="$INSTALLER_DATA_DIR" "$1"` + fi + R_wget=$? + if [ $R_wget -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Download of VM pack failed" + fi + #exit $R_wget + else + debugOut "Download of VM pack succeded" + fi + fi + return $R_wget +} + +func_md5Verification() +{ + R_md5= + #find the location of md5sum tool on the UNIX machine + MD5SUM_CMD="" + if [ -x /usr/bin/md5sum ] ; then + MD5SUM_CMD="/usr/bin/md5sum" + elif [ -x /usr/sbin/md5sum ] ; then + MD5SUM_CMD="usr/sbin/md5sum" + elif [ -x /usr/local/bin/md5sum ] ; then + MD5SUM_CMD="/usr/local/bin/md5sum" + else + MD5SUM_CMD="md5sum" + fi + + jvmSpecBuildWithoutVMDownloadUrl=$1 + jvmSpecBuildWithoutVMMD5ChecksumValue=$2 + + debugOut "Verifying the downloaded JVM with MD5 checksum specified" + downloadedJVMURL=`basename $jvmSpecBuildWithoutVMDownloadUrl` + downloadedJVM=$INSTALLER_DATA_DIR/$downloadedJVMURL + + md5_var=`$MD5SUM_CMD $downloadedJVM` + + if [ ! -z "$md5_var" ] ;then + md5_checksum_value=`echo $md5_var | awk '{print $1}'` + + if [ ! -z "$md5_checksum_value" ] ; then + if [ "$md5_checksum_value" = "$jvmSpecBuildWithoutVMMD5ChecksumValue" ] ; then + R_md5=0 + else + R_md5=1 + fi + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + echo "Warning!! Error in executing md5sum command on the downloaded JVM." + echo "Check if md5sum tool is available on your machine or if you have the required permissions to execute md5sum command" + fi + R_md5=1 + fi + + + return $R_md5 +} + +# +#-------------------------------------------------------------- +# if a VM was forced on the command line use it otherwise search +if [ "$lax_vm" = "LAX_VM" ]; then + # Using VM passed in as argument + debugOut "JVM specified using LAX_VM" + inspectVM "$lax_vm_value" + actvmType="$inspectedVMtype" + actvm="$lax_vm_value" + debugOut "* Using VM:.........(LAX_VM)............ $actvm" +else + #try to unzip the installer.zip to extract *.jvm and jvmspecs.properties files to the tmp directory + if [ $IS_INSTALLER ] ; then + if [ -x /usr/bin/unzip ] ; then + UNZIP_CMD="/usr/bin/unzip" + elif [ -x /usr/sbin/unzip ] ; then + UNZIP_CMD="/usr/sbin/unzip" + elif [ -x /usr/local/bin/unzip ] ; then + UNZIP_CMD="/usr/local/bin/unzip" + else + UNZIP_CMD="unzip" + fi + + unzip_verify=`$UNZIP_CMD` + if [ -z "$unzip_verify" ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + INVALIDUNZIP=`getLocalizedString invalidUnzip` + printLocalizedString "$INVALIDUNZIP" "Invalid unzip command found" + else + debugOut "Invalid unzip command found. Exiting..." + fi + fi + unzip_success=`$UNZIP_CMD -d $INSTALLER_DATA_DIR $INSTALL_ZIP jvmspecs* > /dev/null 2>&1` + R_unzip=$? + if [ $R_unzip -ne 0 ] ; then + debugOut "Unzipping of installer.zip failed." + debugOut "Using the Default JVM Search" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + else + if [ -f "$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties" ] ; then + debugOut "Found jvmspecs.properties" + jvmSpecPropFilePath=$INSTALLER_DATA_DIR/jvmspecs/jvmspecs.properties + jvmSpecBuildWithoutVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm=" | cut -d "=" -f2` + jvmSpecBuildOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.option=" | cut -d "=" -f2` + jvmSpecBuildWithVM=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm=" | cut -d "=" -f2` + jvmSpecBuildWithVMSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.with.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMNotFoundDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecTotalNum=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.total.num=" | cut -d "=" -f2` + jvmSpecBuildJvmSpecApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.jvmspec.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmSearchOption=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.search.option=" | cut -d "=" -f2` + jvmSpecBuildWithoutVmDirectDownloadUrl=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.direct.download.url=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.not.found.download.url.md5Checksum.value=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.applicable=" | cut -d "=" -f2` + jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue=`sed '/^#/d' $jvmSpecPropFilePath | grep "build.without.vm.dont.search.download.url.md5Checksum.value=" | cut -d "=" -f2` + + if [ ! -z "$jvmSpecBuildOption" ] ; then + if [ $jvmSpecBuildOption = "withvm" ] ; then + if [ ! -z "$jvmSpecBuildWithVMSearchOption" ] ; then + case $jvmSpecBuildWithVMSearchOption in + 20) #20 = WITH_VM_SEARCH_FOR_VM_IF_NOT_FOUND_USE_BUNDLED + if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch_WithVMNoSpecFile "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + debugOut "JVM not found with or without spec file. Using bundled JVM" + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + fi + ;; + 21) #21 = WITH_VM_DONT_SEARCH_USE_BUNDLED + if [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/bin/java" + elif [ -f "$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" ] ; then + actvm="$ZIPLOC/$RESOURCE_DIR/resource/jre/jre/bin/java" + fi + ;; + *) + DEFAULT=`getLocalizedString default` + printLocalizedString "$DEFAULT" "default" + ;; + esac + fi + elif [ $jvmSpecBuildOption = "withoutvm" ] ; then + debugOut "JVM Spec Build Option Specified Without VM" + if [ ! -z "$jvmSpecBuildWithoutVmSearchOption" ] ; then + case $jvmSpecBuildWithoutVmSearchOption in + 10) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + ;; + 11) if [ ! -z "$jvmSpecBuildJvmSpecTotalNum" ]; then + if [ $jvmSpecBuildJvmSpecTotalNum -gt 0 ]; then + func_ourJVMSearch "$jvmSpecBuildJvmSpecTotalNum" "$jvmSpecPropFilePath" + fi + else + debugOut "Searching without JVM specs" + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + if [ -z "$actvm" ] ; then + func_download_vm_pack "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM1=`getLocalizedString downloadedVM1` + printLocalizedString "$DOWNLOADEDVM1" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVMNotFoundDownloadUrl" + fi + + jreDownloadFile=`basename $jvmSpecBuildWithoutVMNotFoundDownloadUrl` + jreDownloadFileName=$INSTALLER_DATA_DIR/$jreDownloadFile + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC1=`getLocalizedString downloadLoc1` + printLocalizedString "$DOWNLOADLOC1" "Download location=$jreDownloadFileName" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVMNotFoundDownloadUrl" "$jvmSpecBuildWithoutVMsearchFailDownloadMD5ChecksumValue" + R_md5Verification_1=$? + if [ $R_md5Verification_1 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName" + fi + fi + fi + ;; + 12) func_download_vm_pack "$jvmSpecBuildWithoutVmDirectDownloadUrl" #12 = WITHOUT_VM_DO_NOT_SEARCH_DOWNLOAD + R_download_status=$? + if [ $R_download_status -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + VMDOWNLOADERROR=`getLocalizedString vmDownloadError` + printLocalizedString "$VMDOWNLOADERROR" "Error in downloading the VM. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADEDVM2=`getLocalizedString downloadedVM2` + printLocalizedString "$DOWNLOADEDVM2" "Downloaded VM Pack using URL=$jvmSpecBuildWithoutVmDirectDownloadUrl" + fi + + jreDownloadFile_1=`basename $jvmSpecBuildWithoutVmDirectDownloadUrl` + jreDownloadFileName_1=$INSTALLER_DATA_DIR/$jreDownloadFile_1 + + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + DOWNLOADLOC2=`getLocalizedString downloadLoc2` + printLocalizedString "$DOWNLOADLOC2" "Download location=$jreDownloadFileName_1" + fi + + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" -a "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumApplicable" = "true" ] ; then + if [ ! -z "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" ] ; then + func_md5Verification "$jvmSpecBuildWithoutVmDirectDownloadUrl" "$jvmSpecBuildWithoutVMDirectDownloadMD5ChecksumValue" + R_md5Verification_2=$? + if [ $R_md5Verification_2 -ne 0 ] ; then + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMFAILED=`getLocalizedString checksumFailed` + printLocalizedString "$CHECKSUMFAILED" "Error!! MD5 checksum verification for downloaded JVM failed. Installer exiting..." + fi + else + if [ ! -z "$uimode" -a "$uimode" != "silent" ] ; then + CHECKSUMPASSED=`getLocalizedString checksumPassed` + printLocalizedString "$CHECKSUMPASSED" "MD5 checksum verification for downloaded JVM passed" + fi + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + else + func_extract_vm_pack "$jreDownloadFileName_1" + fi + fi + ;; + *) + DEFCASE=`getLocalizedString defaultCase` + printLocalizedString "$DEFCASE" "default case" + ;; + esac + fi + fi + fi + else + debugOut "Could not detect JVM Search Policy. Exiting..." + exit; + fi + fi + else + func_existingJVMSearch "$abs_lax_nl_current_vm" "$inspectedVMtype" "$inspectedOldVMtype" "$VM_SEARCH_PATH" "$IFS" "$inspectedVMpath" "$inspectedVMVersion" "$validVMtypeList" + fi + #============================================================================================= +fi + +# If no VMs are found in path +if [ -z "$actvm" ] +then + echo "No Java virtual machine could be found from your PATH" + echo "environment variable. You must install a VM prior to" + echo "running this program." + + # Mikey [5/16/2000] -- If this was SEA'd then remove the temp directory + if [ "$IS_INSTALLER" = "true" ]; then + debugOut "Removing temporary installation directory: \"$lax_user_dir\"" + rm -rf "$lax_user_dir" + fi + + cd "$olddir" + exit +fi + +# write the current vm out to the environment properties +echo "lax.nl.current.vm=$actvm" >> $envPropertiesFile + +# set up a variable to esilty know if we are going to run 1.1 or 1.2 +# for setting up VM cmd line options later on +case "$actvmType" in + "JRE" | "JDK" | "JRE_J1" | "JDK_J1" ) + actvmVersion="1.1" + ;; + "R12" | "D12" | "JDK_J2" | "JRE_J2" | "OLDJAVA") + actvmVersion="1.2" + ;; + *) + actvmVersion="" + ;; +esac + +# +# end of finding VMs +########################################################################################## + +#################################################################################### +# Determining VM invocation options to use +# + +# +# Verification +# +if [ "$actvmVersion" = "1.1" ]; then + if [ "$verify" = "off" ]; then + options="$options -noverify" + else + if [ "$verify_mode" = "remote" ]; then + options="$options -verifyremote" + elif [ "$verify_mode" = "none" ]; then + options="$options -noverify" + elif [ "$verify_mode" = "all" ]; then + options="$options -verify" + fi + fi +fi + +verbo=${verbo:="none"} +if [ $verbo = "normal" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class" + fi +elif [ $verbo = "all" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbose -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:class -verbose:gc" + fi +elif [ $verbo = "gc" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -verbosegc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -verbose:gc" + fi +fi + +# +# Memory mgnt +# +gcxtnt=${gcxtnt:="none"} +if [ $gcxtnt = "min" ] +then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -noclassgc" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xnoclassgc" + fi +fi + +gcthrd=${gcthrd:="none"} +if [ "$actvmVersion" = "1.1" ]; then + if [ $gcthrd = "off" ] + then + options="$options -noasyncgc" + fi +fi + + +nsmax=${nsmax:="none"} +if [ "$nsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ss$nsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xss$nsmax" + fi +fi + +jsmax=${jsmax:="none"} +if [ "$jsmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -oss$jsmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xoss$jsmax" + fi +fi + + +jhmax=${jhmax:="none"} +if [ "$jhmax" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -mx$jhmax" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xmx$jhmax" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Maximum Heap size to JVM options argument. + options="$options -Xmx$jhmax" + fi +fi + +jhinit=${jhinit:="none"} +if [ "$jhinit" != "none" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -ms$jhinit" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xms$jhinit" + else + # Note that the above conditions are always false in case of SFX. + # Adding else statement to add Java Initial Heap size to JVM options argument. + options="$options -Xms$jhinit" + fi +fi + +debug=${debug:-"off"} +if [ $debug != "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + options="$options -debug" + elif [ "$actvmVersion" = "1.2" ]; then + options="$options -Xdebug" + fi +fi + +############################################################### +# JIT options +# Resetting java home and JIT compiler environment variables +# +jitOnOrOff=on; +# +# turn off according to VM type +# +if [ ! -z "$lax_nl_osname_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_osname_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_osname_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_osname_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_osname_J1_java_compiler +elif [ ! -z "$lax_nl_osname_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_osname_J2_java_compiler +elif [ ! -z "$lax_nl_osname_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_osname_JRE_java_compiler +elif [ ! -z "$lax_nl_osname_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_osname_JDK_java_compiler +elif [ ! -z "$lax_nl_osname_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_ALL_java_compiler +# +elif [ ! -z "$lax_nl_unix_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_unix_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_unix_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_unix_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_unix_J1_java_compiler +elif [ ! -z "$lax_nl_unix_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_unix_J2_java_compiler +elif [ ! -z "$lax_nl_unix_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_unix_JRE_java_compiler +elif [ ! -z "$lax_nl_unix_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_unix_JDK_java_compiler +elif [ ! -z "$lax_nl_unix_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_unix_ALL_java_compiler +# +elif [ ! -z "$lax_nl_JDK_J1_java_compiler" -a "$actvmType" = "JDK_J1" ]; then + jitOnOrOff=$lax_nl_JDK_J1_java_compiler +elif [ ! -z "$lax_nl_JDK_J2_java_compiler" -a "$actvmType" = "JDK_J2" ]; then + jitOnOrOff=$lax_nl_JDK_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_J1_java_compiler" -a "$actvmType" = "JRE_J1" ]; then + jitOnOrOff=$lax_nl_JRE_J1_java_compiler +elif [ ! -z "$lax_nl_JRE_J2_java_compiler" -a "$actvmType" = "JRE_J2" ]; then + jitOnOrOff=$lax_nl_JRE_J2_java_compiler +elif [ ! -z "$lax_nl_J1_java_compiler" -a "$actvmType" = "J1" ]; then + jitOnOrOff=$lax_nl_J1_java_compiler +elif [ ! -z "$lax_nl_J2_java_compiler" -a "$actvmType" = "J2" ]; then + jitOnOrOff=$lax_nl_J2_java_compiler +elif [ ! -z "$lax_nl_JRE_java_compiler" -a "$actvmType" = "JRE" ]; then + jitOnOrOff=$lax_nl_JRE_java_compiler +elif [ ! -z "$lax_nl_JDK_java_compiler" -a "$actvmType" = "JDK" ]; then + jitOnOrOff=$lax_nl_JDK_java_compiler +elif [ ! -z "$lax_nl_ALL_java_compiler" ]; then + jitOnOrOff=$lax_nl_ALL_java_compiler +# +elif [ ! -z "$lax_nl_osname_java_compiler" ]; then + jitOnOrOff=$lax_nl_osname_java_compiler +elif [ ! -z "$lax_nl_java_compiler" ]; then + jitOnOrOff=$lax_nl_java_compiler +else + jitOnOrOff=on +fi + +# JIT is ON by default, so we only need to change its status +# the above else-if lists figures it should be OFF +if [ "$jitOnOrOff" = "off" ]; then + if [ "$actvmVersion" = "1.1" ]; then + case "$osName" in + *irix*) + jitinvoc="-nojit" + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + ;; + *hp-ux*|*hpux*) + JIT_OPTIONS="-nojit" + export JIT_OPTIONS + jitinvoc="-nojit" + ;; + *solaris*|*sunos*) + jitinvoc="-Djava.compiler=" + ;; + *aix*) + JAVA_COMPILER=off + export JAVA_COMPILER + ;; + *freebsd*) + jitinvoc="-Djava.compiler=" + ;; + *linux*) + jitinvoc="-Djava.compiler=" + ;; + *rhapsody*|*macos*) + ;; + *compaq*|*dg*|*osf*) + jitinvoc="-nojit" + ;; + *) + debugOut "Unknown OS name (\"$osName\"). Cannot set JIT Options." + ;; + esac + elif [ "$actvmVersion" = "1.2" ]; then + jitinvoc="-Djava.compiler=NONE" + else + debugOut "Unknown VM version. Cannot set JIT Options." + fi +fi + +options="$jitinvoc $options" + +# set this variable to something so we're guaranteed a value +linux_LD_ASSUME_KERNEL_hack=0; + +# work around problem on RedHat Linux 7.1 IA-32 +# see Bug Id 4447270 at Sun JDC bug parade +if [ `cat /etc/redhat-release 2>/dev/null | grep "7\.1" | wc -l` = "1" ]; +then + if [ `uname -s` = "Linux" ]; + then + if [ `uname -m` != "ia64" ]; + then + case `uname -r` in + 2.[456]*) + linux_LD_ASSUME_KERNEL_hack=1 + ;; + esac + fi + fi +fi + +# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros +#if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then +# debugOut "checking for NPTL + JVM vulernability..." + #check libc to see if it was compiled with NPTL +# nptl="`strings /lib/libc.so.6 | grep -i nptl`" +# if [ "$nptl" ]; then +# debugOut "NPTL detected! checking for vulnerable JVM...."; + + # I have to set this before I check the JVM version, a-cuz + # the call will hang, if it -is- vulnerable! +# export LD_ASSUME_KERNEL=2.2.5 + +# $actvm -version > /dev/null 2> /dev/null +# if [ "$?" -eq "0" ]; then + +# eval `$actvm -version 2>&1 | $AWK ' +# BEGIN { +# vendor="Sun" +# } +# /"[0-9]\.[0-9]\.[0-9][^"]*"$/ { +# gsub ("[\"]", "", $3) +# split ($3, ver, "[\._-]") +# printf "v_major=%s\nv_minor=%s\nv_patch=%s\n",ver[1],ver[2],ver[3] +# } +# /IBM/ { +# vendor="IBM" +# } +# END { +# printf "v_vendor=%s\n",vendor +# } +# ' ` + + # unset the LD_ASSUME_KERNEL in cause we don't need it +# unset LD_ASSUME_KERNEL + +# debugOut "major : ${v_major}" +# debugOut "minor : ${v_minor}" +# debugOut "patch : ${v_patch}" +# debugOut "vendor: ${v_vendor}" + + # check our rules for setting LD_ASSUME_KERNEL + # currently, we're only setting this for JVMS < 1.4 + # we can add more rules later, if we need to. +# if [ ${v_minor:-0} -lt 4 ]; then +# debugOut "Vulnerable JVM detected... implementing workaround" +# linux_LD_ASSUME_KERNEL_hack=1 +# else +# debugOut "Your JVM is OK! Congratulations!" +# fi +# else +# unset LD_ASSUME_KERNEL +# fi +# fi +#fi + +if [ $linux_LD_ASSUME_KERNEL_hack -eq 1 ]; then + LD_ASSUME_KERNEL=2.2.5 + export LD_ASSUME_KERNEL +fi + +################################################################################## +# LAUNCH VM + +# Passing in addtional stuff +options="$options $lax_nl_java_option_additional" + + +# Changing working directory +if [ ! "$lax_user_dir" = "" ] +then + if [ ! "$lax_user_dir" = "." ]; + then + cd "$lax_user_dir" + fi +else + cd "$olddir" +fi + +# Optional printout of all variable values for debugging purposes + +debugOut "" +debugOut "========= Virtual Machine Options ====================================" +debugOut "LAX properties incorporated............. OK." +debugOut "classpath............................... \"$lax_class_path\"" +debugOut "main class.............................. \"$lax_main_class\"" +debugOut ".lax file path.......................... \"$propfname\"" +debugOut "user directory.......................... \"$lax_user_dir\"" +debugOut "stdout to............................... \"$lax_stdout_redirect\"" +debugOut "sterr to................................ \"$lax_stderr_redirect\"" +debugOut "install directory....................... \"$lax_dir\"" +debugOut "JIT..................................... ${jittype:-"none"}" +debugOut "option (verify)......................... ${verify:-"none"}" +debugOut "option (verbosity)...................... ${verbo:-"none"}" +debugOut "option (garbage collection extent)...... ${gcxtnt:-"none"}" +debugOut "option (garbage collection thread)...... ${gcthrd:-"none"}" +debugOut "option (native stack max size).......... ${nsmax:-"none"}" +debugOut "option (java stack max size)............ ${jsmax:-"none"}" +debugOut "option (java heap max size)............. ${jhmax:-"none"}" +debugOut "option (java heap initial size)......... ${jhinit:-"none"}" +debugOut "option (lax.nl.java.option.additional).. ${lax_nl_java_option_additional:-"none"}" +resolveLink "$actvm" +actvm="$resolvedLink" + +actvmBinaryName=`basename "$actvm"` +# get dirname of binary +actvmHome=`dirname "$actvm"` +# is the dir the binary is in named "bin"? +if [ "`basename "$actvmHome"`" = "bin" ]; then + # if so then the dir above bin is the java home + JAVA_HOME=`dirname "$actvmHome"` +else + JAVA_HOME= +fi + +# Making $JAVA_HOME available to the application. +export JAVA_HOME + +# [RW] reset the locale that what we remember it to be (see use.sh line 22) +if [ "$IS_INSTALLER" = "true" ]; then + if [ "X$OLD_LANG" = X ] + then + # no locale was defined prior to running this program + unset LANG + else + # there was a locale: revert back to it + LANG="$OLD_LANG" + fi +fi + +########################################################################### +# tlb 2001-09-18 +# Moving the checking for the DISPLAY variable down here as there are +# options in the LAX that might override the need for checking the DISPLAY. +# Those options need loading before the check is performed. +# Also making sure we don't report an error when running on Mac OS X. + + +debugOut "" +debugOut "========= Display settings ===========================================" +# +# check the display +# +isRemoteDisplay="false" +if [ "$IS_INSTALLER" = "true" -a "$isConsole" = "false" -a "$isSilent" = "false" -a ! "$osName" = "darwin" ]; then + hostname=`hostname` + isRemoteDisplay="true" + for display in ${hostname}:0 ${hostname}:0.0 localhost:0 localhost:0.0 unix:0 unix:0.0 :0 :0.0 + do + if [ "$DISPLAY" = "$display" ]; then + isRemoteDisplay="false"; + fi + done +fi + +xDisp="local" +if [ "$isRemoteDisplay" = "true" ]; then + xDisp="remote" +fi +if [ -z "$DISPLAY" ]; then + xDisp="not set" +fi +debugOut "X display............................... $xDisp" + + +if [ -z "$DISPLAY" -a "$uimode" = "gui" ]; then + debugOut "WARNING: This shell's DISPLAY variable has not been set." + debugOut "This installer is configured to run in GUI and will probably" + debugOut "fail. Try running this installer in console or silent mode," + debugOut "or on another UNIX host which has the DISPLAY variable set," + debugOut "if the installer unexpectedly fails." +else + if [ "$isRemoteDisplay" = "true" -a "$uimode" = "gui" ]; then + debugOut "WARNING: The name of this host ($hostname) and the setting" + debugOut "of this shell's DISPLAY ($DISPLAY) variable do not match." + debugOut "If this launcher is being displayed to a Microsoft Windows desktop" + debugOut "through X Windows the Java Virtual Machine might abort. Try running" + debugOut "this installer locally on the target system or through X Windows to" + debugOut "another UNIX host if the installer unexpectedly fails." + fi +fi + +debugOut "UI mode................................. $uimode" + + +# COMMENT ME TO REMOVE OUTPUT FROM NORMAL INSTALLER EXECUTION +if [ "$IS_INSTALLER" = "true" -a "$uimode" != "silent" ]; then + echo "" + LAN_CON_MSG=`getLocalizedString launch` + printLocalizedString "$LAN_CON_MSG" "Launching installer..." + echo "" + [ -f "$CUSTOM" ] && rm -f "$CUSTOM" +fi + +# MMA - clear ENV to address a problem where the shell initialization +# file (.Xshrc) pointed to by ENV may overide the classpath we have just set, +# causing the app to fail. Drawback is that other environment variables set +# in the init file will not be available in the environment (they will be +# available as Java system properties, however). Comment out the two lines +# below to change this behavior. +ENV= +export ENV +# I split these up so they would be a bit clearer on the screen. + +#debugOut "" +debugOut "========= VM Command Line ============================================" +#debugOut "CLASSPATH=$lax_class_path" +#debugOut "\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs" +#debugOut "$command" +debugOut "options: $options" +# Here is where we actually run the app in Java: + +CLASSPATH="$lax_class_path:$CLASSPATH"; export CLASSPATH +debugOut "CLASSPATH:$CLASSPATH" + +if [ "`echo $actvm | grep 'jre$'`" ]; then + cpArg="-cp" +fi + +debugOut "" +unset POSIXLY_CORRECT +if [ $DO_NOT_FORK ] +then + debugOut "========= Executing JAVA =============================================" + # this is the original, it's still here for copy/paste purposes + #eval \"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\" $cmdLineArgs + + lax_class_path=\"$lax_class_path\" + if [ $cpArg ]; then + command="\"$actvm\" $options $cpArg \"$CLASSPATH\" $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + else + command="\"$actvm\" $options $lax_nl_java_launcher_main_class \"$propfname\" \"$envPropertiesFile\"" + fi + eval $command $cmdLineArgs +else + debugOut "========= Forking JAVA =============================================" + if [ $cpArg ]; then + exec "$actvm" $options $cpArg "$CLASSPATH" $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + else + DISTRO_NAME= + GUEST_OS_NAME= + if [ -f /etc/issue ] ; then + DISTRO_NAME=`cat /etc/issue` + fi + if [ -f /etc/centos-release ] ; then + DISTRO_NAME=`cat /etc/centos-release` + fi + if [ -f /etc/redhat-release ] ; then + DISTRO_NAME=`cat /etc/redhat-release` + fi + + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Ubuntu/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *not*found*|*install*bin* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/CentOS/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/SUSE/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Red Hat Enterprise Linux/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + elif [ ! -z "$(echo $DISTRO_NAME | awk '/Fedora/')" ] ; then + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + + fi + else + if [ -f /etc/release ] ; then + DISTRO_NAME=`cat /etc/release` + fi + if [ ! -z "$DISTRO_NAME" ] ; then + if [ ! -z "$(echo $DISTRO_NAME | awk '/Solaris/')" ] ; then + if [ -z "$(echo $DISTRO_NAME | awk '/SPARC/')" ] ; then + DO_NOT_FORK=1; + export DO_NOT_FORK + fi + JRE_SUCCESS=`exec "$actvm" 2>&1` + case "$JRE_SUCCESS" in + *cannot*execute*|*install*bin* ) + + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *Usage*) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + else + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + fi + + else + jre_success=`exec "$actvm" 2>&1` + case "$jre_success" in + *No*such*file*or*directory*|*install*bin*|*cannot*execute*binary*file* ) + echo "JRE libraries are missing or not compatible...." + echo "Exiting...." + ;; + *) + exec "$actvm" $options $lax_nl_java_launcher_main_class "$propfname" "$envPropertiesFile" $cmdLineArgs + ;; + esac + fi + + fi + + fi +fi +exitValue=$? +debugOut "========= JAVA Finished ==============================================" +debugOut "" + +# Change back to directory used priory to this script running. + +cd "$olddir" + +exit $exitValue diff --git a/.local/bin/IPMIView/iKVM.jar b/.local/bin/IPMIView/iKVM.jar new file mode 100755 index 0000000..470d7ae Binary files /dev/null and b/.local/bin/IPMIView/iKVM.jar differ diff --git a/.local/bin/IPMIView/iKVM.lax b/.local/bin/IPMIView/iKVM.lax new file mode 100755 index 0000000..9504519 --- /dev/null +++ b/.local/bin/IPMIView/iKVM.lax @@ -0,0 +1,137 @@ +# LaunchAnywhere (tm) Executable Properties File - Flexera Software LLC + +# LAX.APPLICATION.NAME +# -------------------- +# the default name of this executable -- do not edit + +lax.application.name=iKVM + + +# LAX.CLASS.PATH +# -------------- +# the Java classpath necessary to run this application +# Can be separated by colons (Mac OS/Unix) or semicolons (Windows) + +lax.class.path=iKVM.jar:IPMIView20.jar:TrapView.jar:JViewerX9.jar:lax.jar + + +# LAX.COMMAND.LINE.ARGS +# --------------------- +# what will be passed to the main method -- be sure to quote arguments with spaces in them + +lax.command.line.args=$CMD_LINE_ARGUMENTS$ + + +# LAX.DIR +# ------- +# path to directory holding LaunchAnywhere's native launcher + +lax.dir=./ + + +# LAX.MAIN.CLASS +# -------------- +# the class that contains the main method for the application + +lax.main.class=tw.com.aten.ikvm.KVMMain + + +# LAX.MAIN.METHOD +# --------------- +# the method in the main class that will be invoked + +lax.main.method=main + + +# LAX.NL.CURRENT.VM +# ----------------- +# the VM to use for the next launch + +lax.nl.current.vm=jre/bin/java + + +# LAX.NL.JAVA.LAUNCHER.MAIN.CLASS +# ------------------------------- +# main class of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.class=com.zerog.lax.LAX + + +# LAX.NL.JAVA.LAUNCHER.MAIN.METHOD +# -------------------------------- +# main method of LaunchAnywhere's java launcher -- do not adjust + +lax.nl.java.launcher.main.method=main + + +# LAX.NL.JAVA.OPTION.JAVA.HEAP.SIZE.MAX +# ------------------------------------- +# Defines the maximum heap size in bytes for the installer that will be invoked. + +lax.nl.java.option.java.heap.size.max=536870912 + + +# LAX.NL.VALID.VM.LIST +# -------------------- +# Defines which VMs are valid for your project. +# If the native launcher cannot find the current vm, +# it will search for ones in this list + +lax.nl.valid.vm.list=1.7+ + + +# LAX.NL.WIN32.MICROSOFTVM.MIN.VERSION +# ------------------------------------ +# The minimum version of Microsoft's VM this application will run against + +lax.nl.win32.microsoftvm.min.version=2750 + + +# LAX.ROOT.INSTALL.DIR +# -------------------- +# path to the installdir magic folder + +lax.root.install.dir=./ + + +# LAX.STDERR.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stderr.redirect= + + +# LAX.STDIN.REDIRECT +# ------------------ +# leave blank for no input, "console" to read from the console window, +# and any path to a file to read from that file + +lax.stdin.redirect= + + +# LAX.STDOUT.REDIRECT +# ------------------- +# leave blank for no output, "console" to send to a console window, +# and any path to a file to save to the file + +lax.stdout.redirect= + + +# LAX.USER.DIR +# ------------ +# left blank, this property will cause the native launcher to not +# alter the platform default behavior for setting the user dir. +# To override this you may set this property to a relative or absolute path. +# Relative paths are relative to the launcher. + +lax.user.dir=. + + +# LAX.VERSION +# ----------- +# version of LaunchAnywhere that created this properties file + +lax.version=17.0 + + diff --git a/.local/bin/IPMIView/iKVM.properties b/.local/bin/IPMIView/iKVM.properties new file mode 100644 index 0000000..3f2d273 --- /dev/null +++ b/.local/bin/IPMIView/iKVM.properties @@ -0,0 +1,3 @@ +#MyTitle +#Wed May 29 21:46:05 PDT 2024 +default_AutoResize_iKVM_Window=true diff --git a/.local/bin/IPMIView/iKVM32.dll b/.local/bin/IPMIView/iKVM32.dll new file mode 100755 index 0000000..f02add6 Binary files /dev/null and b/.local/bin/IPMIView/iKVM32.dll differ diff --git a/.local/bin/IPMIView/iKVM64.dll b/.local/bin/IPMIView/iKVM64.dll new file mode 100755 index 0000000..1b28eeb Binary files /dev/null and b/.local/bin/IPMIView/iKVM64.dll differ diff --git a/.local/bin/IPMIView/iKVM_precheck.jar b/.local/bin/IPMIView/iKVM_precheck.jar new file mode 100755 index 0000000..22536d0 Binary files /dev/null and b/.local/bin/IPMIView/iKVM_precheck.jar differ diff --git a/.local/bin/IPMIView/iKVM_ssl.jar b/.local/bin/IPMIView/iKVM_ssl.jar new file mode 100755 index 0000000..984b6e7 Binary files /dev/null and b/.local/bin/IPMIView/iKVM_ssl.jar differ diff --git a/.local/bin/IPMIView/iKVM_v11_32.dll b/.local/bin/IPMIView/iKVM_v11_32.dll new file mode 100755 index 0000000..2ab2357 Binary files /dev/null and b/.local/bin/IPMIView/iKVM_v11_32.dll differ diff --git a/.local/bin/IPMIView/iKVM_v11_64.dll b/.local/bin/IPMIView/iKVM_v11_64.dll new file mode 100755 index 0000000..695c204 Binary files /dev/null and b/.local/bin/IPMIView/iKVM_v11_64.dll differ diff --git a/.local/bin/IPMIView/ikvm.properties b/.local/bin/IPMIView/ikvm.properties new file mode 100644 index 0000000..06a9ec0 --- /dev/null +++ b/.local/bin/IPMIView/ikvm.properties @@ -0,0 +1,4 @@ +#MyTitle +#Wed May 29 21:45:59 PDT 2024 +https_port=443 +http_port=80 diff --git a/.local/bin/IPMIView/jre/NEWS b/.local/bin/IPMIView/jre/NEWS new file mode 100755 index 0000000..0b617ad --- /dev/null +++ b/.local/bin/IPMIView/jre/NEWS @@ -0,0 +1,4584 @@ +Key: + +JDK-X - https://bugs.openjdk.java.net/browse/JDK-X +CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY + +New in release OpenJDK 11.0.19 (2023-04-18): +============================================= +Live versions of these release notes can be found at: + * https://bit.ly/openjdk11019 + +* CVEs + - CVE-2023-21930 + - CVE-2023-21937 + - CVE-2023-21938 + - CVE-2023-21939 + - CVE-2023-21954 + - CVE-2023-21967 + - CVE-2023-21968 +* Security fixes + - JDK-8287404: Improve ping times + - JDK-8288436: Improve Xalan supports + - JDK-8294474: Better AES support + - JDK-8295304: Runtime support improvements + - JDK-8296676, JDK-8296622: Improve String platform support + - JDK-8296684: Improve String platform support + - JDK-8296692: Improve String platform support + - JDK-8296832: Improve Swing platform support + - JDK-8297371: Improve UTF8 representation redux + - JDK-8298191: Enhance object reclamation process + - JDK-8298310: Enhance TLS session negotiation + - JDK-8298667: Improved path handling + - JDK-8299129: Enhance NameService lookups +* Other changes + - JDK-6528710: sRGB-ColorSpace to sRGB-ColorSpace Conversion + - JDK-7188098: TEST_BUG: closed/javax/sound/midi/Synthesizer/Receiver/bug6186488.java fails + - JDK-8035787: SourcePositions are wrong for Strings concatenated with '+' operator + - JDK-8065097: [macosx] javax/swing/Popup/TaskbarPositionTest.java fails because Popup is one pixel off + - JDK-8065422: Trailing dot in hostname causes TLS handshake to fail with SNI disabled + - JDK-8129315: java/net/Socket/LingerTest.java and java/net/Socket/ShutdownBoth.java timeout intermittently + - JDK-8144030: [macosx] test java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java fails (again) + - JDK-8170705: sun/net/www/protocol/http/StackTraceTest.java fails intermittently with Invalid Http response + - JDK-8171405: java/net/URLConnection/ResendPostBody.java failed with "Error while cleaning up threads after test" + - JDK-8179317: [TESTBUG] rewrite runtime shell tests in java + - JDK-8190492: Remove SSLv2Hello and SSLv3 from default enabled TLS protocols + - JDK-8192931: Regression test java/awt/font/TextLayout/CombiningPerf.java fails + - JDK-8195057: java/util/concurrent/CountDownLatch/Basic.java failed w/ Xcomp + - JDK-8195716: BootstrapLoggerTest : Executor still alive + - JDK-8202621: bad test with broken links needs to be updated + - JDK-8207248: Reduce incidence of compiler.warn.source.no.bootclasspath in javac tests + - JDK-8208077: File.listRoots performance degradation + - JDK-8209023: fix 2 compiler tests to avoid JDK-8208690 + - JDK-8209115: adjust libsplashscreen linux ppc64le builds for easier libpng update + - JDK-8209774: Refactor shell test javax/xml/jaxp/common/8035437/run.sh to java + - JDK-8209935: Test to cover CodeSource.getCodeSigners() + - JDK-8210373: Deadlock in libj2gss.so when loading "j2gss" and "net" libraries in parallel. + - JDK-8212165: JGSS: Fix cut/paste error in NativeUtil.c + - JDK-8212216: JGSS: Fix leak in exception cases in getJavaOID() + - JDK-8213130: Update ProblemList after verification of jtreg tests in Win 7 + - JDK-8213265: fix missing newlines at end of files + - JDK-8213932: [TESTBUG] assertEquals is invoked with the arguments in the wrong order + - JDK-8214445: [test] java/net/URL/HandlerLoop has illegal reflective access + - JDK-8215372: test/jdk/java/nio/file/DirectoryStream/Basic.java not correct when using a glob + - JDK-8215759: [test] java/math/BigInteger/ModPow.java can throw an ArithmeticException + - JDK-8217353: java/util/logging/LogManager/Configuration/updateConfiguration/HandlersOnComplexResetUpdate.java fails with Unexpected reference: java.lang.ref.WeakReference + - JDK-8217730: Split up MakeBase.gmk + - JDK-8218133: sun/net/www/protocol/http/ProtocolRedirect.java failed with "java.net.ConnectException" + - JDK-8218431: Improved platform checking in makefiles + - JDK-8218460: Test generation scripts do not invoke stream preprocessor correctly + - JDK-8221098: Run java/net/URL/HandlerLoop.java in othervm mode + - JDK-8221168: java/util/concurrent/CountDownLatch/Basic.java fails + - JDK-8221351: Crash in KlassFactory::check_shared_class_file_load_hook + - JDK-8221621: FindTests.gmk cannot handle "=" in TEST.groups comments + - JDK-8222430: Add tests for ElementKind predicates + - JDK-8223463: Replace wildcard address with loopback or local host in tests - part 2 + - JDK-8223716: sun/net/www/http/HttpClient/MultiThreadTest.java should be more resilient to unexpected traffic + - JDK-8223736: jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java fails due to wrong number of MonitorContendedEntered events + - JDK-8224024: java/util/concurrent/BlockingQueue/DrainToFails.java testBounded fails intermittently + - JDK-8225648: [TESTBUG] java/lang/annotation/loaderLeak/Main.java fails with -Xcomp + - JDK-8226595: jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java still fails due to wrong number of MonitorContendedEntered events + - JDK-8226917: jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java fails on jvmti->InterruptThread (JVMTI_ERROR_THREAD_NOT_ALIVE) + - JDK-8227422: sun/net/www/protocol/file/DirPermissionDenied.java failed on Windows 2016 because DirPermissionDenied directory has no read permission + - JDK-8230374: maxOutputSize, instead of javatest.maxOutputSize, should be used in TEST.properties + - JDK-8230731: SA tests fail with "Windbg Error: ReadVirtual failed" + - JDK-8231595: [TEST] develop a test case for SuspendThreadList including current thread + - JDK-8233462: serviceability/tmtools/jstat tests times out with -Xcomp + - JDK-8235448: code cleanup in SSLContextImpl.java + - JDK-8238936: The crash in XRobotPeer when the custom GraphicsDevice is used + - JDK-8241293: CompressedClassSpaceSizeInJmapHeap.java time out after 8 minutes + - JDK-8241806: The sun/awt/shell/FileSystemViewMemoryLeak.java is unstable + - JDK-8244592: Start supporting SOURCE_DATE_EPOCH + - JDK-8245245: WebSocket can lose the URL encoding of URI query parameters + - JDK-8245654: Add Certigna Root CA + - JDK-8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set + - JDK-8248306: gc/stress/gclocker/TestExcessGCLockerCollections.java does not compile + - JDK-8249691: jdk/lambda/vm/StrictfpDefault.java file can be removed + - JDK-8252401: Introduce Utils.TEST_NATIVE_PATH + - JDK-8252532: use Utils.TEST_NATIVE_PATH instead of System.getProperty("test.nativepath") + - JDK-8252715: Problem list java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java on Linux + - JDK-8254267: javax/xml/crypto/dsig/LogParameters.java failed with "RuntimeException: Unexpected log output:" + - JDK-8255710: Opensource unit/regression tests for CMM + - JDK-8256110: Create implementation for NSAccessibilityStepper protocol + - JDK-8256111: Create implementation for NSAccessibilityStaticText protocol + - JDK-8256126: Create implementation for NSAccessibilityImage protocol peer + - JDK-8256240: Reproducible builds should turn on the "deterministic" flag for Visual Studio + - JDK-8256934: C2: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded limit + - JDK-8257928: Test image build failure with clang-10 due to -Wmisleading-indentation + - JDK-8258005: JDK build fails with incorrect fixpath script + - JDK-8259265: Refactor UncaughtExceptions shell test as java test. + - JDK-8259267: Refactor LoaderLeak shell test as java test. + - JDK-8260576: Typo in compiler/runtime/safepoints/TestRegisterRestoring.java + - JDK-8261270: MakeMethodNotCompilableTest fails with -XX:TieredStopAtLevel={1,2,3} + - JDK-8261279: sun/util/resources/cldr/TimeZoneNamesTest.java timed out + - JDK-8261350: Create implementation for NSAccessibilityCheckBox protocol peer + - JDK-8261351: Create implementation for NSAccessibilityRadioButton protocol + - JDK-8261352: Create implementation for component peer for all the components who should be ignored in a11y interactions + - JDK-8262060: compiler/whitebox/BlockingCompilation.java timed out + - JDK-8264200: java/nio/channels/DatagramChannel/SRTest.java fails intermittently + - JDK-8264299: Create implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles + - JDK-8264512: jdk/test/jdk/java/util/prefs/ExportNode.java relies on default platform encoding + - JDK-8266974: duplicate property key in java.sql.rowset resource bundle + - JDK-8267038: Update IANA Language Subtag Registry to Version 2022-03-02 + - JDK-8270609: [TESTBUG] java/awt/print/Dialog/DialogCopies.java does not show instruction + - JDK-8271323: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -XX:TieredStopAtLevel=1 + - JDK-8271506: Add ResourceHashtable support for deleting selected entries + - JDK-8272985: Reference discovery is confused about atomicity and degree of parallelism + - JDK-8273497: building.md should link to both md and html + - JDK-8273806: compiler/cpuflags/TestSSE4Disabled.java should test for CPU feature explicitly + - JDK-8273895: compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3 + - JDK-8274939: Incorrect size of the pixel storage is used by the robot on macOS + - JDK-8277346: ProblemList 7 serviceability/sa tests on macosx-x64 + - JDK-8277351: ProblemList runtime/jni/checked/TestPrimitiveArrayCriticalWithBadParam.java on macosx-x64 + - JDK-8279614: The left line of the TitledBorder is not painted on 150 scale factor + - JDK-8279662: serviceability/sa/ClhsdbScanOops.java can fail due to unexpected GC + - JDK-8279941: sun/security/pkcs11/Signature/TestDSAKeyLength.java fails when NSS version detection fails + - JDK-8280048: Missing comma in copyright header + - JDK-8280391: NMT: Correct NMT tag on CollectedHeap + - JDK-8280401: [sspi] gss_accept_sec_context leaves output_token uninitialized + - JDK-8280896: java/nio/file/Files/probeContentType/Basic.java fails on Windows 11 + - JDK-8281262: Windows builds in different directories are not fully reproducible + - JDK-8282036: Change java/util/zip/ZipFile/DeleteTempJar.java to stop HttpServer cleanly in case of exceptions + - JDK-8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX + - JDK-8282398: EndingDotHostname.java test fails because SSL cert expired + - JDK-8282511: Use fixed certificate validation date in SSLExampleCert template + - JDK-8282958: Rendering Issues with Borders on Windows High-DPI systems + - JDK-8283606: Tests may fail with zh locale on MacOS + - JDK-8283717: vmTestbase/nsk/jdi/ThreadStartEvent/thread/thread001 failed due to SocketTimeoutException + - JDK-8283719: java/util/logging/CheckZombieLockTest.java failing intermittently + - JDK-8283870: jdeprscan --help causes an exception when the locale is ja, zh_CN or de + - JDK-8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo + - JDK-8284165: Add pid to process reaper thread name + - JDK-8285093: Introduce UTIL_ARG_WITH + - JDK-8285399: JNI exception pending in awt_GraphicsEnv.c:1432 + - JDK-8285690: CloneableReference subtest should not throw CloneNotSupportedException + - JDK-8285755: JDK-8285093 changed the default for --with-output-sync + - JDK-8285835: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work + - JDK-8285919: Remove debug printout from JDK-8285093 + - JDK-8286030: Avoid JVM crash when containers share the same /tmp dir + - JDK-8286800: Assert in PhaseIdealLoop::dump_real_LCA is too strong + - JDK-8286962: java/net/httpclient/ServerCloseTest.java failed once with ConnectException + - JDK-8287011: Improve container information + - JDK-8287180: Update IANA Language Subtag Registry to Version 2022-08-08 + - JDK-8287906: Rewrite of GitHub Actions (GHA) sanity tests + - JDK-8288332: Tier1 validate-source fails after 8279614 + - JDK-8288499: Restore cancel-in-progress in GHA + - JDK-8289562: Change bugs.java.com and bugreport.java.com URL's to https + - JDK-8289695: [TESTBUG] TestMemoryAwareness.java fails on cgroups v2 and crun + - JDK-8290197: test/jdk/java/nio/file/Files/probeContentType/Basic.java fails on some systems for the ".rar" extension + - JDK-8290899: java/lang/String/StringRepeat.java test requests too much heap on windows x86 + - JDK-8290920: sspi_bridge.dll not built if BUILD_CRYPTO is false + - JDK-8290964: C2 compilation fails with assert "non-reduction loop contains reduction nodes" + - JDK-8292863: assert(_print_inlining_stream->size() > 0) failed: missing inlining msg + - JDK-8292877: java/util/concurrent/atomic/Serial.java uses {Double,Long}Accumulator incorrectly + - JDK-8293550: Optionally add get-task-allow entitlement to macos binaries + - JDK-8293767: AWT test TestSinhalaChar.java has old SCCS markings + - JDK-8293996: C2: fix and simplify IdealLoopTree::do_remove_empty_loop + - JDK-8294378: URLPermission constructor exception when using tr locale + - JDK-8294580: frame::interpreter_frame_print_on() crashes if free BasicObjectLock exists in frame + - JDK-8294705: Disable an assertion in test/jdk/java/util/DoubleStreamSums/CompensatedSums.java + - JDK-8294947: Use 64bit atomics in patch_verified_entry on x86_64 + - JDK-8295116: C2: assert(dead->outcnt() == 0 && !dead->is_top()) failed: node must be dead + - JDK-8295211: Fix autoconf 2.71 warning "AC_CHECK_HEADERS: you should use literals" + - JDK-8295405: Add cause in a couple of IllegalArgumentException and InvalidParameterException shown by sun/security/pkcs11 tests + - JDK-8295412: support latest VS2022 MSC_VER in abstract_vm_version.cpp + - JDK-8295530: Update Zlib Data Compression Library to Version 1.2.13 + - JDK-8295685: Update Libpng to 1.6.38 + - JDK-8295774: Write a test to verify List sends ItemEvent/ActionEvent + - JDK-8295777: java/net/httpclient/ConnectExceptionTest.java should not rely on system resolver + - JDK-8295788: C2 compilation hits "assert((mode == ControlAroundStripMined && use == sfpt) || !use->is_reachable_from_root()) failed: missed a node" + - JDK-8296239: ISO 4217 Amendment 174 Update + - JDK-8296611: Problemlist several sun/security tests until JDK-8295343 is resolved + - JDK-8296619: Upgrade jQuery to 3.6.1 + - JDK-8296675: Exclude linux-aarch64 in NSS tests + - JDK-8296878: Document Filter attached to JPasswordField and setText("") is not cleared instead inserted characters replaced with unicode null characters + - JDK-8296904: Improve handling of macos xcode toolchain + - JDK-8296912: C2: CreateExNode::Identity fails with assert(i < _max) failed: oob: i=1, _max=1 + - JDK-8296924: C2: assert(is_valid_AArch64_address(dest.target())) failed: bad address + - JDK-8297088: Update LCMS to 2.14 + - JDK-8297257: Bump update version for OpenJDK: jdk-11.0.19 + - JDK-8297264: C2: Cast node is not processed again in CCP and keeps a wrong too narrow type which is later replaced by top + - JDK-8297480: GetPrimitiveArrayCritical in imageioJPEG misses result - NULL check + - JDK-8297489: Modify TextAreaTextEventTest.java as to verify the content change of TextComponent sends TextEvent + - JDK-8297569: URLPermission constructor throws IllegalArgumentException: Invalid characters in hostname after JDK-8294378 + - JDK-8297951: C2: Create skeleton predicates for all If nodes in loop predication + - JDK-8297963: Partially fix string expansion issues in UTIL_DEFUN_NAMED and related macros + - JDK-8298027: Remove SCCS id's from awt jtreg tests + - JDK-8298073: gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java causes test task timeout on macosx + - JDK-8298093: improve cleanup and error handling of awt_parseColorModel in awt_parseImage.c + - JDK-8298108: Add a regression test for JDK-8297684 + - JDK-8298129: Let checkpoint event sizes grow beyond u4 limit + - JDK-8298271: java/security/SignedJar/spi-calendar-provider/TestSPISigned.java failing on Windows + - JDK-8298459: Fix msys2 linking and handling out of tree build directory for source zip creation + - JDK-8298527: Cygwin's uname -m returns different string than before + - JDK-8298588: WebSockets: HandshakeUrlEncodingTest unnecessarily depends on a response body + - JDK-8299194: CustomTzIDCheckDST.java may fail at future date + - JDK-8299296: Write a test to verify the components selection sends ItemEvent + - JDK-8299439: java/text/Format/NumberFormat/CurrencyFormat.java fails for hr_HR + - JDK-8299445: EndingDotHostname.java fails because of compilation errors + - JDK-8299483: ProblemList java/text/Format/NumberFormat/CurrencyFormat.java + - JDK-8299520: TestPrintXML.java output error messages in case compare fails + - JDK-8299596: [11u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 11.0.19 + - JDK-8299616: [11u] Bootcycle build fails after JDK-8257679 backport + - JDK-8299789: Compilation of gtest causes build to fail if runtime libraries are in different dirs + - JDK-8300119: CgroupMetrics.getTotalMemorySize0() can report invalid results on 32 bit systems + - JDK-8300424: [11u] Chunk lost in backport of 8297569 + - JDK-8300642: [17u,11u] Fix DEFAULT_PROMOTED_VERSION_PRE=ea for -dev + - JDK-8300742: jstat's CGCT is 5 percent higher than the pause time in -Xlog:gc. + - JDK-8300773: Address the inconsistency between the constant array and pool size + - JDK-8301397: [11u, 17u] Bump jtreg to fix issue with build JDK 11.0.18 + - JDK-8301760: Fix possible leak in SpNegoContext dispose + - JDK-8301842: JFR: increase checkpoint event size for stacktrace and string pool + - JDK-8302000: [11u] A subtle race condition during jdk11u build + - JDK-8302657: [11u] Add missing '(' in makefile after backport of 8218431 + - JDK-8302694: [11u] Update GHA Boot JDK to 11.0.18 + - JDK-8302903: [11u] Add modified test snippet after backport of JDK-8221871 + - JDK-8303075: [11u] Add CompileClassWithDebugTest to ProblemList for 8303074 + - JDK-8304389: [11u] Crash on Windows in C2 compiled code after 8248238 and 8218431 + +Notes on individual issues: +=========================== + +security-libs/javax.net.ssl: + +JDK-8190492: Removed SSLv2Hello and SSLv3 From Default Enabled TLS Protocols +============================================================================ +SSLv2Hello and SSLv3 are versions of the SSL protocol that have not +been considered secure for some time and are already disabled by +default. They have been superseded by the more secure and modern TLS +protocol, and users are recommended to switch to TLS 1.2 or 1.3. + +With this release, SSLv2Hello and SSLv3 are now also removed from the +list of default enabled protocols. This means that, even if SSLv3 is +removed from the `jdk.tls.disabledAlgorithms` security property, it +will still not be returned by the following methods: + +* SSLServerSocket.getEnabledProtocols() +* SSLEngine.getEnabledProtocols() +* SSLParameters.getProtocols() + +To enable SSLv3, it is now necessary to use the +`jdk.tls.client.protocols` or `jdk.tls.server.protocols` system +properties on the command line, or call one of the following methods +to enable them programatically: + +* SSLSocket.setEnabledProtocols() +* SSLServerSocket.setEnabledProtocols() +* SSLEngine.setEnabledProtocols() + +security-libs/java.security: + +JDK-8245654: Added Certigna(Dhimyotis) Root CA Certificate +========================================================== +The following root certificate has been added to the cacerts truststore: + +Name: Certigna (Dhimyotis) +Alias Name: certignarootca +Distinguished Name: CN=Certigna, O=Dhimyotis, C=FR + +core-libs/java.io: + +JDK-8208077: File::listRoots Changed To Return All Available Drives On Windows +============================================================================== +The `java.io.File.listRoots()` method on Windows systems filtered out disk +drives that could not be accessed or did not have media loaded. The +use of this filtering led to observable performance issues. This release +now returns all available disk drives, unfiltered. + +New in release OpenJDK 11.0.18 (2023-01-17): +============================================= +Live versions of these release notes can be found at: + * https://bit.ly/openjdk11018 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.18.html + +* CVEs + - CVE-2023-21835 + - CVE-2023-21843 +* Security fixes + - JDK-8286070: Improve UTF8 representation + - JDK-8286496: Improve Thread labels + - JDK-8287411: Enhance DTLS performance + - JDK-8288516: Enhance font creation + - JDK-8289350: Better media supports + - JDK-8293554: Enhanced DH Key Exchanges + - JDK-8293598: Enhance InetAddress address handling + - JDK-8293717: Objective view of ObjectView + - JDK-8293734: Improve BMP image handling + - JDK-8293742: Better Banking of Sounds + - JDK-8295687: Better BMP bounds +* Other changes + - JDK-4819544: SwingSet2 JTable Demo throws NullPointerException + - JDK-6782021: It is not possible to read local computer certificates with the SunMSCAPI provider + - JDK-6829250: Reg test: java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java fails in Windows + - JDK-7001973: java/awt/Graphics2D/CopyAreaOOB.java fails + - JDK-8022403: sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails + - JDK-8028998: [TEST_BUG] [macosx] java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java failed + - JDK-8029633: Raw inner class constructor ref should not perform diamond inference + - JDK-8030121: java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java fails + - JDK-8079267: [TEST_BUG] Test java/awt/Frame/MiscUndecorated/RepaintTest.java fails + - JDK-8129827: [TEST_BUG] Test java/awt/Robot/RobotWheelTest/RobotWheelTest.java fails + - JDK-8159599: [TEST_BUG] java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java + - JDK-8169187: [macosx] Aqua: java/awt/image/multiresolution/MultiresolutionIconTest.java + - JDK-8172269: When checking the default behaviour for a scroll tab layout and checking the 'opaque' checkbox, the area behind tabs is not red. + - JDK-8178698: javax/sound/midi/Sequencer/MetaCallback.java failed with timeout + - JDK-8193942: Regression automated test '/open/test/jdk/javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java' fails + - JDK-8194126: Regression automated Test '/open/test/jdk/javax/swing/JColorChooser/Test7194184.java' fails + - JDK-8198343: Test java/awt/print/PrinterJob/TestPgfmtSetMPA.java may fail w/o printer + - JDK-8199290: [TESTBUG] sun.hotspot.WhiteBox$WhiteBoxPermission is not copied + - JDK-8202836: [macosx] test java/awt/Graphics/TextAAHintsTest.java fails + - JDK-8206125: [windows] cannot pass relative path to --with-boot-jdk + - JDK-8210047: some pages contain content outside of landmark region + - JDK-8211002: test/jdk/java/lang/Math/PowTests.java skips testing for non-corner-case values + - JDK-8212096: javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java failed intermittently due to SSLException: Tag mismatch + - JDK-8213239: Configure cannot handle command overrides with arguments + - JDK-8215571: jdb does not include jdk.* in the default class filter + - JDK-8217032: Check pandoc capabilities in configure + - JDK-8222091: Javadoc does not handle package annotations correctly on package-info.java + - JDK-8222251: preflow visitor is not visiting lambda expressions + - JDK-8226236: win32: gc/metaspace/TestCapacityUntilGCWrapAround.java fails + - JDK-8227179: Test for new gc+metaspace=info output format + - JDK-8227651: Tests fail with SSLProtocolException: Input record too big + - JDK-8228672: [TESTBUG] gc/metaspace/TestSizeTransitions.java fails on 32-bit platforms + - JDK-8233557: [TESTBUG] DoubleClickTitleBarTest.java fails on macOs + - JDK-8233558: [TESTBUG] WindowOwnedByEmbeddedFrameTest.java fails on macos + - JDK-8233565: [TESTBUG] NullModalityDialogTest.java fails on MacOS + - JDK-8233648: [TESTBUG] DefaultMenuBarTest.java failing on macos + - JDK-8239708: Split basics.m4 into basic.m4 and util.m4 + - JDK-8240281: Remove failing assertion code when selecting first memory state in SuperWord::co_locate_pack + - JDK-8242468: VS2019 build missing vcruntime140_1.dll + - JDK-8243565: some gc tests use 'test.java.opts' and not 'test.vm.opts' + - JDK-8243568: serviceability/logging/TestLogRotation.java uses 'test.java.opts' and not 'test.vm.opts' + - JDK-8244010: Simplify usages of ProcessTools.createJavaProcessBuilder in our tests + - JDK-8244557: test/jdk/javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java failed + - JDK-8247676: vcruntime140_1.dll is not needed on 32-bit Windows + - JDK-8249694: java/lang/StringBuffer/HugeCapacity.java and j/l/StringBuilder/HugeCapacity.java tests shouldn't be @ignore-d + - JDK-8253877: gc/g1/TestGCLogMessages.java fails - missing "Evacuation failure" message + - JDK-8254874: ZGC: JNIHandleBlock verification failure in stack watermark processing + - JDK-8254976: Re-enable swing jtreg tests which were broken due to samevm mode + - JDK-8255439: System Tray icons get corrupted when Windows scaling changes + - JDK-8256109: Create implementation for NSAccessibilityButton protocol + - JDK-8257679: Improved unix compatibility layer in Windows build (winenv) + - JDK-8257722: Improve "keytool -printcert -jarfile" output + - JDK-8258005: JDK build fails with incorrect fixpath script + - JDK-8259485: Document need for short paths when building on Windows + - JDK-8260272: bash configure --prefix does not work after JDK-8257679 + - JDK-8261336: IGV: enhance default filters + - JDK-8261445: Use memory_order_relaxed for os::random(). + - JDK-8261758: [TESTBUG] gc/g1/TestGCLogMessages.java fails if ergonomics detect too small InitialHeapSize + - JDK-8263326: Remove ReceiverTypeData check from serviceability/sa/TestPrintMdo.java + - JDK-8263871: On sem_destroy() failing we should assert + - JDK-8264593: debug.cpp utilities should be available in product builds. + - JDK-8264666: Change implementation of safeAdd/safeMult in the LCMSImageLayout class + - JDK-8266082: AssertionError in Annotate.fromAnnotations with -Xdoclint + - JDK-8266967: debug.cpp utility find() should print Java Object fields. + - JDK-8268361: Fix the infinite loop in next_line + - JDK-8268860: Windows-Aarch64 build is failing in GitHub actions + - JDK-8268893: jcmd to trim the glibc heap + - JDK-8269029: compiler/codegen/TestCharVect2.java fails for client VMs + - JDK-8269873: serviceability/sa/Clhsdb tests are using a C2 specific VMStruct field + - JDK-8272123: Problem list 4 jtreg tests which regularly fail on macos-aarch64 + - JDK-8273236: keytool does not accurately warn about algorithms that are disabled but have additional constraints + - JDK-8273553: sun.security.ssl.SSLEngineImpl.closeInbound also has similar error of JDK-8253368 + - JDK-8273578: javax/swing/JMenu/4515762/bug4515762.java fails on macOS 12 + - JDK-8273685: Remove jtreg tag manual=yesno for java/awt/Graphics/LCDTextAndGraphicsState.java & show test instruction + - JDK-8274029: Remove jtreg tag manual=yesno for java/awt/print/Dialog/DialogOrient.java + - JDK-8274032: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/ImagePrinting/ImageTypes.java & show test UI + - JDK-8274296: Update or Problem List tests which may fail with uiScale=2 on macOS + - JDK-8274456: Remove jtreg tag manual=yesno java/awt/print/PrinterJob/PageDialogTest.java + - JDK-8274563: jfr/event/oldobject/TestClassLoaderLeak.java fails when GC cycles are not happening + - JDK-8274597: Some of the dnd tests time out and fail intermittently + - JDK-8275170: Some jtreg sound tests should be marked with sound keyword + - JDK-8275535: Retrying a failed authentication on multiple LDAP servers can lead to users blocked + - JDK-8276841: Add support for Visual Studio 2022 + - JDK-8277159: Fix java/nio/file/FileStore/Basic.java test by ignoring /run/user/* mount points + - JDK-8277497: Last column cell in the JTable row is read as empty cell + - JDK-8277881: Missing SessionID in TLS1.3 resumption in compatibility mode + - JDK-8277970: Test jdk/sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java fails with "tag mismatch" + - JDK-8279066: entries.remove(entry) is useless in PKCS12KeyStore + - JDK-8279695: [TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also + - JDK-8280158: New test from JDK-8274736 failed with/without patch in JDK11u + - JDK-8280550: SplittableRandom#nextDouble(double,double) can return result >= bound + - JDK-8280863: Update build README to reflect that MSYS2 is supported + - JDK-8280890: Cannot use '-Djava.system.class.loader' with class loader in signed JAR + - JDK-8280948: Write a regression test for JDK-4659800 + - JDK-8280950: RandomGenerator:NextDouble() default behavior non conformant after JDK-8280550 fix + - JDK-8281183: RandomGenerator:NextDouble() default behavior partially fixed by JDK-8280950 + - JDK-8281296: Create a regression test for JDK-4515999 + - JDK-8281297: TestStressG1Humongous fails with guarantee(is_range_uncommitted) + - JDK-8282046: Create a regression test for JDK-8000326 + - JDK-8282276: Problem list failing two Robot Screen Capture tests + - JDK-8282306: os::is_first_C_frame(frame*) crashes on invalid link access + - JDK-8282345: handle latest VS2022 in abstract_vm_version + - JDK-8282402: Create a regression test for JDK-4666101 + - JDK-8282640: Create a test for JDK-4740761 + - JDK-8282642: vmTestbase/gc/gctests/LoadUnloadGC2/LoadUnloadGC2.java fails intermittently with exit code 1 + - JDK-8282730: LdapLoginModule throw NPE from logout method after login failure + - JDK-8282777: Create a Regression test for JDK-4515031 + - JDK-8282778: Create a regression test for JDK-4699544 + - JDK-8282857: Create a regression test for JDK-4702690 + - JDK-8282936: Write a regression test for JDK-4615365 + - JDK-8282937: Write a regression test for JDK-4820080 + - JDK-8283199: Linux os::cpu_microcode_revision() stalls cold startup + - JDK-8283422: Create a new test for JDK-8254790 + - JDK-8284294: Create an automated regression test for RFE 4138746 + - JDK-8284358: Unreachable loop is not removed from C2 IR, leading to a broken graph + - JDK-8284521: Write an automated regression test for RFE 4371575 + - JDK-8284690: [macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox + - JDK-8284732: FFI_GO_CLOSURES macro not defined but required for zero build on Mac OS X + - JDK-8284752: Zero does not build on Mac OS X due to missing os::current_thread_enable_wx implementation + - JDK-8284771: java/util/zip/CloseInflaterDeflaterTest.java failed with "AssertionError: Expected IOException to be thrown, but nothing was thrown" + - JDK-8284884: Replace polling with waiting in javax/swing/text/html/parser/Parser/8078268/bug8078268.java + - JDK-8284977: MetricsTesterCgroupV2.getLongValueEntryFromFile fails when named value doesn't exist + - JDK-8285305: Create an automated test for JDK-4495286 + - JDK-8285373: Create an automated test for JDK-4702233 + - JDK-8285604: closed sun/java2d/GdiRendering/ClipShapeRendering.java failed with "Incorrect color ffeeeeee instead of ff0000ff in pixel (100, 100)" + - JDK-8285617: Fix java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java manual test + - JDK-8285698: Create a test to check the focus stealing of JPopupMenu from JComboBox + - JDK-8285794: AsyncGetCallTrace might acquire a lock via JavaThread::thread_from_jni_environment + - JDK-8285836: sun/net/www/http/KeepAliveCache/KeepAliveProperty.java failed with "RuntimeException: Failed in server" + - JDK-8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine + - JDK-8286624: Regression Test CoordinateTruncationBug.java fails on OL8.3 + - JDK-8286663: Resolve IDE warnings in WTrayIconPeer and SystemTray + - JDK-8286772: java/awt/dnd/DropTargetInInternalFrameTest/DropTargetInInternalFrameTest.html times out and fails in Windows + - JDK-8286872: Refactor add/modify notification icon (TrayIcon) + - JDK-8287076: Document.normalizeDocument() produces different results + - JDK-8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn + - JDK-8287425: Remove unnecessary register push for MacroAssembler::check_klass_subtype_slow_path + - JDK-8287609: macOS: SIGSEGV at [CoreFoundation] CFArrayGetCount / sun.font.CFont.getTableBytesNative + - JDK-8287724: Fix various issues with msys2 + - JDK-8287826: javax/accessibility/4702233/AccessiblePropertiesTest.java fails to compile + - JDK-8287895: Some langtools tests fail on msys2 + - JDK-8287896: PropertiesTest.sh fail on msys2 + - JDK-8287902: UnreadableRB case in MissingResourceCauseTest is not working reliably on Windows + - JDK-8287917: System.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier + - JDK-8288132: Update test artifacts in QuoVadis CA interop tests + - JDK-8288302: Shenandoah: SIGSEGV in vm maybe related to jit compiling xerces + - JDK-8288377: [REDO] DST not applying properly with zone id offset set with TZ env variable + - JDK-8288445: AArch64: C2 compilation fails with guarantee(!true || (true && (shift != 0))) failed: impossible encoding + - JDK-8288599: com/sun/management/OperatingSystemMXBean/TestTotalSwap.java: Expected total swap size ... but getTotalSwapSpaceSize returned ... + - JDK-8288985: P11TlsKeyMaterialGenerator should work with ChaCha20-Poly1305 + - JDK-8289043: C2: Vector constant materialization attempt + - JDK-8289146: containers/docker/TestMemoryWithCgroupV1.java fails on linux ppc64le machine with missing Memory and Swap Limit output + - JDK-8290207: Missing notice in dom.md + - JDK-8290209: jcup.md missing additional text + - JDK-8290451: Incorrect result when switching to C2 OSR compilation from C1 + - JDK-8290529: C2: assert(BoolTest(btest).is_canonical()) failure + - JDK-8290705: StringConcat::validate_mem_flow asserts with "unexpected user: StoreI" + - JDK-8290711: assert(false) failed: infinite loop in PhaseIterGVN::optimize + - JDK-8290781: Segfault at PhaseIdealLoop::clone_loop_handle_data_uses + - JDK-8291459: JVM crash with GenerateOopMap::error_work(char const*, __va_list_tag*) + - JDK-8291461: assert(false) failed: bad AD file + - JDK-8292083: Detected container memory limit may exceed physical machine memory + - JDK-8292158: AES-CTR cipher state corruption with AVX-512 + - JDK-8292541: [Metrics] Reported memory limit may exceed physical machine memory + - JDK-8292682: Code change of JDK-8282730 not updated to reflect CSR update + - JDK-8292778: EncodingSupport_md.c convertUtf8ToPlatformString wrong placing of free + - JDK-8292866: Java_sun_awt_shell_Win32ShellFolder2_getLinkLocation check MultiByteToWideChar return value for failures + - JDK-8292887: Bump update version for OpenJDK: jdk-11.0.18 + - JDK-8292899: CustomTzIDCheckDST.java testcase failed on AIX platform + - JDK-8293044: C1: Missing access check on non-accessible class + - JDK-8293472: Incorrect container resource limit detection if manual cgroup fs mounts present + - JDK-8293540: [Metrics] Incorrectly detected resource limits with additional cgroup fs mounts + - JDK-8293578: Duplicate ldc generated by javac + - JDK-8293672: Update freetype md file + - JDK-8293816: CI: ciBytecodeStream::get_klass() is not consistent + - JDK-8293826: Closed test fails after JDK-8276108 on aarch64 + - JDK-8293828: JFR: jfr/event/oldobject/TestClassLoaderLeak.java still fails when GC cycles are not happening + - JDK-8293834: Update CLDR data following tzdata 2022c update + - JDK-8293998: [PPC64] JfrGetCallTrace: assert(_pc != nullptr) failed: must have PC + - JDK-8294138: [11u] Revert change from JDK-8210962 in basic.m4 + - JDK-8294307: ISO 4217 Amendment 173 Update + - JDK-8294357: (tz) Update Timezone Data to 2022d + - JDK-8294578: [PPC64] C2: Missing is_oop information when using disjoint compressed oops mode + - JDK-8294740: Add cgroups keyword to TestDockerBasic.java + - JDK-8295173: (tz) Update Timezone Data to 2022e + - JDK-8295288: Some vm_flags tests associate with a wrong BugID + - JDK-8295322: Tests for JDK-8271459 were not backported to 11u + - JDK-8295429: Update harfbuzz md file + - JDK-8295469: S390X: Optimized builds are broken + - JDK-8295554: Move the "sizecalc.h" to the correct location + - JDK-8295641: Fix DEFAULT_PROMOTED_VERSION_PRE=ea for -dev + - JDK-8295714: GHA ::set-output is deprecated and will be removed + - JDK-8295723: security/infra/wycheproof/RunWycheproof.java fails with Assertion Error + - JDK-8295872: [PPC64] JfrGetCallTrace: Need pc == nullptr check before frame constructor + - JDK-8295952: Problemlist existing compiler/rtm tests also on x86 + - JDK-8296108: (tz) Update Timezone Data to 2022f + - JDK-8296239: ISO 4217 Amendment 174 Update + - JDK-8296480: java/security/cert/pkix/policyChanges/TestPolicy.java is failing + - JDK-8296485: BuildEEBasicConstraints.java test fails with SunCertPathBuilderException + - JDK-8296496, JDK-8292652: Overzealous check in sizecalc.h prevents large memory allocation + - JDK-8296632: Write a test to verify the content change of TextArea sends TextEvent + - JDK-8296652: Restore windows aarch64 fixpath patch that was removed in 8239708 + - JDK-8296715: CLDR v42 update for tzdata 2022f + - JDK-8296957: One more cast in SAFE_SIZE_NEW_ARRAY2 + - JDK-8297147: UnexpectedSourceImageSize test times out on slow machines when fastdebug is used + - JDK-8297153: sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails again + - JDK-8297241: Update sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java + - JDK-8297481: Create a regression test for JDK-4424517 + - JDK-8297656: AArch64: Enable AES/GCM Intrinsics + - JDK-8297804: (tz) Update Timezone Data to 2022g + - JDK-8298737: 8296772 backport to jdk11u caused build error on sparc + - JDK-8299393: [11u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 11.0.18 + - JDK-8299439: java/text/Format/NumberFormat/CurrencyFormat.java fails for hr_HR + - JDK-8299483: ProblemList java/text/Format/NumberFormat/CurrencyFormat.java + - JDK-8299616: [11u] Bootcycle build fails after JDK-8257679 backport + +Notes on individual issues: +=========================== + +client-libs/javax.imageio: + +JDK-8295687: Better BMP bounds +============================== +Loading a linked ICC profile within a BMP image is now disabled by +default. To re-enable it, set the new system property +`sun.imageio.bmp.enabledLinkedProfiles` to `true`. This new property +replaces the old property, +`sun.imageio.plugins.bmp.disableLinkedProfiles`. + +client-libs/javax.sound: + +JDK-8293742: Better Banking of Sounds +===================================== +Previously, the SoundbankReader implementation, +`com.sun.media.sound.JARSoundbankReader`, would download a JAR +soundbank from a URL. This behaviour is now disabled by default. To +re-enable it, set the new system property `jdk.sound.jarsoundbank` to +`true`. + +security-libs/javax.crypto: + +JDK-6782021: Windows KeyStore Updated to Include Access to the Local Machine Location +===================================================================================== +The Windows KeyStore support in the SunMSCAPI provider has been +expanded to include access to the local machine location. The new +keystore types are: + +* "Windows-MY-LOCALMACHINE" +* "Windows-ROOT-LOCALMACHINE" + +The following keystore types were also added, allowing developers to +make it clear they map to the current user: + +* "Windows-MY-CURRENTUSER" (same as "Windows-MY") +* "Windows-ROOT-CURRENTUSER" (same as "Windows-ROOT") + +security-libs/java.security: + +JDK-8282730: New Implementation Note for LoginModule on Removing Null from a Principals or Credentials Set +========================================================================================================== +Back in OpenJDK 9, JDK-8015081 changed the Set implementation used to +hold principals and credentials so that it rejected null +values. Attempts to call add(null), contains(null) or remove(null) +were changed to throw a NullPointerException. + +However, the logout() methods in the LoginModule implementations +within the JDK were not updated to check for null values, which may +occur in the event of a failed login. As a result, a logout() call may +throw a NullPointerException. + +The LoginModule implementations have now been updated with such checks +and an implementation note added to the specification to suggest that +the same change is made in third party modules. Developers of third +party modules are advised to verify that their logout() method does not +throw a NullPointerException. + +security-libs/javax.net.ssl: + +JDK-8287411: Enhance DTLS performance +===================================== +The JDK now exchanges DTLS cookies for all handshakes, new and +resumed. The previous behaviour can be re-enabled by setting the new +system property `jdk.tls.enableDtlsResumeCookie` to `false`. + +New in release OpenJDK 11.0.17 (2022-10-18): +============================================= +Live versions of these release notes can be found at: + * https://bit.ly/openjdk11017 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.17.html + +* Security fixes + - JDK-8282252: Improve BigInteger/Decimal validation + - JDK-8285662: Better permission resolution + - JDK-8286077, CVE-2022-21618: Wider MultiByte conversions + - JDK-8286511: Improve macro allocation + - JDK-8286519: Better memory handling + - JDK-8286526, CVE-2022-21619: Improve NTLM support + - JDK-8286533, CVE-2022-21626: Key X509 usages + - JDK-8286910, CVE-2022-21624: Improve JNDI lookups + - JDK-8286918, CVE-2022-21628: Better HttpServer service + - JDK-8287446: Enhance icon presentations + - JDK-8288508: Enhance ECDSA usage + - JDK-8289366, CVE-2022-39399: Improve HTTP/2 client usage + - JDK-8289853: Update HarfBuzz to 4.4.1 + - JDK-8290334: Update FreeType to 2.12.1 + - JDK-8293429: [11u] minor update in attribute style +* Other changes + - JDK-6606767: resexhausted00[34] fail assert(!thread->owns_locks(), "must release all locks when leaving VM") + - JDK-6854300: [TEST_BUG] java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java fails in jdk6u14 & jdk7 + - JDK-7131823: bug in GIFImageReader + - JDK-8017175: [TESTBUG] javax/swing/JPopupMenu/4634626/bug4634626.java sometimes failed on mac + - JDK-8028265: Add legacy tz tests to OpenJDK + - JDK-8069343: Improve gc/g1/TestHumongousCodeCacheRoots.java to use jtreg @requires + - JDK-8139348: Deprecate 3DES and RC4 in Kerberos + - JDK-8159694: HiDPI, Unity, java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java + - JDK-8164804: sun/security/ssl/SSLSocketImpl/CloseSocket.java makes not reliable time assumption + - JDK-8169468: NoResizeEventOnDMChangeTest.java fails because FS Window didn't receive all resizes! + - JDK-8172065: javax/swing/JTree/4908142/bug4908142.java The selected index should be "aad" + - JDK-8183372: Refactor java/lang/Class shell tests to java + - JDK-8186143: keytool -ext option doesn't accept wildcards for DNS subject alternative names + - JDK-8193462: Fix Filer handling of package-info initial elements + - JDK-8203277: preflow visitor used during lambda attribution shouldn't visit class definitions inside the lambda body + - JDK-8208471: nsk/jdb/unwatch/unwatch002/unwatch002.java fails with "Prompt is not received during 300200 milliseconds" + - JDK-8209052: Low contrast in docs/api/constant-values.html + - JDK-8209736: runtime/RedefineTests/ModifyAnonymous.java fails with NullPointerException when running in CDS mode + - JDK-8210107: vmTestbase/nsk/stress/network tests fail with Cannot assign requested address (Bind failed) + - JDK-8210722: JAXP Tests: CatalogSupport2 and CatalogSupport3 generate incorrect messages upon failure + - JDK-8210960: Allow --with-boot-jdk-jvmargs to work during configure + - JDK-8212904: JTextArea line wrapping incorrect when using UI scale + - JDK-8213695: gc/TestAllocateHeapAtMultiple.java is slow in some configs + - JDK-8214078: (fs) SecureDirectoryStream not supported on arm32 + - JDK-8214427: probable bug in logic of ConcurrentHashMap.addCount() + - JDK-8215291: Broken links when generating from project without modules + - JDK-8217170: gc/arguments/TestUseCompressedOopsErgo.java timed out + - JDK-8217332: JTREG: Clean up, use generics instead of raw types + - JDK-8218128: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003 and 004 use wrong path to test classes + - JDK-8218413: make reconfigure ignores configure-time AUTOCONF environment variable + - JDK-8219074: [TESTBUG] runtime/containers/docker/TestCPUAwareness.java typo of printing parameters (period should be shares) + - JDK-8219149: ProcessTools.ProcessBuilder should print timing info for subprocesses + - JDK-8220744: [TESTBUG] Move RedefineTests from runtime to serviceability + - JDK-8221871: javadoc should not set role=region on
elements + - JDK-8221907: make reconfigure breaks when configured with relative paths + - JDK-8223543: [TESTBUG] Regression test java/awt/Graphics2D/DrawString/LCDTextSrcEa.java has issues + - JDK-8223575: add subspace transitions to gc+metaspace=info log lines + - JDK-8225122: Test AncestorResized.java fails when Windows desktop is scaled. + - JDK-8226976: SessionTimeOutTests uses == operator for String value check + - JDK-8230708: Hotspot fails to build on linux-sparc with gcc-9 + - JDK-8233712: Limit default tests jobs based on ulimit -u setting + - JDK-8235870: C2 crashes in IdealLoopTree::est_loop_flow_merge_sz() + - JDK-8236490: Compiler bug relating to @NonNull annotation + - JDK-8236823: Ensure that API documentation uses minified libraries + - JDK-8238196: tests that use SA Attach should not be allowed to run against signed binaries on Mac OS X 10.14.5 and later + - JDK-8238203: Return value of GetUserDefaultUILanguage() should be handled as LANGID + - JDK-8238268: Many SA tests are not running on OSX because they do not attempt to use sudo when available + - JDK-8238586: [TESTBUG] vmTestbase/jit/tiered/Test.java failed when TieredCompilation is disabled + - JDK-8239265: JFR: Test cleanup of jdk.jfr.api.consumer package + - JDK-8239379: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.java on OSX + - JDK-8239423: jdk/jfr/jvm/TestJFRIntrinsic.java failed with -XX:-TieredCompilation + - JDK-8239902: [macos] Remove direct usage of JSlider, JProgressBar classes in CAccessible class + - JDK-8240903: Add test to check that jmod hashes are reproducible + - JDK-8242188: error in jtreg test jdk/jfr/api/consumer/TestRecordedFrame.java on linux-aarch64 + - JDK-8247546: Pattern matching does not skip correctly over supplementary characters + - JDK-8247907: XMLDsig logging does not work + - JDK-8247964: All log0() in com/sun/org/slf4j/internal/Logger.java should be private + - JDK-8249623: test @ignore-d due to 7013634 should be returned back to execution + - JDK-8251152: ARM32: jtreg c2 Test8202414 test crash + - JDK-8251551: Use .md filename extension for README + - JDK-8252145: Unify Info.plist files with correct version strings + - JDK-8253829: Wrong length compared in SSPI bridge + - JDK-8253916: ResourceExhausted/resexhausted001 crashes on Linux-x64 + - JDK-8254178: Remove .hgignore + - JDK-8254318: Remove .hgtags + - JDK-8255724: [XRender] the BlitRotateClippedArea test fails on Linux in the XR pipeline + - JDK-8255729: com.sun.tools.javac.processing.JavacFiler.FilerOutputStream is inefficient + - JDK-8257623: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted001/TestDescription.java shouldn't use timeout + - JDK-8258946: Fix optimization-unstable code involving signed integer overflow + - JDK-8261160: Add a deserialization JFR event + - JDK-8262085: Hovering Metal HTML Tooltips in different windows cause IllegalArgExc on Linux + - JDK-8264400: (fs) WindowsFileStore equality depends on how the FileStore was constructed + - JDK-8264792: The NumberFormat for locale sq_XK formats price incorrectly. + - JDK-8265020: tests must be updated for new TestNG module name + - JDK-8265100: (fs) WindowsFileStore.hashCode() should read cached hash code once + - JDK-8265531: doc/building.md should mention homebrew install freetype + - JDK-8266250: WebSocketTest and WebSocketProxyTest call assertEquals(List, List) + - JDK-8266254: Update to use jtreg 6 + - JDK-8266460: java.io tests fail on null stream with upgraded jtreg/TestNG + - JDK-8266461: tools/jmod/hashes/HashesTest.java fails: static @Test methods + - JDK-8266490: Extend the OSContainer API to support the pids controller of cgroups + - JDK-8266675: Optimize IntHashTable for encapsulation and ease of use + - JDK-8266774: System property values for stdout/err on Windows UTF-8 + - JDK-8266881: Enable debug log for SSLEngineExplorerMatchedSNI.java + - JDK-8267180: Typo in copyright header for HashesTest + - JDK-8267271: Fix gc/arguments/TestNewRatioFlag.java expectedNewSize calculation + - JDK-8267880: Upgrade the default PKCS12 MAC algorithm + - JDK-8268185: Update GitHub Actions for jtreg 6 + - JDK-8269039: Disable SHA-1 Signed JARs + - JDK-8269517: compiler/loopopts/TestPartialPeelingSinkNodes.java crashes with -XX:+VerifyGraphEdges + - JDK-8270090: C2: LCM may prioritize CheckCastPP nodes over projections + - JDK-8270312: Error: Not a test or directory containing tests: java/awt/print/PrinterJob/XparColor.java + - JDK-8271010: vmTestbase/gc/lock/malloc/malloclock04/TestDescription.java crashes intermittently + - JDK-8271078: jdk/incubator/vector/Float128VectorTests.java failed a subtest + - JDK-8271512: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.java due to 8270326 + - JDK-8272352: Java launcher can not parse Chinese character when system locale is set to UTF-8 + - JDK-8272398: Update DockerTestUtils.buildJdkDockerImage() + - JDK-8273526: Extend the OSContainer API pids controller with pids.current + - JDK-8274506: TestPids.java and TestPidsLimit.java fail with podman run as root + - JDK-8274517: java/util/DoubleStreamSums/CompensatedSums.java fails with expected [true] but found [false] + - JDK-8274687: JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend + - JDK-8275008: gtest build failure due to stringop-overflow warning with gcc11 + - JDK-8275689: [TESTBUG] Use color tolerance only for XRender in BlitRotateClippedArea test + - JDK-8275887: jarsigner prints invalid digest/signature algorithm warnings if keysize is weak/disabled + - JDK-8277893: Arraycopy stress tests + - JDK-8278067: Make HttpURLConnection default keep alive timeout configurable + - JDK-8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output + - JDK-8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" + - JDK-8279032: compiler/loopopts/TestSkeletonPredicateNegation.java times out with -XX:TieredStopAtLevel < 4 + - JDK-8279385: [test] Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344 + - JDK-8279622: C2: miscompilation of map pattern as a vector reduction + - JDK-8280913: Create a regression test for JRootPane.setDefaultButton() method + - JDK-8281181: Do not use CPU Shares to compute active processor count + - JDK-8281535: Create a regression test for JDK-4670051 + - JDK-8281569: Create tests for Frame.setMinimumSize() method + - JDK-8281628: KeyAgreement : generateSecret intermittently not resetting + - JDK-8281738: Create a regression test for checking the 'Space' key activation of focused Button + - JDK-8281745: Create a regression test for JDK-4514331 + - JDK-8281988: Create a regression test for JDK-4618767 + - JDK-8282214: Upgrade JQuery to version 3.6.0 + - JDK-8282234: Create a regression test for JDK-4532513 + - JDK-8282280: Update Xerces to Version 2.12.2 + - JDK-8282343: Create a regression test for JDK-4518432 + - JDK-8282538: PKCS11 tests fail on CentOS Stream 9 + - JDK-8282548: Create a regression test for JDK-4330998 + - JDK-8282555: Missing memory edge when spilling MoveF2I, MoveD2L etc + - JDK-8282789: Create a regression test for the JTree usecase of JDK-4618767 + - JDK-8282860: Write a regression test for JDK-4164779 + - JDK-8282933: Create a test for JDK-4529616 + - JDK-8282947: JFR: Dump on shutdown live-locks in some conditions + - JDK-8283015: Create a test for JDK-4715496 + - JDK-8283017: GHA: Workflows break with update release versions + - JDK-8283087: Create a test or JDK-4715503 + - JDK-8283245: Create a test for JDK-4670319 + - JDK-8283277: ISO 4217 Amendment 171 Update + - JDK-8283441: C2: segmentation fault in ciMethodBlocks::make_block_at(int) + - JDK-8283493: Create an automated regression test for RFE 4231298 + - JDK-8283507: Create a regression test for RFE 4287690 + - JDK-8283621: Write a regression test for CCC4400728 + - JDK-8283623: Create an automated regression test for JDK-4525475 + - JDK-8283624: Create an automated regression test for RFE-4390885 + - JDK-8283712: Create a manual test framework class + - JDK-8283803: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/PrintGlyphVectorTest.java and fix test + - JDK-8283849: AsyncGetCallTrace may crash JVM on guarantee + - JDK-8283903: GetContainerCpuLoad does not return the correct result in share mode + - JDK-8284077: Create an automated test for JDK-4170173 + - JDK-8284367: JQuery UI upgrade from 1.12.1 to 1.13.1 + - JDK-8284535: Fix PrintLatinCJKTest.java test that is failing with Parse Exception + - JDK-8284680: sun.font.FontConfigManager.getFontConfig() leaks charset + - JDK-8284694: Avoid evaluating SSLAlgorithmConstraints twice + - JDK-8284754: print more interesting env variables in hs_err and VM.info + - JDK-8284758: [linux] improve print_container_info + - JDK-8284882: SIGSEGV in Node::verify_edges due to compilation bailout + - JDK-8284898: Enhance PassFailJFrame + - JDK-8284944: assert(cnt++ < 40) failed: infinite cycle in loop optimization + - JDK-8284950: CgroupV1 detection code should consider memory.swappiness + - JDK-8284956: Potential leak awtImageData/color_data when initializes X11GraphicsEnvironment + - JDK-8285081: Improve XPath operators count accuracy + - JDK-8285097: Duplicate XML keys in XPATHErrorResources.java and XSLTErrorResources.java + - JDK-8285380: Fix typos in security + - JDK-8285398: Cache the results of constraint checks + - JDK-8285693: Create an automated test for JDK-4702199 + - JDK-8285696: AlgorithmConstraints:permits not throwing IllegalArgumentException when 'alg' is null + - JDK-8285728: Alpine Linux build fails with busybox tar + - JDK-8285820: C2: LCM prioritizes locally dependent CreateEx nodes over projections after 8270090 + - JDK-8286114: [test] show real exception in bomb call in sun/rmi/runtime/Log/checkLogging/CheckLogging.java + - JDK-8286177: C2: "failed: non-reduction loop contains reduction nodes" assert failure + - JDK-8286211: Update PCSC-Lite for Suse Linux to 1.9.5 + - JDK-8286314: Trampoline not created for far runtime targets outside small CodeCache + - JDK-8286582: Build fails on macos aarch64 when using --with-zlib=bundled + - JDK-8287017: Bump update version for OpenJDK: jdk-11.0.17 + - JDK-8287073: NPE from CgroupV2Subsystem.getInstance() + - JDK-8287107: CgroupSubsystemFactory.setCgroupV2Path asserts with freezer controller + - JDK-8287202: GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event + - JDK-8287223: C1: Inlining attempt through MH::invokeBasic() with null receiver + - JDK-8287336: GHA: Workflows break on patch versions + - JDK-8287366: Improve test failure reporting in GHA + - JDK-8287432: C2: assert(tn->in(0) != __null) failed: must have live top node + - JDK-8287463: JFR: Disable TestDevNull.java on Windows + - JDK-8287663: Add a regression test for JDK-8287073 + - JDK-8287672: jtreg test com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails intermittently in nightly run + - JDK-8287741: Fix of JDK-8287107 (unused cgv1 freezer controller) was incomplete + - JDK-8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes + - JDK-8288467: remove memory_operand assert for spilled instructions + - JDK-8288754: GCC 12 fails to build zReferenceProcessor.cpp + - JDK-8288763: Pack200 extraction failure with invalid size + - JDK-8288781: C1: LIR_OpVisitState::maxNumberOfOperands too small + - JDK-8288865: [aarch64] LDR instructions must use legitimized addresses + - JDK-8288928: Incorrect GPL header in pnglibconf.h (backport of JDK-8185041) + - JDK-8289471: Issue in Initialization of keys in ErrorMsg.java and XPATHErrorResources.java + - JDK-8289477: Memory corruption with CPU_ALLOC, CPU_FREE on muslc + - JDK-8289486: Improve XSLT XPath operators count efficiency + - JDK-8289549: ISO 4217 Amendment 172 Update + - JDK-8289569: [test] java/lang/ProcessBuilder/Basic.java fails on Alpine/musl + - JDK-8289799: Build warning in methodData.cpp memset zero-length parameter + - JDK-8289856: [PPC64] SIGSEGV in C2Compiler::init_c2_runtime() after JDK-8289060 + - JDK-8290000: Bump macOS GitHub actions to macOS 11 + - JDK-8290004: [PPC64] JfrGetCallTrace: assert(_pc != nullptr) failed: must have PC + - JDK-8290198: Shenandoah: a few Shenandoah tests failure after JDK-8214799 11u backport + - JDK-8290246: test fails "assert(init != __null) failed: initialization not found" + - JDK-8290813: jdk/nashorn/api/scripting/test/ScriptObjectMirrorTest.java fails: assertEquals is ambiguous + - JDK-8290886: [11u]: Backport of JDK-8266250 introduced test failures + - JDK-8291570: [TESTBUG] Part of JDK-8250984 absent from 11u + - JDK-8291713: assert(!phase->exceeding_node_budget()) failed: sanity after JDK-8223389 + - JDK-8291794: [11u] Corrections after backport of JDK-8212028 + - JDK-8292579: (tz) Update Timezone Data to 2022c + - JDK-8292852: [11u] TestMemoryWithCgroupV1 fails after JDK-8292768 + - JDK-8295057: [11u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 11.0.17 + +Notes on individual issues: +=========================== + +core-libs/java.net: + +JDK-8278067: Make HttpURLConnection Default Keep Alive Timeout Configurable +=========================================================================== +Two system properties have been added which control the keep alive +behavior of HttpURLConnection in the case where the server does not +specify a keep alive time. Two properties are defined for controlling +connections to servers and proxies separately. They are: + +* `http.keepAlive.time.server` +* `http.keepAlive.time.proxy` + +respectively. More information about them can be found on the +Networking Properties page: +https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html. + +JDK-8286918: Better HttpServer service +====================================== +The HttpServer can be optionally configured with a maximum connection +limit by setting the jdk.httpserver.maxConnections system property. A +value of 0 or a negative integer is ignored and considered to +represent no connection limit. In the case of a positive integer +value, any newly accepted connections will be first checked against +the current count of established connections and, if the configured +limit has been reached, then the newly accepted connection will be +closed immediately. + +hotspot/runtime: + +JDK-8281181: CPU Shares Ignored When Computing Active Processor Count +===================================================================== +Previous JDK releases used an incorrect interpretation of the Linux +cgroups parameter "cpu.shares". This might cause the JVM to use fewer +CPUs than available, leading to an under utilization of CPU resources +when the JVM is used inside a container. + +Starting from this JDK release, by default, the JVM no longer +considers "cpu.shares" when deciding the number of threads to be used +by the various thread pools. The `-XX:+UseContainerCpuShares` +command-line option can be used to revert to the previous +behavior. This option is deprecated and may be removed in a future JDK +release. + +security-libs/java.security: + +JDK-8269039: Disabled SHA-1 Signed JARs +======================================= +JARs signed with SHA-1 algorithms are now restricted by default and +treated as if they were unsigned. This applies to the algorithms used +to digest, sign, and optionally timestamp the JAR. It also applies to +the signature and digest algorithms of the certificates in the +certificate chain of the code signer and the Timestamp Authority, and +any CRLs or OCSP responses that are used to verify if those +certificates have been revoked. These restrictions also apply to +signed JCE providers. + +To reduce the compatibility risk for JARs that have been previously +timestamped, there is one exception to this policy: + +- Any JAR signed with SHA-1 algorithms and timestamped prior to + January 01, 2019 will not be restricted. + +This exception may be removed in a future JDK release. To determine if +your signed JARs are affected by this change, run: + +$ jarsigner -verify -verbose -certs` + +on the signed JAR, and look for instances of "SHA1" or "SHA-1" and +"disabled" and a warning that the JAR will be treated as unsigned in +the output. + +For example: + + Signed by "CN="Signer"" + Digest algorithm: SHA-1 (disabled) + Signature algorithm: SHA1withRSA (disabled), 2048-bit key + + WARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property: + + jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024, SHA1 denyAfter 2019-01-01 + +JARs affected by these new restrictions should be replaced or +re-signed with stronger algorithms. + +Users can, *at their own risk*, remove these restrictions by modifying +the `java.security` configuration file (or override it by using the +`java.security.properties` system property) and removing "SHA1 usage +SignedJAR & denyAfter 2019-01-01" from the +`jdk.certpath.disabledAlgorithms` security property and "SHA1 +denyAfter 2019-01-01" from the `jdk.jar.disabledAlgorithms` security +property. + +JDK-8267880: Upgrade the default PKCS12 MAC algorithm +===================================================== + +The default MAC algorithm used in a PKCS #12 keystore has been +updated. The new algorithm is based on SHA-256 and is stronger than +the old one based on SHA-1. See the security properties starting with +`keystore.pkcs12` in the `java.security` file for detailed +information. + +The new SHA-256 based MAC algorithms were introduced in the 11.0.12 +release. Keystores created using this newer, stronger, MAC algorithm +cannot be opened in versions of OpenJDK 11 earlier than 11.0.12. A +'java.security.NoSuchAlgorithmException' exception will be thrown in +such circumstances. + +For compatibility, use the `keystore.pkcs12.legacy` system property, +which will revert the algorithms to use the older, weaker +algorithms. There is no value defined for this property. + +core-libs/java.io:serialization: + +JDK-8261160: JDK Flight Recorder Event for Deserialization +========================================================== +It is now possible to monitor deserialization of objects using JDK +Flight Recorder (JFR). When JFR is enabled and the JFR configuration +includes deserialization events, JFR will emit an event whenever the +running program attempts to deserialize an object. The deserialization +event is named `jdk.Deserialization`, and it is disabled by +default. The deserialization event contains information that is used +by the serialization filter mechanism; see the ObjectInputFilter API +specification for details. + +Additionally, if a filter is enabled, the JFR event indicates whether +the filter accepted or rejected deserialization of the object. For +further information about how to use the JFR deserialization event, +see the article "Monitoring Deserialization to Improve Application +Security" +(https://inside.java/2021/03/02/monitoring-deserialization-activity-in-the-jdk/). + +For reference information about using and configuring JFR, see the +"JFR Runtime Guide" +(https://docs.oracle.com/javacomponents/jmc-5-5/jfr-runtime-guide/preface_jfrrt.htm#JFRRT165) +and "JFR Command Reference" +(https://docs.oracle.com/javacomponents/jmc-5-5/jfr-command-reference/command-line-options.htm#JFRCR-GUID-FE61CA60-E1DF-460E-A8E0-F4FF5D58A7A0) +sections of the JDK Mission Control documentation. + +security-libs/org.ietf.jgss:krb5: + +JDK-8139348: Deprecate 3DES and RC4 in Kerberos +=============================================== +The `des3-hmac-sha1` and `rc4-hmac` Kerberos encryption types (etypes) +are now deprecated and disabled by default. Users can set +`allow_weak_crypto = true` in the `krb5.conf` configuration file to +re-enable them (along with other weak etypes including `des-cbc-crc` +and `des-cbc-md5`) at their own risk. To disable a subset of the weak +etypes, users can list preferred etypes explicitly in any of the +`default_tkt_enctypes`, `default_tgs_enctypes`, or +`permitted_enctypes` settings. + +New in release OpenJDK 11.0.16.1 (2022-08-12): +============================================= +Live versions of these release notes can be found at: + * https://bit.ly/openjdk110161 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.16.1.txt + +* Other changes + - JDK-8292255: Bump update version for OpenJDK: jdk-11.0.16.1 + - JDK-8292260: [BACKOUT] JDK-8279219: [REDO] C2 crash when allocating array of size too large + +Notes on individual issues: +=========================== + +hotspot/compiler: + +JDK-8292396: C2 Compilation Errors Unpredictably Crashes JVM +============================================================ +Fixes a regression in the C2 JIT compiler which caused the Java +Runtime to crash unpredictably. + +New in release OpenJDK 11.0.16 (2022-07-19): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11016 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.16.txt + +* Security fixes + - JDK-8277608: Address IP Addressing + - JDK-8272243: Improve DER parsing + - JDK-8272249: Better properties of loaded Properties + - JDK-8281859, CVE-2022-21540: Improve class compilation + - JDK-8281866, CVE-2022-21541: Enhance MethodHandle invocations + - JDK-8283190: Improve MIDI processing + - JDK-8284370: Improve zlib usage + - JDK-8285407, CVE-2022-34169: Improve Xalan supports +* Other changes + - JDK-6986863: ProfileDeferralMgr throwing ConcurrentModificationException + - JDK-7124293: [macosx] VoiceOver reads percentages rather than the actual values for sliders. + - JDK-7124301: [macosx] When in a tab group if you arrow between tabs there are no VoiceOver announcements. + - JDK-8133713: [macosx] Accessible JTables always reported as empty + - JDK-8139046: Compiler Control: IGVPrintLevel directive should set PrintIdealGraph + - JDK-8139173: [macosx] JInternalFrame shadow is not properly drawn + - JDK-8163498: Many long-running security libs tests + - JDK-8166727: javac crashed: [jimage.dll+0x1942] ImageStrings::find+0x28 + - JDK-8169004: Fix redundant @requires tags in tests + - JDK-8181571: printing to CUPS fails on mac sandbox app + - JDK-8182404: remove jdk.testlibrary.JDKToolFinder and JDKToolLauncher + - JDK-8186548: move jdk.testlibrary.JcmdBase closer to tests + - JDK-8192057: com/sun/jdi/BadHandshakeTest.java fails with java.net.ConnectException + - JDK-8193682: Infinite loop in ZipOutputStream.close() + - JDK-8199874: [TESTBUG] runtime/Thread/ThreadPriorities.java fails with "expected 0 to equal 10" + - JDK-8202886: [macos] Test java/awt/MenuBar/8007006/bug8007006.java fails on MacOS + - JDK-8203238: [TESTBUG] rewrite MemOptions shell test in Java + - JDK-8203239: [TESTBUG] remove vmTestbase/vm/gc/kind/parOld test + - JDK-8206187: javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java fails with Port already in use + - JDK-8206330: Revisit com/sun/jdi/RedefineCrossEvent.java + - JDK-8207364: nsk/jvmti/ResourceExhausted/resexhausted003 fails to start + - JDK-8208207: Test nsk/stress/jni/gclocker/gcl001 fails after co-location + - JDK-8208246: flags duplications in vmTestbase_vm_g1classunloading tests + - JDK-8208249: TriggerUnloadingByFillingMetaspace generates garbage class names + - JDK-8208697: vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java fails with OutOfMemoryError: Metaspace + - JDK-8209150: [TESTBUG] Add logging to verify JDK-8197901 to a different test + - JDK-8209776: Refactor jdk/security/JavaDotSecurity/ifdefs.sh to plain java test + - JDK-8209883: ZGC: Compile without C1 broken + - JDK-8209920: runtime/logging/RedefineClasses.java fail with OOME with ZGC + - JDK-8210022: remove jdk.testlibrary.ProcessThread, TestThread and XRun + - JDK-8210039: move OSInfo to top level testlibrary + - JDK-8210108: sun/tools/jstatd test build failures after JDK-8210022 + - JDK-8210112: remove jdk.testlibrary.ProcessTools + - JDK-8210649: AssertionError @ jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:244) + - JDK-8210732: remove jdk.testlibrary.Utils + - JDK-8211795: ArrayIndexOutOfBoundsException in PNGImageReader after JDK-6788458 + - JDK-8211822: Some tests fail after JDK-8210039 + - JDK-8211962: Implicit narrowing in MacOSX java.desktop jsound + - JDK-8212151: jdi/ExclusiveBind.java times out due to "bind failed: Address already in use" on Solaris-X64 + - JDK-8213440: Lingering INCLUDE_ALL_GCS in test_oopStorage_parperf.cpp + - JDK-8214275: CondyRepeatFailedResolution asserts "Dynamic constant has no fixed basic type" + - JDK-8214799: Add package declaration to each JTREG test case in the gc folder + - JDK-8215544: SA: Modify ClhsdbLauncher to add sudo privileges to enable MacOS tests on Mach5 + - JDK-8216137: assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit + - JDK-8216265: [testbug] Introduce Platform.sharedLibraryPathVariableName() and adapt all tests. + - JDK-8216366: Add rationale to PER_CPU_SHARES define + - JDK-8217017: [TESTBUG] Tests fail to compile after JDK-8216265 + - JDK-8217233: Update build settings for AIX/xlc + - JDK-8217340: Compilation failed: tools/launcher/Test7029048.java + - JDK-8217473: SA: Tests using ClhsdbLauncher fail on SAP docker containers + - JDK-8218136: minor hotspot adjustments for xlclang++ from xlc16 on AIX + - JDK-8218751: Do not store original classfiles inside the CDS archive + - JDK-8218965: aix: support xlclang++ in the compiler detection + - JDK-8220658: Improve the readability of container information in the error log + - JDK-8220813: update hotspot tier1_gc tests depending on GC to use @requires vm.gc.X + - JDK-8222799: java.beans.Introspector uses an obsolete methods cache + - JDK-8222926: Shenandoah build fails with --with-jvm-features=-compiler1 + - JDK-8223143: Restructure/clean-up for 'loopexit_or_null()'. + - JDK-8223363: Bad node estimate assertion failure + - JDK-8223389: Shenandoah optimizations fail with assert(!phase->exceeding_node_budget()) + - JDK-8223396: [TESTBUG] several jfr tests do not clean up files created in /tmp + - JDK-8223502: Node estimate for loop unswitching is not correct: assert(delta <= 2 * required) failed: Bad node estimate + - JDK-8224648: assert(!exceeding_node_budget()) failed: Too many NODES required! failure with ctw + - JDK-8225475: Node budget asserts on x86_32/64 + - JDK-8227171: provide function names in native stack trace on aix with xlc16 + - JDK-8227389: Remove unsupported xlc16 compile options on aix + - JDK-8229202: Docker reporting causes secondary crashes in error handling + - JDK-8229210: [TESTBUG] Move gc stress tests from JFR directory tree to gc/stress + - JDK-8229486: Replace wildcard address with loopback or local host in tests - part 21 + - JDK-8229499: Node budget assert in fuzzed test + - JDK-8230305: Cgroups v2: Container awareness + - JDK-8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell MakeJAR.sh target + - JDK-8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy + - JDK-8231454: File lock in Windows on a loaded jar due to a leak in Introspector::getBeanInfo + - JDK-8231489: GC watermark_0_1 failed due to "metaspace.gc.Fault: GC has happened too rare" + - JDK-8231565: More node budget asserts in fuzzed tests + - JDK-8233551: [TESTBUG] SelectEditTableCell.java fails on MacOS + - JDK-8234382: Test tools/javac/processing/model/testgetallmembers/Main.java using too small heap + - JDK-8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101" + - JDK-8234608: [TESTBUG] Fix G1 redefineClasses tests and a memory leak + - JDK-8235220: ClhsdbScanOops.java fails with sun.jvm.hotspot.types.WrongTypeException + - JDK-8235385: Crash on aarch64 JDK due to long offset + - JDK-8237479: 8230305 causes slowdebug build failure + - JDK-8239559: Cgroups: Incorrect detection logic on some systems + - JDK-8239785: Cgroups: Incorrect detection logic on old systems in hotspot + - JDK-8240132: ProblemList com/sun/jdi/InvokeHangTest.java + - JDK-8240189: [TESTBUG] Some cgroup tests are failing after JDK-8231111 + - JDK-8240335: C2: assert(found_sfpt) failed: no node in loop that's not input to safepoint + - JDK-8240734: ModuleHashes attribute not reproducible between builds + - JDK-8240756: [macos] SwingSet2:TableDemo:Printed Japanese characters were garbled + - JDK-8241707: introduce randomness k/w to hotspot test suite + - JDK-8242310: use reproducible random in hotspot compiler tests + - JDK-8242311: use reproducible random in hotspot runtime tests + - JDK-8242312: use reproducible random in hotspot gc tests + - JDK-8242313: use reproducible random in hotspot svc tests + - JDK-8242538: java/security/SecureRandom/ThreadSafe.java failed on windows + - JDK-8243429: use reproducible random in :vmTestbase_nsk_stress + - JDK-8243666: ModuleHashes attribute generated for JMOD and JAR files depends on timestamps + - JDK-8244500: jtreg test error in test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java + - JDK-8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test + - JDK-8245543: Cgroups: Incorrect detection logic on some systems (still reproducible) + - JDK-8245938: Remove unused print_stack(void) method from XToolkit.c + - JDK-8246494: introduce vm.flagless at-requires property + - JDK-8246741: NetworkInterface/UniqueMacAddressesTest: mac address uniqueness test failed + - JDK-8247589: Implementation of Alpine Linux/x64 Port + - JDK-8247591: Document Alpine Linux build steps in OpenJDK build guide + - JDK-8247592: refactor test/jdk/tools/launcher/Test7029048.java + - JDK-8247614: java/nio/channels/DatagramChannel/Connect.java timed out + - JDK-8248876: LoadObject with bad base address created for exec file on linux + - JDK-8249592: Robot.mouseMove moves cursor to incorrect location when display scale varies and Java runs in DPI Unaware mode + - JDK-8252117: com/sun/jdi/BadHandshakeTest.java failed with "ConnectException: Connection refused: connect" + - JDK-8252248: __SIGRTMAX is not declared in musl libc + - JDK-8252250: isnanf is obsolete + - JDK-8252359: HotSpot Not Identifying it is Running in a Container + - JDK-8252957: Wrong comment in CgroupV1Subsystem::cpu_quota + - JDK-8253435: Cgroup: 'stomping of _mount_path' crash if manually mounted cpusets exist + - JDK-8253714: [cgroups v2] Soft memory limit incorrectly using memory.high + - JDK-8253727: [cgroups v2] Memory and swap limits reported incorrectly + - JDK-8253797: [cgroups v2] Account for the fact that swap accounting is disabled on some systems + - JDK-8253872: ArgumentHandler must use the same delimiters as in jvmti_tools.cpp + - JDK-8253939: [TESTBUG] Increase coverage of the cgroups detection code + - JDK-8254001: [Metrics] Enhance parsing of cgroup interface files for version detection + - JDK-8254887: C2: assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop + - JDK-8254997: Remove unimplemented OSContainer::read_memory_limit_in_bytes + - JDK-8255266: Update Public Suffix List to 3c213aa + - JDK-8255604: java/nio/channels/DatagramChannel/Connect.java fails with java.net.BindException: Cannot assign requested address: connect + - JDK-8255787: Tag container tests that use cGroups with cgroups keyword + - JDK-8256146: Cleanup test/jdk/java/nio/channels/DatagramChannel/Connect.java + - JDK-8256722: handle VC++:1927 VS2019 in abstract_vm_version + - JDK-8257794: Zero: assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1) failed: wrong on Linux/x86_32 + - JDK-8258795: Update IANA Language Subtag Registry to Version 2021-05-11 + - JDK-8258956: Memory Leak in StringCoding on ThreadLocal resultCached StringCoding.Result + - JDK-8259517: Incorrect test path in test cases + - JDK-8260518: Change default -mmacosx-version-min to 10.12 + - JDK-8261169: Upgrade HarfBuzz to the latest 2.8.0 + - JDK-8262379: Add regression test for JDK-8257746 + - JDK-8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream + - JDK-8263718: unused-result warning happens at os_linux.cpp + - JDK-8263856: Github Actions for macos/aarch64 cross-build + - JDK-8264179: [TESTBUG] Some compiler tests fail when running without C2 + - JDK-8265261: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted + - JDK-8265297: javax/net/ssl/SSLSession/TestEnabledProtocols.java failed with "RuntimeException: java.net.SocketException: Connection reset" + - JDK-8265343: Update Debian-based cross-compilation recipes + - JDK-8266251: compiler.inlining.InlineAccessors shouldn't do testing in driver VM + - JDK-8266318: Switch to macos prefix for macOS bundles + - JDK-8266391: Replace use of reflection in jdk.internal.platform.Metrics + - JDK-8266545: 8261169 broke Harfbuzz build with gcc 7 and 8 + - JDK-8268773: Improvements related to: Failed to start thread - pthread_create failed (EAGAIN) + - JDK-8269772: [macos-aarch64] test compilation failed with "SocketException: No buffer space available" + - JDK-8269933: test/jdk/javax/net/ssl/compatibility/JdkInfo incorrect verification of protocol and cipher support + - JDK-8270797: ShortECDSA.java test is not complete + - JDK-8271055: Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack + - JDK-8271199: Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key + - JDK-8272167: AbsPathsInImage.java should skip *.dSYM directories + - JDK-8272358: Some tests may fail when executed with other locales than the US + - JDK-8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2 + - JDK-8272908: Missing coverage for certain classes in com.sun.org.apache.xml.internal.security + - JDK-8272964: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted + - JDK-8273176: handle latest VS2019 in abstract_vm_version + - JDK-8273655: content-types.properties files are missing some common types + - JDK-8274171: java/nio/file/Files/probeContentType/Basic.java failed on "Content type" mismatches + - JDK-8274233: Minor cleanup for ToolBox + - JDK-8274735: javax.imageio.IIOException: Unsupported Image Type while processing a valid JPEG image + - JDK-8274751: Drag And Drop hangs on Windows + - JDK-8275082: Update XML Security for Java to 2.3.0 + - JDK-8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions + - JDK-8275337: C1: assert(false) failed: live_in set of first block must be empty + - JDK-8276657: XSLT compiler tries to define a class with empty name + - JDK-8276990: Memory leak in invoker.c fillInvokeRequest() during JDI operations + - JDK-8277072: ObjectStreamClass caches keep ClassLoaders alive + - JDK-8277093: Vector should throw ClassNotFoundException for a missing class of an element + - JDK-8277396: [TESTBUG] In DefaultButtonModelCrashTest.java, frame is accessed from main thread + - JDK-8277422: tools/jar/JarEntryTime.java fails with modified time mismatch + - JDK-8277922: Unable to click JCheckBox in JTable through Java Access Bridge + - JDK-8278065: Refactor subclassAudits to use ClassValue + - JDK-8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method + - JDK-8278346: java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine + - JDK-8278472: Invalid value set to CANDIDATEFORM structure + - JDK-8278794: Infinite loop in DeflaterOutputStream.finish() + - JDK-8278851: Correct signer logic for jars signed with multiple digestalgs + - JDK-8278951: containers/cgroup/PlainRead.java fails on Ubuntu 21.10 + - JDK-8279219: [REDO] C2 crash when allocating array of size too large + - JDK-8279356: Method linking fails with guarantee(mh->adapter() != NULL) failed: Adapter blob must already exist! + - JDK-8279505: Update documentation for RETRY_COUNT and REPEAT_COUNT + - JDK-8279520: SPNEGO has not passed channel binding info into the underlying mechanism + - JDK-8279529: ProblemList java/nio/channels/DatagramChannel/ManySourcesAndTargets.java on macosx-aarch64 + - JDK-8279532: ProblemList sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java + - JDK-8279668: x86: AVX2 versions of vpxor should be asserted + - JDK-8279837: C2: assert(is_Loop()) failed: invalid node class: Region + - JDK-8279842: HTTPS Channel Binding support for Java GSS/Kerberos + - JDK-8279958: Provide configure hints for Alpine/apk package managers + - JDK-8280041: Retry loop issues in java.io.ClassCache + - JDK-8280373: Update Xalan serializer / SystemIDResolver to align with JDK-8270492 + - JDK-8280476: [macOS] : hotspot arm64 bug exposed by latest clang + - JDK-8280684: JfrRecorderService failes with guarantee(num_written > 0) when no space left on device. + - JDK-8280799: С2: assert(false) failed: cyclic dependency prevents range check elimination + - JDK-8280867: Cpuid1Ecx feature parsing is incorrect for AMD CPUs + - JDK-8280964: [Linux aarch64] : drawImage dithers TYPE_BYTE_INDEXED images incorrectly + - JDK-8281274: deal with ActiveProcessorCount in os::Linux::print_container_info + - JDK-8281275: Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths + - JDK-8281615: Deadlock caused by jdwp agent + - JDK-8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 + - JDK-8282008: Incorrect handling of quoted arguments in ProcessBuilder + - JDK-8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads + - JDK-8282225: GHA: Allow one concurrent run per PR only + - JDK-8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers + - JDK-8282293: Domain value for system property jdk.https.negotiate.cbt should be case-insensitive + - JDK-8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86 + - JDK-8282382: Report glibc malloc tunables in error reports + - JDK-8282422: JTable.print() failed with UnsupportedCharsetException on AIX ko_KR locale + - JDK-8282501: Bump update version for OpenJDK: jdk-11.0.16 + - JDK-8282583: Update BCEL md to include the copyright notice + - JDK-8282588: [11] set harfbuzz compilation flag to -std=c++11 + - JDK-8282589: runtime/ErrorHandling/ErrorHandler.java fails on MacOS aarch64 in jdk 11 + - JDK-8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows + - JDK-8283018: 11u GHA: Update GCC 9 minor versions + - JDK-8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c + - JDK-8283323: libharfbuzz optimization level results in extreme build times + - JDK-8283350: (tz) Update Timezone Data to 2022a + - JDK-8283408: Fix a C2 crash when filling arrays with unsafe + - JDK-8283420: [AOT] Exclude TrackedFlagTest/NotTrackedFlagTest in 11u because of intermittent java.lang.AssertionError: duplicate classes for name Ljava/lang/Boolean; + - JDK-8283424: compiler/loopopts/LoopUnswitchingBadNodeBudget.java fails with release VMs due to lack of -XX:+UnlockDiagnosticVMOptions + - JDK-8283451: C2: assert(_base == Long) failed: Not a Long + - JDK-8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak + - JDK-8283497: [windows] print TMP and TEMP in hs_err and VM.info + - JDK-8283614: [11] Repair compiler versions handling after 8233787 + - JDK-8283641: Large value for CompileThresholdScaling causes assert + - JDK-8283834: Unmappable character for US-ASCII encoding in TestPredicateInputBelowLoopPredicate + - JDK-8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c + - JDK-8284094: Memory leak in invoker_completeInvokeRequest() + - JDK-8284102: [TESTBUG] [11u] Retroactively add regression test for JDK-8272124 + - JDK-8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4 + - JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer + - JDK-8284458: CodeHeapState::aggregate() leaks blob_name + - JDK-8284507: GHA: Only check test results if testing was not skipped + - JDK-8284549: JFR: FieldTable leaks FieldInfoTable member + - JDK-8284573: [11u] ProblemList TestBubbleUpRef.java and TestGCOldWithCMS.java because of 8272195 + - JDK-8284604: [11u] Update Boot JDK used in GHA to 11.0.14.1 + - JDK-8284620: CodeBuffer may leak _overflow_arena + - JDK-8284622: Update versions of some Github Actions used in JDK workflow + - JDK-8284756: [11u] Remove unused isUseContainerSupport in CgroupV1Subsystem + - JDK-8285395: [JVMCI] [11u] Partial backport of JDK-8220623: InstalledCode + - JDK-8285397: JNI exception pending in CUPSfuncs.c:250 + - JDK-8285445: cannot open file "NUL:" + - JDK-8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 + - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java + - JDK-8285591: [11] add signum checks in DSA.java engineVerify + - JDK-8285686: Update FreeType to 2.12.0 + - JDK-8285720: test/jdk/java/nio/file/Files/probeContentType/Basic.java fails to compile after backport of 8273655 + - JDK-8285726: [11u, 17u] Unify fix for JDK-8284548 with version from head + - JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head + - JDK-8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols + - JDK-8286013: Incorrect test configurations for compiler/stable/TestStableShort.java + - JDK-8286198: [linux] Fix process-memory information + - JDK-8286293: Tests ShortResponseBody and ShortResponseBodyWithRetry should use less resources + - JDK-8286444: javac errors after JDK-8251329 are not helpful enough to find root cause + - JDK-8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups + - JDK-8286630: [11] avoid -std=c++11 CXX harfbuzz buildflag on Windows + - JDK-8286855: javac error on invalid jar should only print filename + - JDK-8287109: Distrust.java failed with CertificateExpiredException + - JDK-8287119: Add Distrust.java to ProblemList + - JDK-8287362: FieldAccessWatch testcase failed on AIX platform + - JDK-8287378: GHA: Update cygwin to fix issues in langtools tests on Windows + - JDK-8287739: [11u] ProblemList sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java + +Notes on individual issues: +=========================== + +core-libs/java.io:serialization: + +JDK-8277157: Vector should throw ClassNotFoundException for a missing class of an element +========================================================================================= +`java.util.Vector` is updated to correctly report +`ClassNotFoundException that occurs during deserialization using +`java.io.ObjectInputStream.GetField.get(name, object)` when the class +of an element of the Vector is not found. Without this fix, a +`StreamCorruptedException` is thrown that does not provide information +about the missing class. + +core-libs/java.net: + +JDK-8285240: HTTPS Channel Binding support for Java GSS/Kerberos +================================================================ +Support has been added for TLS channel binding tokens for +Negotiate/Kerberos authentication over HTTPS through +javax.net.HttpsURLConnection. + +Channel binding tokens are increasingly required as an enhanced form +of security which can mitigate certain kinds of socially engineered, +man in the middle (MITM) attacks. They work by communicating from a +client to a server the client's understanding of the binding between +connection security (as represented by a TLS server cert) and higher +level authentication credentials (such as a username and +password). The server can then detect if the client has been fooled by +a MITM and shutdown the session/connection. + +The feature is controlled through a new system property +`jdk.https.negotiate.cbt` which is described fully at the following +page: + +https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/net/doc-files/net-properties.html#jdk.https.negotiate.cbt + +core-libs/java.lang: + +JDK-8283137: Incorrect handling of quoted arguments in ProcessBuilder +===================================================================== +ProcessBuilder on Windows is restored to address a regression caused +by JDK-8250568. Previously, an argument to ProcessBuilder that +started with a double-quote and ended with a backslash followed by a +double-quote was passed to a command incorrectly and may cause the +command to fail. For example the argument `"C:\\Program Files\"`, +would be seen by the command with extra double-quotes. This update +restores the long standing behavior that does not treat the backslash +before the final double-quote specially. + +core-libs/java.util.jar: + +JDK-8278386: Default JDK compressor will be closed when IOException is encountered +================================================================================== +`DeflaterOutputStream.close()` and `GZIPOutputStream.finish()` methods +have been modified to close out the associated default JDK compressor +before propagating a Throwable up the +stack. `ZIPOutputStream.closeEntry()` method has been modified to +close out the associated default JDK compressor before propagating an +IOException, not of type ZipException, up the stack. + +core-libs/java.io: + +JDK-8285660: New System Property to Disable Windows Alternate Data Stream Support in java.io.File +================================================================================================= +The Windows implementation of `java.io.File` allows access to NTFS +Alternate Data Streams (ADS) by default. Such streams have a structure +like “filename:streamnameâ€. A system property `jdk.io.File.enableADS` +has been added to control this behavior. To disable ADS support in +`java.io.File`, the system property `jdk.io.File.enableADS` should be +set to `false` (case ignored). Stricter path checking however prevents +the use of special devices such as `NUL:` + +New in release OpenJDK 11.0.15 (2022-04-19): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11015 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.15.txt + +* New features + - JDK-8253795: Implementation of JEP 391: macOS/AArch64 Port +* Security fixes + - JDK-8269938: Enhance XML processing passes redux + - JDK-8270504, CVE-2022-21426: Better XPath expression handling + - JDK-8272255: Completely handle MIDI files + - JDK-8272261: Improve JFR recording file processing + - JDK-8272594: Better record of recordings + - JDK-8274221: More definite BER encodings + - JDK-8275082, JDK-8278008, CVE-2022-21476: Update XML Security for Java to 2.3.0 + - JDK-8275151, CVE-2022-21443: Improved Object Identification + - JDK-8277227: Better identification of OIDs + - JDK-8277672, CVE-2022-21434: Better invocation handler handling + - JDK-8278356: Improve file creation + - JDK-8278449: Improve keychain support + - JDK-8278798: Improve supported intrinsic + - JDK-8278805: Enhance BMP image loading + - JDK-8278972, CVE-2022-21496: Improve URL supports + - JDK-8281388: Change wrapping of EncryptedPrivateKeyInfo +* Other changes + - JDK-8065704: Set LC_ALL=C for all relevant commands in the build system + - JDK-8177814: jdk/editpad is not in jdk TEST.groups + - JDK-8186780: clang fastdebug assertion failure in os_linux_x86:os::verify_stack_alignment() + - JDK-8190748: java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently + - JDK-8193277: SimpleFileObject inconsistency between getName and getShortName + - JDK-8199079: Test javax/swing/UIDefaults/6302464/bug6302464.java is unstable + - JDK-8202142: jfr/event/io/TestInstrumentation is unstable + - JDK-8207011: Remove uses of the register storage class specifier + - JDK-8207793: [TESTBUG] runtime/Metaspace/FragmentMetaspace.java fails: heap needs to be increased + - JDK-8208074: [TESTBUG] vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java failed with NullPointerException + - JDK-8210194: [TESTBUG] jvmti_FollowRefObjects.cpp missing initializer for member _jvmtiHeapCallbacks::heap_reference_callback + - JDK-8210236: Prepare ciReceiverTypeData::translate_receiver_data_from for concurrent class unloading + - JDK-8211170: AArch64: Warnings in C1 and template interpreter + - JDK-8211333: AArch64: Fix another build failure after JDK-8211029 + - JDK-8214004: Missing space between compiler thread name and task info in hs_err + - JDK-8214026: Canonicalized archive paths appearing in diagnostics + - JDK-8214761: Bug in parallel Kahan summation implementation + - JDK-8216969: ParseException thrown for certain months with russian locale + - JDK-8218546: Unable to connect to https://google.com using java.net.HttpClient + - JDK-8220634: SymLinkArchiveTest should handle not being able to create symlinks + - JDK-8222825: ARM32 SIGILL issue on single core CPU (not supported PLDW instruction) + - JDK-8223142: Clean-up WS and CB. + - JDK-8225559: assertion error at TransTypes.visitApply + - JDK-8232533: G1 uses only a single thread for pretouching the java heap + - JDK-8233827: Enable screenshots in the enhanced failure handler on Linux/macOS + - JDK-8233986: ProblemList javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java for windows-x64 + - JDK-8234930: Use MAP_JIT when allocating pages for code cache on macOS + - JDK-8236210: javac generates wrong annotation for fields generated from record components + - JDK-8236505: Mark jdk/editpad/EditPadTest.java as @headful + - JDK-8237787: rewrite vmTestbase/vm/compiler/CodeCacheInfo* from shell to java + - JDK-8237798: rewrite vmTestbase/jit/tiered from shell to java + - JDK-8239502: [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails + - JDK-8240904: Screen flashes on test failures when running tests from make + - JDK-8241004: NMT tests fail on unaligned thread size with debug build + - JDK-8241423: NUMA APIs fail to work in dockers due to dependent syscalls are disabled by default + - JDK-8247272: SA ELF file support has never worked for 64-bit causing address to symbol name mapping to fail + - JDK-8247515: OSX pc_to_symbol() lookup does not work with core files + - JDK-8249019: clean up FileInstaller $test.src $cwd in vmTestbase_vm_compiler tests + - JDK-8250750: JDK-8247515 fix for OSX pc_to_symbol() lookup fails with some symbols + - JDK-8251126: nsk.share.GoldChecker should read golden file from ${test.src} + - JDK-8251127: clean up FileInstaller $test.src $cwd in remaining vmTestbase_vm_compiler tests + - JDK-8251132: make main classes public in vmTestbase/jit tests + - JDK-8251558: J2DBench should support shaped and translucent windows + - JDK-8251998: remove usage of PropertyResolvingWrapper in vmTestbase/jit/t + - JDK-8252005: narrow disabling of allowSmartActionArgs in vmTestbase + - JDK-8253197: vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with "ERROR: DebuggeeSleepingThread: ThreadDeath lost" + - JDK-8253816: Support macOS W^X + - JDK-8253817: Support macOS Aarch64 ABI in Interpreter + - JDK-8253818: Support macOS Aarch64 ABI for compiled wrappers + - JDK-8253819: Implement os/cpu for macOS/AArch64 + - JDK-8253839: Update tests and JDK code for macOS/Aarch64 + - JDK-8254072: AArch64: Get rid of --disable-warnings-as-errors on Windows+ARM64 build + - JDK-8254085: javax/swing/text/Caret/TestCaretPositionJTextPane.java failed with "RuntimeException: Wrong caret position" + - JDK-8254827: JVMCI: Enable it for Windows+AArch64 + - JDK-8254940: AArch64: Cleanup non-product thread members + - JDK-8254941: Implement Serviceability Agent for macOS/AArch64 + - JDK-8255035: Update BCEL to Version 6.5.0 + - JDK-8255239: The timezone of the hs_err_pid log file is corrupted in Japanese locale + - JDK-8255410: Add ChaCha20 and Poly1305 support to SunPKCS11 provider + - JDK-8255776: Change build system for macOS/AArch64 + - JDK-8256154: Some TestNG tests require default constructors + - JDK-8256321: Some "inactive" color profiles use the wrong profile class + - JDK-8256373: [Windows/HiDPI] The Frame#setBounds does not work in a minimized state + - JDK-8257467: [TESTBUG] -Wdeprecated-declarations is reported at sigset() in exesigtest.c + - JDK-8257769: Cipher.getParameters() throws NPE for ChaCha20-Poly1305 + - JDK-8258554: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F + - JDK-8261107: ArrayIndexOutOfBoundsException in the ICC_Profile.getInstance(InputStream) + - JDK-8261205: AssertionError: Cannot add metadata to an intersection type + - JDK-8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" + - JDK-8262894: [macos_aarch64] SIGBUS in Assembler::ld_st2 + - JDK-8262896: [macos_aarch64] Crash in jni_fast_GetLongField + - JDK-8262903: [macos_aarch64] Thread::current() called on detached thread + - JDK-8263185: Mallinfo deprecated in glibc 2.33 + - JDK-8264650: Cross-compilation to macos/aarch64 + - JDK-8265150: AsyncGetCallTrace crashes on ResourceMark + - JDK-8266168: -Wmaybe-uninitialized happens in check_code.c + - JDK-8266170: -Wnonnull happens in classLoaderData.inline.hpp + - JDK-8266171: -Warray-bounds happens in imageioJPEG.c + - JDK-8266172: -Wstringop-overflow happens in vmError.cpp + - JDK-8266173: -Wmaybe-uninitialized happens in jni_util.c + - JDK-8266174: -Wmisleading-indentation happens in libmlib_image sources + - JDK-8266176: -Wmaybe-uninitialized happens in libArrayIndexOutOfBoundsExceptionTest.c + - JDK-8266187: Memory leak in appendBootClassPath() + - JDK-8266421: Deadlock in Sound System + - JDK-8266889: [macosx-aarch64] Crash with SIGBUS in MarkActivationClosure::do_code_blob during vmTestbase/nsk/jvmti/.../bi04t002 test run + - JDK-8268014: Build failure on SUSE Linux Enterprise Server 11.4 (s390x) due to 'SYS_get_mempolicy' was not declared + - JDK-8268542: serviceability/logging/TestFullNames.java tests only 1st test case + - JDK-8268882: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc + - JDK-8270874: JFrame paint artifacts when dragged from standard monitor to HiDPI monitor + - JDK-8271202: C1: assert(false) failed: live_in set of first block must be empty + - JDK-8272345: macos doesn't check `os::set_boot_path()` result + - JDK-8272473: Parsing epoch seconds at a DST transition with a non-UTC parser is wrong + - JDK-8272541: Incorrect overflow test in Toom-Cook branch of BigInteger multiplication + - JDK-8273277: C2: Move conditional negation into rc_predicate + - JDK-8273341: Update Siphash to version 1.0 + - JDK-8273366: [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12 + - JDK-8273433: Enable parallelism in vmTestbase_nsk_sysdict tests + - JDK-8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests + - JDK-8273514: java/util/DoubleStreamSums/CompensatedSums.java failure + - JDK-8273575: memory leak in appendBootClassPath(), paths must be deallocated + - JDK-8273634: [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java + - JDK-8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F + - JDK-8273682: Upgrade Jline to 3.20.0 + - JDK-8273704: DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time + - JDK-8273933: [TESTBUG] Test must run without preallocated exceptions + - JDK-8274265: Suspicious string concatenation in logTestUtils.inline.hpp + - JDK-8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror" + - JDK-8274465: Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures + - JDK-8274523: java/lang/management/MemoryMXBean/MemoryTest.java test should handle Shenandoah + - JDK-8274524: SSLSocket.close() hangs if it is called during the ssl handshake + - JDK-8274658: ISO 4217 Amendment 170 Update + - JDK-8274714: Incorrect verifier protected access error message + - JDK-8274736: Concurrent read/close of SSLSockets causes SSLSessions to be invalidated unnecessarily + - JDK-8274795: AArch64: avoid spilling and restoring r18 in macro assembler + - JDK-8275326: C2: assert(no_dead_loop) failed: dead loop detected + - JDK-8275536: Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime + - JDK-8275610: C2: Object field load floats above its null check resulting in a segfault + - JDK-8275650: Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11 + - JDK-8275703: System.loadLibrary fails on Big Sur for libraries hidden from filesystem + - JDK-8275811: Incorrect instance to dispose + - JDK-8276105: C2: Conv(D|F)2(I|L)Nodes::Ideal should handle rounding correctly + - JDK-8276141: XPathFactory set/getProperty method + - JDK-8276177: nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with "assert(def_ik->is_being_redefined()) failed: should be being redefined to get here" + - JDK-8276314: [JVMCI] check alignment of call displacement during code installation + - JDK-8276623: JDK-8275650 accidentally pushed "out" file + - JDK-8277328: jdk/jshell/CommandCompletionTest.java failures on Windows + - JDK-8277342: vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for + - JDK-8277385: Zero: Enable CompactStrings support + - JDK-8277441: CompileQueue::add fails with assert(_last->next() == __null) failed: not last + - JDK-8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop + - JDK-8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022 + - JDK-8277795: ldap connection timeout not honoured under contention + - JDK-8277796: Bump update version for OpenJDK: jdk-11.0.15 + - JDK-8277992: Add fast jdk_svc subtests to jdk:tier3 + - JDK-8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx + - JDK-8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx + - JDK-8278172: java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux + - JDK-8278309: [windows] use of uninitialized OSThread::_state + - JDK-8278381: [GCC 11] Address::make_raw() does not initialize rspec + - JDK-8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT + - JDK-8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 + - JDK-8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob + - JDK-8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 + - JDK-8279077: JFR crashes on Linux ppc due to missing crash protector in signal handler + - JDK-8279225: [arm32] C1 longs comparison operation destroys argument registers + - JDK-8279300: [arm32] SIGILL when running GetObjectSizeIntrinsicsTest + - JDK-8279379: GHA: Print tests that are in error + - JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition + - JDK-8279702: [macosx] ignore xcodebuild warnings on M1 + - JDK-8279833: Loop optimization issue in String.encodeUTF8_UTF16 + - JDK-8279924: [PPC64, s390] implement frame::is_interpreted_frame_valid checks + - JDK-8279998: PPC64 debug builds fail with "untested: RangeCheckStub: predicate_failed_trap_id" + - JDK-8280155: [PPC64, s390] frame size checks are not yet correct + - JDK-8280414: Memory leak in DefaultProxySelector + - JDK-8280526: x86_32 Math.sqrt performance regression with -XX:UseSSE={0,1} + - JDK-8280786: Build failure on Solaris after 8262392 + - JDK-8280999: array_bounds should be array-bounds after 8278507 + - JDK-8281061: [s390] JFR runs into assertions while validating interpreter frames + - JDK-8281520: JFR: A wrong parameter is passed to the constructor of LeakKlassWriter + - JDK-8281599: test/lib/jdk/test/lib/KnownOIDs.java is redundant since JDK-8268801 + - JDK-8282300: Throws NamingException instead of InvalidNameException after JDK-8278972 + - JDK-8282372: [11] build issue on MacOS/aarch64 12.2.1 using Xcode 13.1: call to 'log2_intptr' is ambiguous + - JDK-8282397: createTempFile method of java.io.File is failing when called with suffix of spaces character + - JDK-8282761: XPathFactoryImpl remove setProperty and getProperty methods + - JDK-8283018: 11u GHA: Update GCC 9 minor versions + - JDK-8283270: [11u] broken JRT_ENTRY_NO_ASYNC after Backport of JDK-8253795 + - JDK-8283778: 11u GHA: Fix GCC 9 ubuntu package names + - JDK-8284548: Invalid XPath expression causes StringIndexOutOfBoundsException + - JDK-8284920: Incorrect Token type causes XPath expression to return empty result + +Notes on individual issues: +=========================== + +security-libs/javax.crypto:pkcs11: + +JDK-8275737: SunPKCS11 Provider Supports ChaCha20-Poly1305 Cipher and ChaCha20 KeyGenerator if Supported by PKCS11 Library +========================================================================================================================== +SunPKCS11 provider is enhanced to support the following crypto +services and algorithms when the underlying PKCS11 library supports +the corresponding PKCS#11 mechanisms: + +* ChaCha20 KeyGenerator <=> CKM_CHACHA20_KEY_GEN mechanism +* ChaCha20-Poly1305 Cipher <=> CKM_CHACHA20_POLY1305 mechanism +* ChaCha20-Poly1305 AlgorithmParameters <=> CKM_CHACHA20_POLY1305 mechanism +* ChaCha20 SecretKeyFactory <=> CKM_CHACHA20_POLY1305 mechanism + +New in release OpenJDK 11.0.14.1 (2022-02-08): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk110141 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.14.1.txt + +* Other changes + - JDK-8218546: Unable to connect to https://google.com using java.net.HttpClient + - JDK-8280786: Build failure on Solaris after 8262392 + - JDK-8281324: Bump update version for OpenJDK: jdk-11.0.14.1 + +New in release OpenJDK 11.0.14 (2022-01-18): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11014 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.14.txt + +* New features + - JDK-8248238: Implementation: JEP 388: Windows AArch64 Support +* Security fixes + - JDK-8217375: jarsigner breaks old signature with long lines in manifest + - JDK-8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside + - JDK-8264934, CVE-2022-21248: Enhance cross VM serialization + - JDK-8268488: More valuable DerValues + - JDK-8268494: Better inlining of inlined interfaces + - JDK-8268512: More content for ContentInfo + - JDK-8268795: Enhance digests of Jar files + - JDK-8268801: Improve PKCS attribute handling + - JDK-8268813, CVE-2022-21283: Better String matching + - JDK-8269151: Better construction of EncryptedPrivateKeyInfo + - JDK-8269944: Better HTTP transport redux + - JDK-8270386, CVE-2022-21291: Better verification of scan methods + - JDK-8270392, CVE-2022-21293: Improve String constructions + - JDK-8270416, CVE-2022-21294: Enhance construction of Identity maps + - JDK-8270492, CVE-2022-21282: Better resolution of URIs + - JDK-8270498, CVE-2022-21296: Improve SAX Parser configuration management + - JDK-8270646, CVE-2022-21299: Improved scanning of XML entities + - JDK-8270952, CVE-2022-21277: Improve TIFF file handling + - JDK-8271962: Better TrueType font loading + - JDK-8271968: Better canonical naming + - JDK-8271987: Manifest improved manifest entries + - JDK-8272014, CVE-2022-21305: Better array indexing + - JDK-8272026, CVE-2022-21340: Verify Jar Verification + - JDK-8272236, CVE-2022-21341: Improve serial forms for transport + - JDK-8272272: Enhance jcmd communication + - JDK-8272462: Enhance image handling + - JDK-8273290: Enhance sound handling + - JDK-8273756, CVE-2022-21360: Enhance BMP image support + - JDK-8273838, CVE-2022-21365: Enhanced BMP processing + - JDK-8274096, CVE-2022-21366: Improve decoding of image files + - JDK-8279541: Improve HarfBuzz +* Other changes + - JDK-6849922: java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html fails + - JDK-7105119: [TEST_BUG] [macosx] In test UIDefaults.toString() must be called with the invokeLater() + - JDK-7151826: [TEST_BUG] [macosx] The test javax/swing/JPopupMenu/4966112/bug4966112.java not for mac + - JDK-7179006: [macosx] Print-to-file doesn't work: printing to the default printer instead + - JDK-8015602: [macosx] Test javax/swing/SpringLayout/4726194/bug4726194.java fails on MacOSX + - JDK-8034084: nsk.nsk/jvmti/ThreadStart/threadstart003 Wrong number of thread end events + - JDK-8039261: [TEST_BUG]: There is not a minimal security level in Java Preferences and the TestApplet.html is blocked. + - JDK-8047218: [TEST_BUG] java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java fails with exception + - JDK-8075909: [TEST_BUG] The regression-swing case failed as it does not have the 'Open' button when select 'subdir' folder with NimbusLAF + - JDK-8078219: Verify lack of @test tag in files in java/net test directory + - JDK-8080569: java/lang/ProcessBuilder/DestroyTest.java fails with "RuntimeException: Process terminated prematurely" + - JDK-8081652: [TESTBUG] java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java timed out intermittently + - JDK-8129310: java/net/Socket/asyncClose/AsyncClose.java fails intermittently + - JDK-8131745: java/lang/management/ThreadMXBean/AllThreadIds.java still fails intermittently + - JDK-8136517: [macosx]Test java/awt/Focus/8073453/AWTFocusTransitionTest.java fails on MacOSX + - JDK-8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java failure due to timing + - JDK-8143021: [TEST_BUG] Test javax/swing/JColorChooser/Test6541987.java fails + - JDK-8159597: [TEST_BUG] closed/javax/swing/JPopupMenu/4760494/bug4760494.java leaves key pressed + - JDK-8159904: [TEST_BUG] Failure on solaris of java/awt/Window/MultiWindowApp/MultiWindowAppTest.java + - JDK-8163086: java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java fails + - JDK-8165828: [TEST_BUG] The reg case:javax/swing/plaf/metal/MetalIcons/MetalHiDPIIconsTest.java failed as No Metal Look and Feel + - JDK-8169953: JComboBox/8057893: ComboBoxEdited event is not fired! on Windows + - JDK-8169954: JFileChooser/8021253: java.lang.RuntimeException: Default button is not pressed + - JDK-8169959: javax/swing/JTable/6263446/bug6263446.java: Table should be editing + - JDK-8171381: [TEST_BUG] [macos] javax/swing/JPopupMenu/7156657/bug7156657.java fails on OS X + - JDK-8171998: javax/swing/JMenu/4692443/bug4692443.java fails on Windows + - JDK-8174819: java/nio/file/WatchService/LotsOfEvents.java fails intermittently + - JDK-8179880: Refactor javax/security shell tests to plain java tests + - JDK-8180568: Refactor javax/crypto shell tests to plain java tests + - JDK-8180569: Refactor sun/security/krb5/ shell tests to plain java tests + - JDK-8180571: Refactor sun/security/pkcs11 shell tests to plain java tests and fix failures + - JDK-8180573: Refactor sun/security/tools shell tests to plain java tests + - JDK-8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar + - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream + - JDK-8195703: BasicJDWPConnectionTest.java: 'App exited unexpectedly with 2' + - JDK-8196096: javax/swing/JPopupMenu/6580930/bug6580930.java fails + - JDK-8197560: test javax/swing/JTree/8003400/Test8003400.java fails + - JDK-8197800: Test java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java fails on Windows + - JDK-8197811: Test java/awt/Choice/PopupPosTest/PopupPosTest.java fails on Windows + - JDK-8198616: java/awt/Focus/6378278/InputVerifierTest.java fails on mac + - JDK-8198617: java/awt/Focus/6382144/EndlessLoopTest.java fails on mac + - JDK-8198619: java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java fails on mac + - JDK-8198623: java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java fails on mac + - JDK-8198624: java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html fails on mac + - JDK-8199138: Add RISC-V support to Zero + - JDK-8199529: javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java fails on windows + - JDK-8201224: Make string buffer size dynamic in mlvmJvmtiUtils.c + - JDK-8202342: [Graal] fromTonga/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java fails with "Location mismatch" errors + - JDK-8204161: [TESTBUG] auto failed with the "Applet thread threw exception: java.lang.UnsupportedOperationException" exception + - JDK-8206085: Refactor langtools/tools/javac/versions/Versions.java + - JDK-8207936: TestZipFile failed with java.lang.AssertionError exception + - JDK-8208242: Add @requires to vmTestbase/gc/g1 tests + - JDK-8209611: use C++ compiler for hotspot tests + - JDK-8210182: Remove macros for C compilation from vmTestBase but non jvmti + - JDK-8210198: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[A-F] tests + - JDK-8210205: build fails on AIX in hotspot cpp tests (for example getstacktr001.cpp) + - JDK-8210242: [TESTBUG] vmTestbase/nsk/stress/jni/jnistress001.java crashes with EXCEPTION_ACCESS_VIOLATION on windows-x86 + - JDK-8210353: Move java/util/Arrays/TimSortStackSize2.java back to tier1 + - JDK-8210385: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[A-N] tests + - JDK-8210392: assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit + - JDK-8210395: Add doc to SecurityTools.java + - JDK-8210429: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[G-Z] tests + - JDK-8210481: Remove #ifdef cplusplus from vmTestbase + - JDK-8210593: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[N-R] tests + - JDK-8210665: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[R-U] tests + - JDK-8210689: Remove the multi-line old C style for string literals + - JDK-8210700: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti/unit tests + - JDK-8210726: Fix up a few minor nits forgotten by JDK-8210665 + - JDK-8210920: Native C++ tests are not using CXXFLAGS + - JDK-8210984: [TESTBUG] hs203t003 fails with "# ERROR: hs203t003.cpp, 218: NSK_CPP_STUB2 ( ResumeThread, jvmti, thread)" + - JDK-8211036: Remove the NSK_STUB macros from vmTestbase for non jvmti + - JDK-8211131: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[G-I]* + - JDK-8211148: var in implicit lambdas shouldn't be accepted for source < 11 + - JDK-8211171: move JarUtils to top-level testlibrary + - JDK-8211227: Inconsistent TLS protocol version in debug output + - JDK-8211261: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[A-G]* + - JDK-8211432: [REDO] Handle JNIGlobalRefLocker.cpp + - JDK-8211782: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[I-S]* + - JDK-8211801: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/scenarios/[A-E] + - JDK-8211899: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/scenarios/[E-M] + - JDK-8211905: Remove multiple casts for EM06 file + - JDK-8211999: Window positioning bugs due to overlapping GraphicsDevice bounds (Windows/HiDPI) + - JDK-8212082: Remove the NSK_CPP_STUB macros for remaining vmTestbase/jvmti/[sS]* + - JDK-8212083: Handle remaining gc/lock native code and fix two strings + - JDK-8212148: Remove remaining NSK_CPP_STUBs + - JDK-8213110: Remove the use of applets in automatic tests + - JDK-8213189: Make restricted headers in HTTP Client configurable and remove Date by default + - JDK-8213263: fix legal headers in test/langtools + - JDK-8213296: Fix legal headers in test/jdk/java/net + - JDK-8213301: Fix legal headers in jdk logging tests + - JDK-8213305: Fix legal headers in test/java/math + - JDK-8213306: Fix legal headers in test/java/nio + - JDK-8213328: Update test copyrights in test/java/util/zip and test/jdk/tools + - JDK-8213330: Fix legal headers in i18n tests + - JDK-8213707: [TEST] vmTestbase/nsk/stress/except/except011.java failed due to wrong class name + - JDK-8214469: [macos] PIT: java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java fails + - JDK-8215410: Regression test for JDK-8214994 + - JDK-8215568: Refactor SA clhsdb tests to use ClhsdbLauncher + - JDK-8215624: Add parallel heap iteration for jmap –histo + - JDK-8215889: assert(!_unloading) failed: This oop is not available to unloading class loader data with ZGC + - JDK-8216318: The usage of Disposer in the java.awt.Robot can be deleted + - JDK-8216417: cleanup of IPv6 scope-id handling + - JDK-8217377: javax/swing/JPopupMenu/6583251/bug6583251.java failed with UnsupportedOperation exception + - JDK-8217438: Adapt tools//launcher/Test7029048.java for AIX + - JDK-8217633: Configurable extensions with system properties + - JDK-8217882: java/net/httpclient/MaxStreams.java failed once + - JDK-8217903: java/net/httpclient/Response204.java fails with 404 + - JDK-8218483: Crash in "assert(_daemon_threads_count->get_value() > daemon_count) failed: thread count mismatch 5 : 5" + - JDK-8219986: Change to Xcode 10.1 for building on Macosx at Oracle + - JDK-8220575: Correctly format test URI's that contain a retrieved IPv6 address + - JDK-8221259: New tests for java.net.Socket to exercise long standing behavior + - JDK-8221305: java/awt/FontMetrics/MaxAdvanceIsMax.java fails on MacOS + Solaris + - JDK-8221902: PIT: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails on ubuntu + - JDK-8221903: PIT: javax/swing/RepaintManager/IconifyTest/IconifyTest.java fails on ubuntu18.04 + - JDK-8222446: assert(C->env()->system_dictionary_modification_counter_changed()) failed: Must invalidate if TypeFuncs differ + - JDK-8223137: Rename predicate 'do_unroll_only()' to 'is_unroll_only()'. + - JDK-8223138: Small clean-up in loop-tree support. + - JDK-8223139: Rename mandatory policy-do routines. + - JDK-8223140: Clean-up in 'ok_to_convert()' + - JDK-8223141: Change (count) suffix _ct into _cnt. + - JDK-8223400: Replace some enums with static const members in hotspot/runtime + - JDK-8223658: Performance regression of XML.validation in 13-b19 + - JDK-8223923: C2: Missing interference with mismatched unsafe accesses + - JDK-8224829: AsyncSSLSocketClose.java has timing issue + - JDK-8225083: Remove Google certificate that is expiring in December 2021 + - JDK-8226514: Replace wildcard address with loopback or local host in tests - part 17 + - JDK-8226943: compile error in libfollowref003.cpp with XCode 10.2 on macosx + - JDK-8228442: DHKeyExchange/LegacyDHEKeyExchange.java failed due to "SSLException: An established connection was aborted by the software in your host machine" + - JDK-8228508: [TESTBUG] java/net/httpclient/SmokeTest.java fails on Windows7 + - JDK-8229935: [TEST_BUG]: bug8132119.java inconsistently positions text + - JDK-8230019: [REDO] compiler/types/correctness/* tests fail with "assert(recv == __null || recv->is_klass()) failed: wrong type" + - JDK-8230067: Add optional automatic retry when running jtreg tests + - JDK-8230228: [TESTBUG] Several runtime/ErrorHandling tests may fail on some platforms + - JDK-8231501: VM crash in MethodData::clean_extra_data(CleanExtraDataClosure*): fatal error: unexpected tag 99 + - JDK-8233403: Improve verbosity of some httpclient tests + - JDK-8233550: [TESTBUG] JTree tests fail regularly on MacOS + - JDK-8233552: [TESTBUG] JTable Test bug7068740.java fails on MacOS + - JDK-8233553: [TESTBUG] JSpinner test bug4973721.java fails on MacOS + - JDK-8233555: [TESTBUG] JRadioButton tests failing on MacoS + - JDK-8233556: [TESTBUG] JPopupMenu tests fail on MacOS + - JDK-8233559: [TESTBUG] TestNimbusOverride.java is failing on macos + - JDK-8233560: [TESTBUG] ToolTipManager/Test6256140.java is failing on macos + - JDK-8233561: [TESTBUG] Swing text test bug8014863.java fails on macos + - JDK-8233562: [TESTBUG] Swing StyledEditorKit test bug4506788.java fails on MacOS + - JDK-8233564: [TESTBUG] MouseComboBoxTest.java is failing + - JDK-8233566: [TESTBUG] KeyboardFocusManager tests failing on MacoS + - JDK-8233567: [TESTBUG] FocusSubRequestTest.java fails on macos + - JDK-8233569: [TESTBUG] JTextComponent test bug6361367.java fails on macos + - JDK-8233570: [TESTBUG] HTMLEditorKit test bug5043626.java is failing on macos + - JDK-8233634: [TESTBUG] Swing text test bug4278839.java fails on macos + - JDK-8233635: [TESTBUG] ProgressMonitorEscapeKeyPress.java fails on macos + - JDK-8233637: [TESTBUG] Swing ActionListenerCalledTwiceTest.java fails on macos + - JDK-8233638: [TESTBUG] Swing test ScreenMenuBarInputTwice.java fails on macos + - JDK-8233641: [TESTBUG] JMenuItem test bug4171437.java fails on macos + - JDK-8233642: [TESTBUG] JMenuBar test bug 4750590.java fails on macos + - JDK-8233643: [TESTBUG] JMenu test bug4515762.java fails on macos + - JDK-8233644: [TESTBUG] JInternalFrame test bug8020708.java is failing on macos + - JDK-8233647: [TESTBUG] JColorChooser/Test8051548.java is failing on macos + - JDK-8234802: [TESTBUG] Test Right Mouse Button Drag Gesture Recognition in all the platforms + - JDK-8234823: java/net/Socket/Timeouts.java testcase testTimedConnect2() fails on Windows 10 + - JDK-8235784: java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java fails due to timeout with fastdebug bits + - JDK-8236042: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -Xcomp -XX:TieredStopAtLevel=1 + - JDK-8236177: assert(status == 0) failed: error ETIMEDOUT(60), cond_wait + - JDK-8236596: HttpClient leaves HTTP/2 sockets in CLOSE_WAIT, when using proxy tunnel + - JDK-8237354: Add option to jcmd to write a gzipped heap dump + - JDK-8237589: Fix copyright header formatting + - JDK-8238677: java/net/httpclient/ssltest/CertificateTest.java should not specify TLS version + - JDK-8239334: Tab Size does not work correctly in JTextArea with setLineWrap on + - JDK-8239422: [TESTBUG] compiler/c1/TestPrintIRDuringConstruction.java failed when C1 is disabled + - JDK-8239827: The test OpenByUNCPathNameTest.java should be changed to be manual + - JDK-8240256: Better resource cleaning for SunPKCS11 Provider + - JDK-8242044: Add basic HTTP/1.1 support to the HTTP/2 Test Server + - JDK-8242526: PIT: javax/swing/JInternalFrame/8020708/bug8020708.java fails in mach5 ubuntu system + - JDK-8242793: Incorrect copyright header in ContinuousCallSiteTargetChange.java + - JDK-8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails + - JDK-8244292: Headful clients failing with --illegal-access=deny + - JDK-8245147: Refactor and improve utility of test/langtools/tools/javac/versions/Versions.java + - JDK-8245165: Update bug id for javax/swing/text/StyledEditorKit/4506788/bug4506788.java in ProblemList + - JDK-8245665: Test WeakAlg.java should only make sure no warning for weak signature algorithms by keytool on root CA + - JDK-8246114: java/net/MulticastSocket/Promiscuous.java fails after 8241072 (multi-homed systems) + - JDK-8246807: Incorrect copyright header in TimeZoneDatePermissionCheck.sh + - JDK-8247403: JShell: No custom input (e.g. from GUI) possible with JavaShellToolBuilder + - JDK-8247510: typo in IllegalHandshakeMessage + - JDK-8248187: [TESTBUG] javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java fails with String is not properly drawn + - JDK-8248341: ProblemList java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java + - JDK-8248500: AArch64: Remove the r18 dependency on Windows AArch64 + - JDK-8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked + - JDK-8249195: Change to Xcode 11.3.1 for building on Macos at Oracle + - JDK-8250521: Configure initial RTO to use minimal retry for loopback connections on Windows + - JDK-8250810: Push missing parts of JDK-8248817 + - JDK-8250839: Improve test template SSLEngineTemplate with SSLContextTemplate + - JDK-8250863: Build error with GCC 10 in NetworkInterface.c and k_standard.c + - JDK-8250888: nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java fails + - JDK-8251155: HostIdentifier fails to canonicalize hostnames starting with digits + - JDK-8251377: [macos11] JTabbedPane selected tab text is barely legible + - JDK-8251570: JDK-8215624 causes assert(worker_id < _n_workers) failed: Invalid worker_id + - JDK-8251930: AArch64: Native types mismatch in hotspot + - JDK-8252049: Native memory leak in ciMethodData ctor + - JDK-8252051: Make mlvmJvmtiUtils strncpy uses GCC 10.x friendly + - JDK-8252114: Windows-AArch64: Enable and test ZGC and ShenandoahGC + - JDK-8253015: Aarch64: Move linux code out from generic CPU feature detection + - JDK-8253147: The javax/swing/JPopupMenu/7154841/bug7154841.java fail on big screens + - JDK-8253497: Core Libs Terminology Refresh + - JDK-8253682: The AppletInitialFocusTest1.java is unstable + - JDK-8253763: ParallelObjectIterator should have virtual destructor + - JDK-8253866: Security Libs Terminology Refresh + - JDK-8254802: ThrowingPushPromisesAsStringCustom.java fails in "try throwing in GET_BODY" + - JDK-8255227: java/net/httpclient/FlowAdapterPublisherTest.java intermittently failing with TestServer: start exception: java.io.IOException: Invalid preface + - JDK-8255264: Support for identifying the full range of IPv4 localhost addresses on Windows + - JDK-8255716: AArch64: Regression: JVM crashes if manually offline a core + - JDK-8255722: Create a new test for rotated blit + - JDK-8256009: Remove src/hotspot/share/adlc/Test/i486.ad + - JDK-8256066: Tests use deprecated TestNG API that is no longer available in new versions + - JDK-8256152: tests fail because of ambiguous method resolution + - JDK-8256182: Update qemu-debootstrap cross-compilation recipe + - JDK-8256201: java/awt/FullScreen/FullscreenWindowProps/FullscreenWindowProps.java failed + - JDK-8256202: Some tweaks for jarsigner tests PosixPermissionsTest and SymLinkTest + - JDK-8256372: [macos] Unexpected symbol was displayed on JTextField with Monospaced font + - JDK-8256956: RegisterImpl::max_slots_per_register is incorrect on AMD64 + - JDK-8258457: testlibrary_tests/ctw/JarDirTest.java fails with InvalidPathException on windows + - JDK-8258855: Two tests sun/security/krb5/auto/ReplayCacheTestProc.java and ReplayCacheTestProcWithMD5.java failed on OL8.3 + - JDK-8259237: Demo selection changes with left/right arrow key. No need to press space for selection. + - JDK-8260571: Add PrintMetaspaceStatistics to print metaspace statistics upon VM exit + - JDK-8260690: JConsole User Guide Link from the Help menu is not accessible by keyboard + - JDK-8261036: Reduce classes loaded by CleanerFactory initialization + - JDK-8261071: AArch64: Refactor interpreter native wrappers + - JDK-8261075: Create stubRoutines.inline.hpp with SafeFetch implementation + - JDK-8261236: C2: ClhsdbJstackXcompStress test fails when StressGCM is enabled + - JDK-8261297: NMT: Final report should use scale 1 + - JDK-8261661: gc/stress/TestReclaimStringsLeaksMemory.java fails because Reserved memory size is too big + - JDK-8261916: gtest/GTestWrapper.java vmErrorTest.unimplemented1_vm_assert failed + - JDK-8262438: sun/security/ssl/SSLLogger/LoggingFormatConsistency.java failed with "SocketException: Socket is closed" + - JDK-8262731: [macOS] Exception from "Printable.print" is swallowed during "PrinterJob.print" + - JDK-8262844: (fs) FileStore.supportsFileAttributeView might return false negative in case of ext3 + - JDK-8263059: security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java fails due to revoked cert + - JDK-8263068: Rename safefetch.hpp to safefetch.inline.hpp + - JDK-8263303: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint + - JDK-8263362: Avoid division by 0 in java/awt/font/TextJustifier.java justify + - JDK-8263773: Reenable German localization for builds at Oracle + - JDK-8263897: compiler/c2/aarch64/TestVolatilesSerial.java failed with "java.lang.RuntimeException: Wrong method" + - JDK-8264526: javax/swing/text/html/parser/Parser/8078268/bug8078268.java timeout + - JDK-8264824: java/net/Inet6Address/B6206527.java doesn't close ServerSocket properly + - JDK-8265019: Update tests for additional TestNG test permissions + - JDK-8265173: [test] divert spurious log output away from stream under test in ProcessBuilder Basic test + - JDK-8265524: Upgrading JSZip from v3.2.2 to v3.6.0 + - JDK-8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java + - JDK-8266579: Update test/jdk/java/lang/ProcessHandle/PermissionTest.java & test/jdk/java/sql/testng/util/TestPolicy.java + - JDK-8266949: Check possibility to disable OperationTimedOut on Unix + - JDK-8267246: -XX:MaxRAMPercentage=0 is unreasonable for jtreg tests on many-core machines + - JDK-8267256: Extend minimal retry for loopback connections on Windows to PlainSocketImpl + - JDK-8267304: Bump global JTReg memory limit to 768m + - JDK-8267652: c2 loop unrolling by 8 results in reading memory past array + - JDK-8268019: C2: assert(no_dead_loop) failed: dead loop detected + - JDK-8268093: Manual Testcase: "sun/security/krb5/config/native/TestDynamicStore.java" Fails with NPE + - JDK-8268555: Update HttpClient tests that use ITestContext to jtreg 6+1 + - JDK-8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only + - JDK-8269034: AccessControlException for SunPKCS11 daemon threads + - JDK-8269426: Rename test/jdk/java/lang/invoke/t8150782 to accessClassAndFindClass + - JDK-8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events + - JDK-8269656: The test test/langtools/tools/javac/versions/Versions.java has duplicate test cycles + - JDK-8269768: JFR Terminology Refresh + - JDK-8269951: [macos] Focus not painted in JButton when setBorderPainted(false) is invoked + - JDK-8269984: [macos] JTabbedPane title looks like disabled + - JDK-8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags + - JDK-8270116: Expand ButtonGroupLayoutTraversalTest.java to run in all LaFs, including Aqua on macOS + - JDK-8270216: [macOS] Update named used for Java run loop mode + - JDK-8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java OCSP response error + - JDK-8270290: NTLM authentication fails if HEAD request is used + - JDK-8270317: Large Allocation in CipherSuite + - JDK-8270344: Session resumption errors + - JDK-8270517: Add Zero support for LoongArch + - JDK-8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS + - JDK-8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling + - JDK-8271287: jdk/jshell/CommandCompletionTest.java fails with "lists don't have the same size expected" + - JDK-8271340: Crash PhaseIdealLoop::clone_outer_loop + - JDK-8271341: Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with Test7179138_1.java + - JDK-8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity + - JDK-8271490: [ppc] [s390]: Crash in JavaThread::pd_get_top_frame_for_profiling + - JDK-8271560: sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java still fails due to "An established connection was aborted by the software in your host machine" + - JDK-8271567: AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions + - JDK-8272180: Upgrade JSZip from v3.6.0 to v3.7.1 + - JDK-8272181: Windows-AArch64:Backport fix of `Backtracing broken on PAC enabled systems` + - JDK-8272316: Wrong Boot JDK help message in 11 + - JDK-8272318: Improve performance of HeapDumpAllTest + - JDK-8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions + - JDK-8272570: C2: crash in PhaseCFG::global_code_motion + - JDK-8272574: C2: assert(false) failed: Bad graph detected in build_loop_late + - JDK-8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182 + - JDK-8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled + - JDK-8272720: Fix the implementation of loop unrolling heuristic with LoopPercentProfileLimit + - JDK-8272783: Epsilon: Refactor tests to improve performance + - JDK-8272806: [macOS] "Apple AWT Internal Exception" when input method is changed + - JDK-8272828: Add correct licenses to jszip.md + - JDK-8272836: Limit run time for java/lang/invoke/LFCaching tests + - JDK-8272850: Drop zapping values in the Zap* option descriptions + - JDK-8272902: Bump update version for OpenJDK: jdk-11.0.14 + - JDK-8272914: Create hotspot:tier2 and hotspot:tier3 test groups + - JDK-8272966: test/jdk/java/awt/Robot/FlushCurrentEvent.java fails by timeout + - JDK-8273026: Slow LoginContext.login() on multi threading application + - JDK-8273229: Update OS detection code to recognize Windows Server 2022 + - JDK-8273235: tools/launcher/HelpFlagsTest.java Fails on Windows 32bit + - JDK-8273308: PatternMatchTest.java fails on CI + - JDK-8273314: Add tier4 test groups + - JDK-8273342: Null pointer dereference in classFileParser.cpp:2817 + - JDK-8273358: macOS Monterey does not have the font Times needed by Serif + - JDK-8273373: Zero: Cannot invoke JVM in primordial threads on Zero + - JDK-8273498: compiler/c2/Test7179138_1.java timed out + - JDK-8273541: Cleaner Thread creates with normal priority instead of MAX_PRIORITY - 2 + - JDK-8273547: [11u] [JVMCI] Partial module-info.java backport of JDK-8223332 + - JDK-8273606: Zero: SPARC64 build fails with si_band type mismatch + - JDK-8273646: Add openssl from path variable also in to Default System Openssl Path in OpensslArtifactFetcher + - JDK-8273671: Backport of 8260616 misses one JNF header inclusion removal + - JDK-8273790: Potential cyclic dependencies between Gregorian and CalendarSystem + - JDK-8273795: Zero SPARC64 debug builds fail due to missing interpreter fields + - JDK-8273826: Correct Manifest file name and NPE checks + - JDK-8273894: ConcurrentModificationException raised every time ReferralsCache drops referral + - JDK-8273924: ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add() + - JDK-8273961: jdk/nio/zipfs/ZipFSTester.java fails if file path contains '+' character + - JDK-8273968: JCK javax_xml tests fail in CI + - JDK-8274056: JavaAccessibilityUtilities leaks JNI objects + - JDK-8274083: Update testing docs to mention tiered testing + - JDK-8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated + - JDK-8274326: [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m + - JDK-8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern + - JDK-8274381: missing CAccessibility definitions in JNI code + - JDK-8274407: (tz) Update Timezone Data to 2021c + - JDK-8274467: TestZoneInfo310.java fails with tzdata2021b + - JDK-8274468: TimeZoneTest.java fails with tzdata2021b + - JDK-8274522: java/lang/management/ManagementFactory/MXBeanException.java test fails with Shenandoah + - JDK-8274642: jdk/jshell/CommandCompletionTest.java fails with NoSuchElementException after JDK-8271287 + - JDK-8274773: [TESTBUG] UnsafeIntrinsicsTest intermittently fails on weak memory model platform + - JDK-8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST + - JDK-8274840: Update OS detection code to recognize Windows 11 + - JDK-8274860: gcc 10.2.1 produces an uninitialized warning in sharedRuntimeTrig.cpp + - JDK-8275051: Shenandoah: Correct ordering of requested gc cause and gc request flag + - JDK-8275131: Exceptions after a touchpad gesture on macOS + - JDK-8275713: TestDockerMemoryMetrics test fails on recent runc + - JDK-8275766: (tz) Update Timezone Data to 2021e + - JDK-8275849: TestZoneInfo310.java fails with tzdata2021e + - JDK-8276066: Reset LoopPercentProfileLimit for x86 due to suboptimal performance + - JDK-8276139: TestJpsHostName.java not reliable, better to expand HostIdentifierCreate.java test + - JDK-8276157: C2: Compiler stack overflow during escape analysis on Linux x86_32 + - JDK-8276201: Shenandoah: Race results degenerated GC to enter wrong entry point + - JDK-8276536: Update TimeZoneNames files to follow the changes made by JDK-8275766 + - JDK-8276550: Use SHA256 hash in build.tools.depend.Depend + - JDK-8276774: Cookie stored in CookieHandler not sent if user headers contain cookie + - JDK-8276854: Windows GHA builds fail due to broken Cygwin + - JDK-8277029: JMM GetDiagnosticXXXInfo APIs should verify output array sizes + - JDK-8277224: sun.security.pkcs.PKCS9Attributes.toString() throws NPE + - JDK-8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint + - JDK-8277815: Fix mistakes in legal header backports + +Notes on individual issues: +=========================== + +core-svc/tools: + +JDK-8250554: New Option Added to jcmd for Writing a gzipped Heap Dump +===================================================================== +A new integer option `gz` has been added to the `GC.heap_dump` +diagnostic command. If it is specified, it will enable the gzip +compression of the written heap dump. The supplied value is the +compression level. It can range from 1 (fastest) to 9 (slowest, but +best compression). The recommended level is 1. + +security-libs/javax.net.ssl: + +JDK-8260310: Configurable Extensions With System Properties +=========================================================== +Two new system properties have been added. The system property, +`jdk.tls.client.disableExtensions`, is used to disable TLS extensions +used in the client. The system property, +`jdk.tls.server.disableExtensions`, is used to disable TLS extensions +used in the server. If an extension is disabled, it will be neither +produced nor processed in the handshake messages. + +The property string is a list of comma separated standard TLS +extension names, as registered in the IANA documentation (for example, +server_name, status_request, and signature_algorithms_cert). Note that +the extension names are case sensitive. Unknown, unsupported, +misspelled and duplicated TLS extension name tokens will be ignored. + +Please note that the impact of blocking TLS extensions is +complicated. For example, a TLS connection may not be able to be +established if a mandatory extension is disabled. Please do not +disable mandatory extensions, and do not use this feature unless you +clearly understand the impact. + +security-libs/javax.crypto:pkcs11: + +JDK-8272907: New SunPKCS11 Configuration Properties +=================================================== +The SunPKCS11 provider gains new provider configuration attributes to +better control native resources usage. The SunPKCS11 provider consumes +native resources in order to work with native PKCS11 libraries. To +manage and better control the native resources, additional +configuration attributes are added to control the frequency of +clearing native references as well as whether to destroy the +underlying PKCS11 Token after logout. + +The 3 new attributes for the SunPKCS11 provider configuration file +are: + +1) `destroyTokenAfterLogout` (boolean, defaults to false) + +If set to true, when `java.security.AuthProvider.logout()` is called +upon the SunPKCS11 provider instance, the underlying Token object will +be destroyed and resources will be freed. This essentially renders the +SunPKCS11 provider instance unusable after `logout()` calls. Note that +a PKCS11 provider with this attribute set to `true` should not be +added to the system provider list since the provider object is not +usable after a `logout()` method call. + +2) `cleaner.shortInterval` (integer, defaults to 2000, in milliseconds) + +This defines the frequency for clearing native references during busy +periods (such as, how often should the cleaner thread processes the +no-longer-needed native references in the queue to free up native +memory). Note that the cleaner thread will switch to the +'longInterval' frequency after 200 failed tries (such as, when no +references are found in the queue). + +3) `cleaner.longInterval` (integer, defaults to 60000, in milliseconds) + +This defines the frequency for checking native reference during +non-busy period (such as, how often should the cleaner thread check +the queue for native references). Note that the cleaner thread will +switch back to the 'shortInterval' value if native PKCS11 references +for cleaning are detected. + +core-libs/java.nio: + +JDK-8271517: Zip File System Provider Throws ZipException when entry name element contains "." or "." +===================================================================================================== +The ZIP file system provider has been changed to reject existing ZIP +files that contain entries with "." or ".." in name elements. ZIP +files with these entries can not be used as a file system. Invoking +the `java.nio.file.FileSystems.newFileSystem(...)` methods will throw +`ZipException` if the ZIP file contains these entries. + +security-libs/java.security: + +JDK-8272535: Removed Google's GlobalSign Root Certificate +========================================================= +The following root certificate from Google has been removed from the +`cacerts` keystore: + +Alias Name: globalsignr2ca [jdk] +Distinguished Name: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2 + +core-libs/java.time: + +JDK-8274857: Update Timezone Data to 2021c +=========================================== +IANA Time Zone Database, on which JDK's Date/Time libraries are based, +has been updated to version 2021c +(https://mm.icann.org/pipermail/tz-announce/2021-October/000067.html). Note +that with this update, some of the time zone rules prior to the year +1970 have been modified according to the changes which were introduced +with 2021b. For more detail, refer to the announcement of 2021b +(https://mm.icann.org/pipermail/tz-announce/2021-September/000066.html) + +New in release OpenJDK 11.0.13 (2021-10-19): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11013 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.13.txt + +* Security fixes + - JDK-8163326, CVE-2021-35550: Update the default enabled cipher suites preference + - JDK-8254967, CVE-2021-35565: com.sun.net.HttpsServer spins on TLS session close + - JDK-8263314: Enhance XML Dsig modes + - JDK-8265167, CVE-2021-35556: Richer Text Editors + - JDK-8265574: Improve handling of sheets + - JDK-8265580, CVE-2021-35559: Enhanced style for RTF kit + - JDK-8265776: Improve Stream handling for SSL + - JDK-8266097, CVE-2021-35561: Better hashing support + - JDK-8266103: Better specified spec values + - JDK-8266109: More Resilient Classloading + - JDK-8266115: More Manifest Jar Loading + - JDK-8266137, CVE-2021-35564: Improve Keystore integrity + - JDK-8266689, CVE-2021-35567: More Constrained Delegation + - JDK-8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic + - JDK-8267712: Better LDAP reference processing + - JDK-8267729, CVE-2021-35578: Improve TLS client handshaking + - JDK-8267735, CVE-2021-35586: Better BMP support + - JDK-8268193: Improve requests of certificates + - JDK-8268199: Correct certificate requests + - JDK-8268205: Enhance DTLS client handshake + - JDK-8268506: More Manifest Digests + - JDK-8269618, CVE-2021-35603: Better session identification + - JDK-8269624: Enhance method selection support + - JDK-8270398: Enhance canonicalization + - JDK-8270404: Better canonicalization +* Other changes + - JDK-8024368: private methods are allocated vtable indices + - JDK-8042902: Test java/net/Inet6Address/serialize/Inet6AddressSerializationTest.java fails intermittently + - JDK-8140466: ChaCha20 and Poly1305 TLS Cipher Suites + - JDK-8157404: Unable to read certain PKCS12 keystores from SequenceInputStream + - JDK-8158066: SourceDebugExtensionTest fails to rename file + - JDK-8168304: Make all of DependencyContext_test available in product mode + - JDK-8169246: java/net/DatagramSocket/ReportSocketClosed.java fails intermittently with BindException + - JDK-8181313: SA: Remove libthread_db dependency on Linux + - JDK-8193214: Incorrect annotations.without.processors warnings with JDK 9 + - JDK-8194230: jdk/internal/jrtfs/remote/RemoteRuntimeImageTest.java fails with java.lang.NullPointerException + - JDK-8196092: javax/swing/JComboBox/8032878/bug8032878.java fails + - JDK-8199931: java/net/MulticastSocket/UnreferencedMulticastSockets.java fails with "incorrect data received" + - JDK-8206083: Make tools/javac/api/T6265137.java robust to JDK version changes + - JDK-8206350: java/util/Locale/bcp47u/SystemPropertyTests.java failed on Mac 10.13 with zh_CN and zh_TW locales. + - JDK-8207316: java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java failed + - JDK-8208227: tools/jdeps/DotFileTest.java fails on Win-X64 + - JDK-8208363: test/jdk/java/lang/Package/PackageFromManifest.java missing module dependencies declaration + - JDK-8209380: ARM: cleanup maybe-uninitialized and reorder compiler warnings + - JDK-8209768: Refactor java/util/prefs/CheckUserPrefsStorage.sh to plain java test + - JDK-8209772: Refactor shell test java/util/ServiceLoader/basic/basic.sh to java + - JDK-8209773: Refactor shell test javax/naming/module/basic.sh to java + - JDK-8209832: Refactor jdk/internal/reflect/Reflection/GetCallerClassTest.sh to plain java test + - JDK-8209930: Refactor java/util/zip/ZipFile/deletetempjar.sh to plain java test + - JDK-8210406: Refactor java.util.PluggableLocale:i18n shell tests to plain java tests + - JDK-8210407: Refactor java.util.Calendar:i18n shell tests to plain java tests + - JDK-8210495: compiler crashes because of illegal signature in otherwise legal code + - JDK-8210669: Some launcher tests assume a pre-JDK 9 run-time image layout + - JDK-8210802: temp files left by tests in jdk/java/net/httpclient + - JDK-8210819: Update the host name in CNameTest.java + - JDK-8210908: Refactor java/util/prefs/PrefsSpi.sh to plain java test + - JDK-8210934: Move sun/net/www/protocol/http/GetErrorStream.java to OpenJDK + - JDK-8210959: JShell fails and exits when statement throws an exception whose message contains a '%'. + - JDK-8211055: Provide print to a file (PDF) feature even when printer was not connected + - JDK-8211092: test/jdk/sun/net/www/http/HttpClient/MultiThreadTest.java fails intermittently when cleaning up + - JDK-8211296: Remove HotSpot deprecation warning suppression for Mac/clang + - JDK-8211325: test/jdk/java/net/Socket/LingerTest.java fails with cleaning up + - JDK-8212040: Compilation error due to wrong usage of NSPrintJobDispositionValue in mac10.12 + - JDK-8212695: Add explicit timeout to several HTTP Client tests + - JDK-8212718: Refactor some annotation processor tests to better use collections + - JDK-8213007: Update the link in test/jdk/sun/security/provider/SecureRandom/DrbgCavp.java + - JDK-8213137: Remove static initialization of monitor/mutex instances + - JDK-8213235: java/nio/channels/SocketChannel/AsyncCloseChannel.java fails with threads that didn't exit + - JDK-8213409: Refactor sun.text.IntHashtable:i18n shell tests to plain java tests + - JDK-8213576: Make test AsyncCloseChannel.java run in othervm + - JDK-8213694: Test Timeout.java should run in othervm mode + - JDK-8213718: [TEST] Wrong classname in vmTestbase/nsk/stress/except/except002 and except003 + - JDK-8213922: fix ctw stand-alone build + - JDK-8214195: Align stdout messages in test/jdk/java/math/BigInteger/PrimitiveConversionTests.java + - JDK-8214520: [TEST_BUG] sun/security/mscapi/nonUniqueAliases/NonUniqueAliases.java failed with incorrect jtreg tags order + - JDK-8214937: sun/security/tools/jarsigner/warnings/NoTimestampTest.java failed due to unexpected expiration date + - JDK-8216532: tools/launcher/Test7029048.java fails (Solaris) + - JDK-8217825: Verify @AfterTest is used correctly in WebSocket tests + - JDK-8218145: block_if_requested is not proper inlined due to size + - JDK-8219417: bump jtreg requiredVersion to b14 + - JDK-8219552: bump jtreg requiredVersion to b14 in test/jdk/sanity/client/ + - JDK-8219804: java/net/MulticastSocket/Promiscuous.java fails intermittently due to NumberFormatException + - JDK-8220445: Support for side by side MSVC Toolset versions + - JDK-8221988: add possibility to build with Visual Studio 2019 + - JDK-8222751: closed/test/jdk/sun/security/util/DerIndefLenConverter/IndefBerPkcs12.java fail + - JDK-8223050: JVMCI: findUniqueConcreteMethod() should not use Dependencies::find_unique_concrete_method() for non-virtual methods + - JDK-8224853: CDS address sanitizer errors + - JDK-8225082: Remove IdenTrust certificate that is expiring in September 2021 + - JDK-8225583: Examine the HttpResponse.BodySubscribers for null handling and multiple subscriptions + - JDK-8225690: Multiple AttachListener threads can be created + - JDK-8225790: Two NestedDialogs tests fail on Ubuntu + - JDK-8226319: Add forgotten test/jdk/java/net/httpclient/BodySubscribersTest.java + - JDK-8226533: JVMCI: findUniqueConcreteMethod should handle statically bindable methods directly + - JDK-8226602: Test convenience reactive primitives from java.net.http with RS TCK + - JDK-8226683: Remove review suggestion from fix to 8219804 + - JDK-8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is 134" + - JDK-8227766: CheckUnhandledOops is broken in MemAllocator + - JDK-8227815: Minimal VM: set_state is not a member of AttachListener + - JDK-8230674: Heap dumps should exclude dormant CDS archived objects of unloaded classes + - JDK-8230808: Remove Access::equals() + - JDK-8230841: Remove oopDesc::equals() + - JDK-8231717: Improve performance of charset decoding when charset is always compactable + - JDK-8232243: Wrong caret position in JTextPane on Windows with a screen resolution > 100% + - JDK-8232782: Shenandoah: streamline post-LRB CAS barrier (aarch64) + - JDK-8233790: Forward output from heap dumper to jcmd/jmap + - JDK-8233989: Create an IPv4 version of java/net/MulticastSocket/SetLoopbackMode.java + - JDK-8234510: Remove file seeking requirement for writing a heap dump + - JDK-8235211: serviceability/attach/RemovingUnixDomainSocketTest.java fails with AttachNotSupportedException: Unable to open socket file + - JDK-8235216: typo in test filename + - JDK-8235866: bump jtreg requiredVersion to 4.2b16 + - JDK-8236111: narrow allowSmartActionArgs disabling + - JDK-8236413: AbstractConnectTimeout should tolerate both NoRouteToHostException and UnresolvedAddressException + - JDK-8236671: NullPointerException in JKS keystore + - JDK-8238930: problem list compiler/c2/Test8004741.java + - JDK-8238943: switch to jtreg 5.0 + - JDK-8240555: Using env of JAVA_TOOL_OPTIONS and _JAVA_OPTIONS breaks QuietOption.java test + - JDK-8240983: Incorrect copyright header in Apache Santuario 2.1.3 files + - JDK-8241336: Some java.net tests failed with NoRouteToHostException on MacOS with special network configuration + - JDK-8241353: NPE in ToolProvider.getSystemJavaCompiler + - JDK-8241768: git needs .gitattributes + - JDK-8242882: opening jar file with large manifest might throw NegativeArraySizeException + - JDK-8244973: serviceability/attach/RemovingUnixDomainSocketTest.java fails "stderr was not empty" + - JDK-8245134: test/lib/jdk/test/lib/security/KeyStoreUtils.java should allow to specify aliases + - JDK-8246261: TCKLocalTime.java failed due to "AssertionError: expected [18:14:22] but found [18:14:23]" + - JDK-8246387: switch to jtreg 5.1 + - JDK-8247421: [TESTBUG] ReturnBlobToWrongHeapTest.java failed allocating blob + - JDK-8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are present and cpusets.effective_cpus is not available + - JDK-8248352: [TEST_BUG] Test test/jdk/java/awt/font/TextLayout/ArabicDiacriticTest.java can leave frame open + - JDK-8248403: AArch64: Remove uses of kernel integer types + - JDK-8248414: AArch64: Remove uses of long and unsigned long ints + - JDK-8248657: Windows: strengthening in ThreadCritical regarding memory model + - JDK-8248666: AArch64: Use THREAD_LOCAL instead of __thread + - JDK-8248668: AArch64: Avoid MIN/MAX macros when using MSVC + - JDK-8248671: AArch64: Remove unused variables + - JDK-8248682: AArch64: Use ATTRIBUTE_ALIGNED helper + - JDK-8248816: C1: Fix signature conflict in LIRGenerator::strength_reduce_multiply + - JDK-8249095: tools/javac/launcher/SourceLauncherTest.java fails on Windows + - JDK-8249548: backward focus traversal gets stuck in button group + - JDK-8249773: Upgrade ReceiveISA.java test to be resilient to failure due to stray packets and interference + - JDK-8249897: jdk/javadoc/tool/LangVers.java uses @ignore w/o bug-id + - JDK-8249898: jdk/javadoc/tool/6176978/T6176978.java uses @ignore w/o bug-id + - JDK-8249899: jdk/javadoc/tool/InlineTagsWithBraces.java uses @ignore w/o bug-id + - JDK-8250588: Shenandoah: LRB needs to save/restore fp registers for runtime call + - JDK-8250824: AArch64: follow up for JDK-8248414 + - JDK-8251166: Add automated testcases for changes done in JDK-8214112 + - JDK-8251252: Add automated testcase for fix done in JDK-8214253 + - JDK-8251254: Add automated test for fix done in JDK-8218472 + - JDK-8251361: Potential race between Logger configuration and GCs in HttpURLConWithProxy test + - JDK-8251549: Update docs on building for Git + - JDK-8251945: SIGSEGV in PackageEntry::purge_qualified_exports() + - JDK-8252194: Add automated test for fix done in JDK-8218469 + - JDK-8252648: Shenandoah: name gang tasks consistently + - JDK-8252825: Add automated test for fix done in JDK-8218479 + - JDK-8252853: AArch64: gc/shenandoah/TestVerifyJCStress.java fails intermittently with C1 + - JDK-8252857: AArch64: Shenandoah C1 CAS is not sequentially consistent + - JDK-8253048: AArch64: When CallLeaf, no need to preserve callee-saved registers in caller + - JDK-8253424: Add support for running pre-submit testing using GitHub Actions + - JDK-8253631: Remove unimplemented CompileBroker methods after JEP-165 + - JDK-8253865: Pre-submit testing using GitHub Actions does not detect failures reliably + - JDK-8253899: Make IsClassUnloadingEnabled signature match specification + - JDK-8254024: Enhance native libs for AWT and Swing to work with GraalVM Native Image + - JDK-8254054: Pre-submit testing using GitHub Actions should not use the deprecated set-env command + - JDK-8254173: Add Zero, Minimal hotspot targets to submit workflow + - JDK-8254175: Build no-pch configuration in debug mode for submit checks + - JDK-8254244: Some code emitted by TemplateTable::branch is unused when running TieredCompilation + - JDK-8254270: linux 32 bit build doesn't compile libjdwp/log_messages.c + - JDK-8254282: Add Linux x86_32 builds to submit workflow + - JDK-8254850: Update terminology in java.awt.GridBagLayout source code comments + - JDK-8255255: Update Apache Santuario (XML Signature) to version 2.2.1 + - JDK-8255305: Add Linux x86_32 tier1 to submit workflow + - JDK-8255352: Archive important test outputs in submit workflow + - JDK-8255373: Submit workflow artifact name is always "test-results_.zip" + - JDK-8255452: Doing GC during JVMTI MethodExit event posting breaks return oop + - JDK-8255718: Zero: VM should know it runs in interpreter-only mode + - JDK-8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux + - JDK-8255810: Zero: build fails without JVMTI + - JDK-8255895: Submit workflow artifacts miss hs_errs/replays due to ZIP include mismatch + - JDK-8256127: Add cross-compiled foreign architectures builds to submit workflow + - JDK-8256215: Shenandoah: re-organize saving/restoring machine state in assembler code + - JDK-8256267: Relax compiler/floatingpoint/NaNTest.java for x86_32 and lower -XX:+UseSSE + - JDK-8256277: Github Action build on macOS should define OS and Xcode versions + - JDK-8256354: Github Action build on Windows should define OS and MSVC versions + - JDK-8256393: Github Actions build on Linux should define OS and GCC versions + - JDK-8256414: add optimized build to submit workflow + - JDK-8256747: GitHub Actions: decouple the hotspot build-only jobs from Linux x64 testing + - JDK-8257056: Submit workflow should apt-get update to avoid package installation errors + - JDK-8257148: Remove obsolete code in AWTView.m + - JDK-8257497: Update keytool to create AKID from the SKID of the issuing certificate as specified by RFC 5280 + - JDK-8257620: Do not use objc_msgSend_stret to get macOS version + - JDK-8257913: Add more known library locations to simplify Linux cross-compilation + - JDK-8258703: Incorrect 512-bit vector registers restore on x86_32 + - JDK-8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java test + - JDK-8259535: ECDSA SignatureValue do not always have the specified length + - JDK-8259679: GitHub actions should use MSVC 14.28 + - JDK-8259924: GitHub actions fail on Linux x86_32 with "Could not configure libc6:i386" + - JDK-8260460: GitHub actions still fail on Linux x86_32 with "Could not configure libc6:i386" + - JDK-8260589: Crash in JfrTraceIdLoadBarrier::load(_jclass*) + - JDK-8260923: Add more tests for SSLSocket input/output shutdown + - JDK-8261072: AArch64: Fix MacroAssembler::get_thread convention + - JDK-8261147: C2: Node is wrongly marked as reduction resulting in a wrong execution due to wrong vector instructions + - JDK-8261238: NMT should not limit baselining by size threshold + - JDK-8261496: Shenandoah: reconsider pacing updates memory ordering + - JDK-8261652: Remove some dead comments from os_bsd_x86 + - JDK-8261846: [JVMCI] c2v_iterateFrames can get out of sync with the StackFrameStream + - JDK-8262000: jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with "OutOfMemoryError: Java heap space" + - JDK-8262017: C2: assert(n != __null) failed: Bad immediate dominator info. + - JDK-8262392: Update Mesa 3-D Headers to version 21.0.3 + - JDK-8262409: sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions. SSL test failures caused by java failed with "Server reported the wrong exception" + - JDK-8262470: Printed GlyphVector outline with low DPI has bad quality on Windows + - JDK-8262862: Harden tests sun/security/x509/URICertStore/ExtensionsWithLDAP.java and krb5/canonicalize/Test.java + - JDK-8263136: C4530 was reported from VS 2019 at access bridge + - JDK-8263227: C2: inconsistent spilling due to dead nodes in exception block + - JDK-8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers: getLoggerNames() returned unexpected loggers" + - JDK-8263407: SPARC64 detection fails on Athena (SPARC64-X) + - JDK-8263432: javac may report an invalid package/class clash on case insensitive filesystems + - JDK-8263490: [macos] Crash occurs on JPasswordField with activated InputMethod + - JDK-8263531: Remove unused buffer int + - JDK-8263667: Avoid running GitHub actions on branches named pr/* + - JDK-8263776: [JVMCI] add helper to perform Java upcalls + - JDK-8264016: [JVMCI] add some thread local fields for use by JVMCI + - JDK-8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M + - JDK-8265132: C2 compilation fails with assert "missing precedence edge" + - JDK-8265231: (fc) ReadDirect and WriteDirect tests fail after fix for JDK-8264821 + - JDK-8265335: Epsilon: Minor typo in EpsilonElasticTLABDecay description + - JDK-8265756: AArch64: initialize memory allocated for locals according to Windows AArch64 stack page growth requirement in template interpreter + - JDK-8265761: Font with missed font family name is not properly printed on Windows + - JDK-8265773: incorrect jdeps message "jdk8internals" to describe a removed JDK internal API + - JDK-8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a container + - JDK-8266018: Shenandoah: fix an incorrect assert + - JDK-8266206: Build failure after JDK-8264752 with older GCCs + - JDK-8266248: Compilation failure in PLATFORM_API_MacOSX_MidiUtils.c with Xcode 12.5 + - JDK-8266288: assert root method not found in witnessed_reabstraction_in_supers is too strong + - JDK-8266404: Fatal error report generated with -XX:+CrashOnOutOfMemoryError should not contain suggestion to submit a bug report + - JDK-8266480: Implicit null check optimization does not update control of hoisted memory operation + - JDK-8266615: C2 incorrectly folds subtype checks involving an interface array + - JDK-8266642: Improve ResolvedMethodTable hash function + - JDK-8266749: AArch64: Backtracing broken on PAC enabled systems + - JDK-8266761: AssertionError in sun.net.httpserver.ServerImpl.responseCompleted + - JDK-8266813: Shenandoah: Use shorter instruction sequence for checking if marking in progress + - JDK-8267042: bug in monitor locking/unlocking on ARM32 C1 due to uninitialized BasicObjectLock::_displaced_header + - JDK-8267348: Rewrite gc/epsilon/TestClasses.java to use Metaspace with less classes + - JDK-8267396: Avoid recording "pc" in unhandled oops detector for better performance + - JDK-8267399: C2: java/text/Normalizer/ConformanceTest.java test failed with assertion + - JDK-8267424: CTW: C1 fails with "State must not be null" + - JDK-8267459: Pasting Unicode characters into JShell does not work. + - JDK-8267625: AARCH64: typo in LIR_Assembler::emit_profile_type + - JDK-8267666: Add option to jcmd GC.heap_dump to use existing file + - JDK-8267695: Bump update version for OpenJDK: jdk-11.0.13 + - JDK-8267751: (test) jtreg.SkippedException has no serial VersionUID + - JDK-8267773: PhaseStringOpts::int_stringSize doesn't handle min_jint correctly + - JDK-8268103: JNI functions incorrectly return a double after JDK-8265836 + - JDK-8268127: Shenandoah: Heap size may be too small for region to align to large page size + - JDK-8268261: C2: assert(n != __null) failed: Bad immediate dominator info. + - JDK-8268347: C2: nested locks optimization may create unbalanced monitor enter/exit code + - JDK-8268360: Missing check for infinite loop during node placement + - JDK-8268362: [REDO] C2 crash when compile negative Arrays.copyOf length after loop + - JDK-8268366: Incorrect calculation of has_fpu_registers in C1 linear scan + - JDK-8268369: SIGSEGV in PhaseCFG::implicit_null_check due to missing null check + - JDK-8268417: Add test from JDK-8268360 + - JDK-8268427: Improve AlgorithmConstraints:checkAlgorithm performance + - JDK-8268617: [11u REDO] - WebSocket over authenticating proxy fails with NPE + - JDK-8268620: InfiniteLoopException test may fail on x86 platforms + - JDK-8268635: Corrupt oop in ClassLoaderData + - JDK-8268699: Shenandoah: Add test for JDK-8268127 + - JDK-8268771: javadoc -notimestamp option does not work on index.html + - JDK-8268775: Password is being converted to String in AccessibleJPasswordField + - JDK-8268776: Test `ADatagramSocket.java` missing /othervm from @run tag + - JDK-8268965: TCP Connection Reset when connecting simple socket to SSL server + - JDK-8269304: Regression ~5% in 2005 in b27 + - JDK-8269415: [11u] Remove ea from DEFAULT_PROMOTED_VERSION_PRE in OpenJDK 11u + - JDK-8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient + - JDK-8269529: javax/swing/reliability/HangDuringStaticInitialization.java fails in Windows debug build + - JDK-8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark + - JDK-8269614: [s390] Interpreter checks wrong bit for slow path instance allocation + - JDK-8269650: Optimize gc-locker in [Get|Release]StringCritical for latin string + - JDK-8269661: JNI_GetStringCritical does not lock char array + - JDK-8269668: [aarch64] java.library.path not including /usr/lib64 + - JDK-8269763: The JEditorPane is blank after JDK-8265167 + - JDK-8269795: C2: Out of bounds array load floats above its range check in loop peeling resulting in SEGV + - JDK-8269847: JDK-8269594 backport breaks 11u builds + - JDK-8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0 + - JDK-8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers + - JDK-8269882: stack-use-after-scope in NewObjectA + - JDK-8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status + - JDK-8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode + - JDK-8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup + - JDK-8270184: [TESTBUG] Add coverage for jvmci ResolvedJavaType.toJavaName() for lambdas + - JDK-8270196: [11u] [JVMCI] JavaType.toJavaName() returns incorrect type name for lambdas + - JDK-8270556: Exclude security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA + - JDK-8270893: IndexOutOfBoundsException while reading large TIFF file + - JDK-8272078: Wrong Checksums in Temurin BootJDK dependencies + - JDK-8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon + - JDK-8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj + - JDK-8272197: Update 11u GHA workflow with Shenandoah configurations + - JDK-8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790 + - JDK-8272472: StackGuardPages test doesn't build with glibc 2.34 + - JDK-8272602: [macos] not all KEY_PRESSED events sent when control modifier is used + - JDK-8272628: Problemlist gc/stress/gcbasher/TestGCBasherWithCMS.java for x86_32 + - JDK-8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848 + - JDK-8272772: Shenandoah: compiler/c2/aarch64/TestVolatilesShenandoah.java fails in 11u + - JDK-8273939: Backport of 8248414 to JDK11 breaks MacroAssembler::adrp + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8271434: Removed IdenTrust Root Certificate +=============================================== +The following root certificate from IdenTrust has been removed from +the `cacerts` keystore: + +Alias Name: identrustdstx3 [jdk] +Distinguished Name: CN=DST Root CA X3, O=Digital Signature Trust Co. + +JDK-8261922: Updated keytool to Create AKID From SKID of Issuing Certificate as Specified by RFC 5280 +===================================================================================================== +The `gencert` command of the `keytool` utility has been updated to +create AKID from the SKID of the issuing certificate as specified by +RFC 5280. + +security-libs/javax.net.ssl: + +JDK-8210799: ChaCha20 and Poly1305 TLS Cipher Suites +==================================================== +New TLS cipher suites using the `ChaCha20-Poly1305` algorithm have +been added to JSSE. These cipher suites are enabled by default. The +TLS_CHACHA20_POLY1305_SHA256 cipher suite is available for TLS 1.3. +The following cipher suites are available for TLS 1.2: + +* TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 +* TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 +* TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 + +Refer to the "Java Secure Socket Extension (JSSE) Reference Guide" for +details on these new TLS cipher suites. + +JDK-8219551: Updated the Default Enabled Cipher Suites Preference +================================================================= +The preference of the default enabled cipher suites has been +changed. The compatibility impact should be minimal. If needed, +applications can customize the enabled cipher suites and the +preference. For more details, refer to the SunJSSE provider +documentation and the JSSE Reference Guide documentation. + +New in release OpenJDK 11.0.12 (2021-07-20): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11012 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.12.txt + +* Security fixes + - JDK-8256157: Improve bytecode assembly + - JDK-8256491: Better HTTP transport + - JDK-8258432, CVE-2021-2341: Improve file transfers + - JDK-8260453: Improve Font Bounding + - JDK-8260960: Signs of jarsigner signing + - JDK-8260967, CVE-2021-2369: Better jar file validation + - JDK-8262380: Enhance XML processing passes + - JDK-8262403: Enhanced data transfer + - JDK-8262410: Enhanced rules for zones + - JDK-8262477: Enhance String Conclusions + - JDK-8262967: Improve Zip file support + - JDK-8264066, CVE-2021-2388: Enhance compiler validation + - JDK-8264079: Improve abstractions + - JDK-8264460: Improve NTLM support +* Other changes + - JDK-6847157: java.lang.NullPointerException: HDC for component at sun.java2d.loops.Blit.Blit + - JDK-7106851: Test should not use System.exit + - JDK-8073446: TimeZone getOffset API does not return a dst offset between years 2038-2137 + - JDK-8076190: Customizing the generation of a PKCS12 keystore + - JDK-8153005: Upgrade the default PKCS12 encryption/MAC algorithms + - JDK-8171303: sun/java2d/pipe/InterpolationQualityTest.java fails on Windows & Linux + - JDK-8177068: incomplete classpath causes NPE in Flow + - JDK-8185734: [Windows] Structured Exception Catcher missing around gtest execution + - JDK-8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll + - JDK-8190763: Class cast exception on (CompoundEdit) UndoableEditEvent.getEdit() + - JDK-8195841: PNGImageReader.readNullTerminatedString() doesnt check for non-null terminated strings with length equal to maxLen + - JDK-8196100: javax/swing/text/JTextComponent/5074573/bug5074573.java fails + - JDK-8199646: JShell tests: jdk/jshell/FailOverDirectExecutionControlTest.java failed with java.lang.UnsupportedOperationException + - JDK-8206925: Support the certificate_authorities extension + - JDK-8207160: ClassReader::adjustMethodParams can potentially return null if the args list is empty + - JDK-8207247: AARCH64: Enable Minimal and Client VM builds + - JDK-8207404: MulticastSocket tests failing on AIX + - JDK-8207779: Method::is_valid_method() compares 'this' with NULL + - JDK-8208061: runtime/LoadClass/TestResize.java fails with "Load factor too high" when running in CDS mode. + - JDK-8209459: TestSHA512MultiBlockIntrinsics failed on AArch64 + - JDK-8210443: Migrate Locale matching tests to JDK Repo. + - JDK-8213231: ThreadSnapshot::_threadObj can become stale + - JDK-8213483: ARM32: runtime/ErrorHandling/ShowRegistersOnAssertTest.java jtreg test fail + - JDK-8213725: JShell NullPointerException due to class file with unexpected package + - JDK-8213794: ARM32: disable TypeProfiling, CriticalJNINatives, Serviceablity tests for ARM32 + - JDK-8213845: ARM32: Interpreter doesn't call result handler after native calls + - JDK-8214128: ARM32: wrong stack alignment on Deoptimization::unpack_frames + - JDK-8214512: ARM32: Jtreg test compiler/c2/Test8062950.java fails on ARM + - JDK-8214854: JDWP: Unforseen output truncation in logging + - JDK-8214922: Add vectorization support for fmin/fmax + - JDK-8215009: GCC 8 compilation error in libjli + - JDK-8216184: CDS/appCDS tests failed on Windows due to long path to a classlist file + - JDK-8216259: AArch64: Vectorize Adler32 intrinsics + - JDK-8216314: SIGILL in CodeHeapState::print_names() + - JDK-8217348: assert(thread->is_Java_thread()) failed: just checking + - JDK-8217465: [REDO] - Optimize CodeHeap Analytics + - JDK-8217561: X86: Add floating-point Math.min/max intrinsics + - JDK-8217918: C2: -XX:+AggressiveUnboxing is broken + - JDK-8218458: [TESTBUG] runtime/NMT/CheckForProperDetailStackTrace.java fails with Expected stack trace missing from output + - JDK-8219142: Remove unused JIMAGE_ResourcePath + - JDK-8219586: CodeHeap State Analytics processes dead nmethods + - JDK-8220074: Clean up GCC 8.3 errors in LittleCMS + - JDK-8220407: compiler/intrinsics/math/TestFpMinMaxIntrinsics.java timedout + - JDK-8222302: [TESTBUG]test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHAOptionOnUnsupportedCPU.java fails on any other CPU + - JDK-8222412: AARCH64: multiple instructions encoding issues + - JDK-8223020: aarch64: expand minI_rReg and maxI_rReg patterns into separate instructions + - JDK-8223444: Improve CodeHeap Free Space Management + - JDK-8223504: Improve performance of forall loops by better inlining of "iterator()" methods + - JDK-8223667: ASAN build broken + - JDK-8225081: Remove Telia Company CA certificate expiring in April 2021 + - JDK-8225116: Test OwnedWindowsLeak.java intermittently fails + - JDK-8225438: javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java failed with Read timed out + - JDK-8225756: [testbug] compiler/loopstripmining/CheckLoopStripMining.java sets too short a SafepointTimeoutDelay + - JDK-8226374: Restrict TLS signature schemes and named groups + - JDK-8226627: assert(t->singleton()) failed: must be a constant + - JDK-8226721: Missing intrinsics for Math.ceil, floor, rint + - JDK-8227080: (fs) Files.newInputStream(...).skip(n) is slow + - JDK-8227222: vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java failed XMM register should be 0-15 + - JDK-8227609: (fs) Files.newInputStream(...).skip(n) should allow skipping beyond file size + - JDK-8230428: Cleanup dead CastIP node code in formssel.cpp + - JDK-8231460: Performance issue (CodeHeap) with large free blocks + - JDK-8231713: x86_32 build failures after JDK-8226721 (Missing intrinsics for Math.ceil, floor, rint) + - JDK-8231841: AArch64: debug.cpp help() is missing an AArch64 line for pns + - JDK-8232084: HotSpot build failed with GCC 9.2.1 + - JDK-8232591: AArch64: Add missing match rules for smaddl, smsubl and smnegl + - JDK-8233185: HttpServer.stop() blocks indefinitely when called on dispatch thread + - JDK-8233787: Break cycle in vm_version* includes + - JDK-8233948: AArch64: Incorrect mapping between OptoReg and VMReg for high 64 bits of Vector Register + - JDK-8234355: Buffer overflow in jcmd GC.class_stats due to too many classes + - JDK-8235368: Update BCEL to Version 6.4.1 + - JDK-8236859: WebSocket over authenticating proxy fails with NPE + - JDK-8236992: AArch64: remove redundant load_klass in itable stub + - JDK-8237743: test/langtools/jdk/jshell/FailOverExecutionControlTest.java fails No ExecutionControlProvider with name 'nonExistent' and parameter keys: [] + - JDK-8237804: sun/security/mscapi tests fail with "Key pair not generated, alias already exists" + - JDK-8238175: CTW: Class.getDeclaredMethods fails with assert(k->is_subclass_of(SystemDictionary::Throwable_klass())) failed: invalid exception class + - JDK-8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers + - JDK-8238812: assert(false) failed: bad AD file + - JDK-8239312: [macos] javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java + - JDK-8239386: handle ContendedPaddingWidth in vm_version_aarch64 + - JDK-8239536: Can't use `java.util.List` object after importing `java.awt.List` + - JDK-8240487: Cleanup whitespace in .cc, .hh, .m, and .mm files + - JDK-8240848: ArrayIndexOutOfBoundsException buf for TextCallbackHandler + - JDK-8241082: Upgrade IANA Language Subtag Registry data to 03-16-2020 version + - JDK-8241087: Build failure with VS 2019 (16.5.0) due to C2039 and C2873 + - JDK-8241101: [s390] jtreg test failure after JDK-8238696: not conformant features string + - JDK-8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93) + - JDK-8241372: Several test failures due to javax.net.ssl.SSLException: Connection reset + - JDK-8241475: AArch64: Add missing support for PopCountVI node + - JDK-8241829: Cleanup the code for PrinterJob on windows + - JDK-8241960: The SHA3 message digests impl of SUN provider are not thread safe after cloned + - JDK-8242010: Upgrade IANA Language Subtag Registry to Version 2020-04-01 + - JDK-8242429: Better implementation for sign extract + - JDK-8242557: Add length limit for strings in PNGImageWriter + - JDK-8242919: Paste locks up jshell + - JDK-8243155: AArch64: Add support for SqrtVF + - JDK-8243240: AArch64: Add support for MulVB + - JDK-8243452: JFR: Could not create chunk in repository with over 200 recordings + - JDK-8243559: Remove root certificates with 1024-bit keys + - JDK-8243597: AArch64: Add support for integer vector abs + - JDK-8244031: HttpClient should have more tests for HEAD requests + - JDK-8244205: HTTP/2 tunnel connections through proxy may be reused regardless of which proxy is selected + - JDK-8244847: Linux/PPC: runtime/CompressedOops/CompressedClassPointers: smallHeapTest fails + - JDK-8245511: G1 adaptive IHOP does not account for reclamation of humongous objects by young GC + - JDK-8246274: G1 old gen allocation tracking is not in a separate class + - JDK-8247354: [aarch64] PopFrame causes assert(oopDesc::is_oop(obj)) failed: not an oop + - JDK-8247408: IdealGraph bit check expression canonicalization + - JDK-8247432: Update IANA Language Subtag Registry to Version 2020-09-29 + - JDK-8247438: JShell: When FailOverExecutionControlProvider fails the proximal cause is not shown + - JDK-8247753: UIManager.getSytemLookAndFeelClassName() returns wrong value on Fedora 32 + - JDK-8248043: Need to eliminate excessive i2l conversions + - JDK-8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted + - JDK-8248568: compiler/c2/TestBit.java failed: test missing from stdout/stderr + - JDK-8248870: AARCH64: I2L/L2I conversions can be skipped for masked positive values + - JDK-8249142: java/awt/FontClass/CreateFont/DeleteFont.sh is unstable + - JDK-8249189: AARCH64: more L2I conversions can be skipped + - JDK-8249719: MethodHandle performance suffers from bad ResolvedMethodTable hash function + - JDK-8249875: GCC 10 warnings -Wtype-limits with JFR code + - JDK-8250635: MethodArityHistogram should use Compile_lock in favour of fancy checks + - JDK-8250876: Fix issues with cross-compile on macos + - JDK-8251031: Some vmTestbase/nsk/monitoring/RuntimeMXBean tests fail with hostnames starting from digits + - JDK-8251525: AARCH64: Faster Math.signum(fp) + - JDK-8252259: AArch64: Adjust default value of FLOATPRESSURE + - JDK-8252311: AArch64: save two words in itable lookup stub + - JDK-8252779: compiler/graalunit/HotspotTest.java failed after 8251525 + - JDK-8252883: AccessDeniedException caused by delayed file deletion on Windows + - JDK-8253167: ARM32 builds fail after JDK-8247910 + - JDK-8253572: [windows] CDS archive may fail to open with long file names + - JDK-8253923: C2 doesn't always run loop opts for compilations that include loops + - JDK-8253948: Memory leak in ImageFileReader + - JDK-8254631: Better support ALPN byte wire values in SunJSSE + - JDK-8254717: isAssignableFrom checks in KeyFactorySpi.engineGetKeySpec appear to be backwards + - JDK-8255086: Update the root locale display names + - JDK-8255625: AArch64: Implement Base64.encodeBlock accelerator/intrinsic + - JDK-8255763: C2: OSR miscompilation caused by invalid memory instruction placement + - JDK-8255992: JFR EventWriter does not use first string from StringPool with id 0 + - JDK-8256037: [TESTBUG] com/sun/jndi/dns/ConfigTests/PortUnreachable.java fails due to the hard coded threshold is small + - JDK-8256244: java/lang/ProcessHandle/PermissionTest.java fails with TestNG 7.1 + - JDK-8256287: [windows] add loop fuse to map_or_reserve_memory_aligned + - JDK-8256523: Streamline Java SHA2 implementation + - JDK-8257414: Drag n Drop target area is wrong on high DPI systems + - JDK-8257569: Failure observed with JfrVirtualMemory::initialize + - JDK-8257574: C2: "failed: parsing found no loops but there are some" assert failure + - JDK-8257580: Bump update version for OpenJDK: jdk-11.0.12 + - JDK-8257604: JNI_ArgumentPusherVaArg leaks valist + - JDK-8257621: JFR StringPool misses cached items across consecutive recordings + - JDK-8257796: [TESTBUG] TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on x86_32 + - JDK-8257822: C2 crashes with SIGFPE due to a division that floats above its zero check + - JDK-8257828: SafeFetch may crash if invoked in non-JavaThreads + - JDK-8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code + - JDK-8257858: [macOS]: Remove JNF dependency from libosxsecurity/KeystoreImpl.m + - JDK-8257860: [macOS]: Remove JNF dependency from libosxkrb5/SCDynamicStoreConfig.m + - JDK-8257988: Remove JNF dependency from libsaproc/MacosxDebuggerLocal.m + - JDK-8258414: OldObjectSample events too expensive + - JDK-8258505: [TESTBUG] TestDivZeroWithSplitIf.java fails due to missing UnlockDiagnosticVMOptions + - JDK-8258753: StartTlsResponse.close() hangs due to synchronization issues + - JDK-8259061: C2: assert(found) failed: memory-writing node is not placed in its original loop or an ancestor of it + - JDK-8259227: C2 crashes with SIGFPE due to a division that floats above its zero check + - JDK-8259232: Bad JNI lookup during printing + - JDK-8259276: C2: Empty expression stack when reexecuting tableswitch/lookupswitch instructions after deoptimization + - JDK-8259343: [macOS] Update JNI error handling in Cocoa code. + - JDK-8259585: Accessible actions do not work on mac os x + - JDK-8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros + - JDK-8259662: Don't wrap SocketExceptions into SSLExceptions in SSLSocketImpl + - JDK-8259710: Inlining trace leaks memory + - JDK-8259729: Missed JNFInstanceOf -> IsInstanceOf conversion + - JDK-8259777: Incorrect predication condition generated by ADLC + - JDK-8259786: initialize last parameter of getpwuid_r + - JDK-8259843: initialize dli_fname array before calling dll_address_to_library_name + - JDK-8259869: [macOS] Remove desktop module dependencies on JNF Reference APIs + - JDK-8259886: Improve SSL session cache performance and scalability + - JDK-8259983: do not use uninitialized expand_ms value in G1CollectedHeap::expand_heap_after_young_collection + - JDK-8260030: Improve stringStream buffer handling + - JDK-8260236: better init AnnotationCollector _contended_group + - JDK-8260255: C1: LoopInvariantCodeMotion constructor can leave some fields uninitialized + - JDK-8260284: C2: assert(_base == Int) failed: Not an Int + - JDK-8260380: Upgrade to LittleCMS 2.12 + - JDK-8260420: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint + - JDK-8260426: awt debug_mem.c DMem_AllocateBlock might leak memory + - JDK-8260432: allocateSpaceForGP in freetypeScaler.c might leak memory + - JDK-8260616: Removing remaining JNF dependencies in the java.desktop module + - JDK-8260653: Unreachable nodes keep speculative types alive + - JDK-8260707: java/lang/instrument/PremainClass/InheritAgent0100.java times out + - JDK-8260925: HttpsURLConnection does not work with other JSSE provider. + - JDK-8260926: Trace resource exhausted events unconditionally + - JDK-8261020: Wrong format parameter in create_emergency_chunk_path + - JDK-8261027: AArch64: Support for LSE atomics C++ HotSpot code + - JDK-8261167: print_process_memory_info add a close call after fopen + - JDK-8261170: Upgrade to freetype 2.10.4 + - JDK-8261198: [macOS] Incorrect JNI parameters in number conversion in A11Y code + - JDK-8261235: C1 compilation fails with assert(res->vreg_number() == index) failed: conversion check + - JDK-8261261: The version extra fields needs to be overridable in jib-profiles.js + - JDK-8261262: Kitchensink24HStress.java crashed with EXCEPTION_ACCESS_VIOLATION + - JDK-8261354: SIGSEGV at MethodIteratorHost + - JDK-8261355: No data buffering in SunPKCS11 Cipher encryption when the underlying mechanism has no padding + - JDK-8261397: try catch Method failing to work when dividing an integer by 0 + - JDK-8261422: Adjust problematic String.format calls in jdk/internal/util/Preconditions.java outOfBoundsMessage + - JDK-8261447: MethodInvocationCounters frequently run into overflow + - JDK-8261481: Cannot read Kerberos settings in dynamic store on macOS Big Sur + - JDK-8261505: Test test/hotspot/jtreg/gc/parallel/TestDynShrinkHeap.java killed by Linux OOM Killer + - JDK-8261601: free memory in early return in Java_sun_nio_ch_sctp_SctpChannelImpl_receive0 + - JDK-8261649: AArch64: Optimize LSE atomics in C++ code + - JDK-8261730: C2 compilation fails with assert(store->find_edge(load) != -1) failed: missing precedence edge + - JDK-8261752: Multiple GC test are missing memory requirements + - JDK-8261791: (sctp) handleSendFailed in SctpChannelImpl.c potential leaks + - JDK-8261812: C2 compilation fails with assert(!had_error) failed: bad dominance + - JDK-8261914: IfNode::fold_compares_helper faces non-canonicalized bool when running JRuby JSON workload + - JDK-8262093: java/util/concurrent/tck/JSR166TestCase.java failed "assert(false) failed: unexpected node" + - JDK-8262110: DST starts from incorrect time in 2038 + - JDK-8262121: [11u] Redo 8244287: JFR: Methods samples have line number 0 + - JDK-8262163: Extend settings printout in jcmd VM.metaspace + - JDK-8262295: C2: Out-of-Bounds Array Load from Clone Source + - JDK-8262298: G1BarrierSetC2::step_over_gc_barrier fails with assert "bad barrier shape" + - JDK-8262446: DragAndDrop hangs on Windows + - JDK-8262461: handle wcstombsdmp return value correctly in unix awt_InputMethod.c + - JDK-8262465: Very long compilation times and high memory consumption in C2 debug builds + - JDK-8262726: AArch64: C1 StubAssembler::call_RT can corrupt stack + - JDK-8262739: String inflation C2 intrinsic prevents insertion of anti-dependencies + - JDK-8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames() + - JDK-8262837: handle split_USE correctly + - JDK-8262900: ToolBasicTest fails to access HTTP server it starts + - JDK-8263260: [s390] Support latest hardware (z14 and z15) + - JDK-8263311: Watch registry changes for remote printers update instead of polling + - JDK-8263361: Incorrect arraycopy stub selected by C2 for SATB collectors + - JDK-8263404: RsaPrivateKeySpec is always recognized as RSAPrivateCrtKeySpec in RSAKeyFactory.engineGetKeySpec + - JDK-8263425: AArch64: two potential bugs in C1 LIRGenerator::generate_address() + - JDK-8263448: CTW: fatal error: meet not symmetric + - JDK-8263504: Some OutputMachOpcodes fields are uninitialized + - JDK-8263557: Possible NULL dereference in Arena::destruct_contents() + - JDK-8263558: Possible NULL dereference in fast path arena free if ZapResourceArea is true + - JDK-8263676: AArch64: one potential bug in C1 LIRGenerator::generate_address() + - JDK-8263729: [test] divert spurious output away from stream under test in ProcessBuilder Basic test + - JDK-8263846: Bad JNI lookup getFocusOwner in accessibility code on Mac OS X + - JDK-8264047: Duplicate global variable 'jvm' in libjavajpeg and libawt + - JDK-8264096: slowdebug jvm crashes when StrInflatedCopy match rule is not supported + - JDK-8264151: ciMethod::ensure_method_data() should return false is loading resulted in empty state + - JDK-8264173: [s390] Improve Hardware Feature Detection And Reporting + - JDK-8264190: Harden TLS interop tests + - JDK-8264223: CodeHeap::verify fails extra_hops assertion in fastdebug test + - JDK-8264328: Broken license in javax/swing/JComboBox/8072767/bug8072767.java + - JDK-8264360: Loop strip mining verification fails with "should be on the backedge" + - JDK-8264626: C1 should be able to inline excluded methods + - JDK-8264640: CMS ParScanClosure misses a barrier + - JDK-8264786: [macos] All Swing/AWT apps cause Allow Notifications prompt to appear when app is launched + - JDK-8264821: DirectIOTest fails on a system with large block size + - JDK-8264848: [macos] libjvm.dylib linker warning due to macOS version mismatch + - JDK-8264923: PNGImageWriter.write_zTXt throws Exception with a typo + - JDK-8264958: C2 compilation fails with assert "n is later than its clone" + - JDK-8265099: Revert backport to 11u of 8236859: WebSocket over authenticating proxy fails with NPE + - JDK-8265154: vinserti128 operand mix up for KNL platforms + - JDK-8265239: Shenandoah: Shenandoah heap region count could be off by 1 + - JDK-8265417: Backport of JDK-8249672 breaks Solaris x86 build + - JDK-8265421: java/lang/String/StringRepeat.java test is missing a memory requirement + - JDK-8265462: Handle multiple slots in the NSS Internal Module from SunPKCS11's Secmod + - JDK-8265537: x86 version string truncated after JDK-8249672 11u backport + - JDK-8265666: Enable AIX build platform to make external debug symbols + - JDK-8265677: CMS: CardTableBarrierSet::write_ref_array_work() lacks storestore barrier + - JDK-8265690: Use the latest Ubuntu base image version in Docker testing + - JDK-8265718: Build failure after JDK-8258414 11u backport + - JDK-8265750: Fatal error in safepoint.cpp after backport of 8258414 + - JDK-8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind + - JDK-8265938: C2's conditional move optimization does not handle top Phi + - JDK-8266220: keytool still prompt for store password on a password-less pkcs12 file if -storetype pkcs12 is specified + - JDK-8266293: Key protection using PBEWithMD5AndDES fails with "java.security.InvalidAlgorithmParameterException: Salt must be 8 bytes long" + - JDK-8266713: [AIX] Build failure after 11u backport of JDK-8247753 + - JDK-8266802: Shenandoah: Round up region size to page size unconditionally + - JDK-8266892: avoid maybe-uninitialized gcc warnings on linux s390x + - JDK-8266929: Unable to use algorithms from 3p providers + - JDK-8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash + - JDK-8267561: Shenandoah: Reference processing not properly setup for outside of cycle degenerated GC + - JDK-8267599: Revert the change to the default PKCS12 macAlgorithm and macIterationCount props for 11u/8u/7u + - JDK-8267641: [11u] 8227609 backport typo + - JDK-8267721: Enable sun/security/pkcs11 tests for Amazon Linux 2 AArch64 + - JDK-8268678: LetsEncryptCA.java test fails as Let’s Encrypt Authority X3 is retired + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8215293: Customizing PKCS12 keystore Generation +=================================================== +New system and security properties have been added to enable users to +customize the generation of PKCS #12 keystores. This includes +algorithms and parameters for key protection, certificate protection, +and MacData. The detailed explanation and possible values for these +properties can be found in the "PKCS12 KeyStore properties" section of +the `java.security` file. + +Also, support for the following SHA-2 based HmacPBE algorithms has +been added to the SunJCE provider: + +* HmacPBESHA224 +* HmacPBESHA256 +* HmacPBESHA384 +* HmacPBESHA512 +* HmacPBESHA512/224 +* HmacPBESHA512/256 + +JDK-8256902: Removed Root Certificates with 1024-bit Keys +========================================================= +The following root certificates with weak 1024-bit RSA public keys +have been removed from the `cacerts` keystore: + +Alias Name: thawtepremiumserverca [jdk] +Distinguished Name: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA + +Alias Name: verisignclass2g2ca [jdk] +Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US + +Alias Name: verisignclass3ca [jdk] +Distinguished Name: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US + +Alias Name: verisignclass3g2ca [jdk] +Distinguished Name: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US + +Alias Name: verisigntsaca [jdk] +Distinguished Name: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA + +JDK-8261361: Removed Telia Company's Sonera Class2 CA certificate +================================================================= + +The following root certificate have been removed from the cacerts truststore: + +Alias Name: soneraclass2ca +Distinguished Name: CN=Sonera Class2 CA, O=Sonera, C=FI + +JDK-8242069: Upgraded the Default PKCS12 Encryption and MAC Algorithms +====================================================================== +The default encryption and MAC algorithms used in a PKCS #12 keystore +have been updated. The new algorithms are based on AES-256 and SHA-256 +and are stronger than the old algorithms that were based on RC2, +DESede, and SHA-1. See the security properties starting with +`keystore.pkcs12` in the `java.security` file for detailed +information. + +For compatibility, a new system property named +`keystore.pkcs12.legacy` is defined that will revert the algorithms to +use the older, weaker algorithms. There is no value defined for this +property. + +security-libs/javax.net.ssl: + +JDK-8257548: Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN) Values +========================================================================================= +Certain TLS ALPN values couldn't be properly read or written by the +SunJSSE provider. This is due to the choice of Strings as the API +interface and the undocumented internal use of the UTF-8 Character Set +which converts characters larger than U+00007F (7-bit ASCII) into +multi-byte arrays that may not be expected by a peer. + +ALPN values are now represented using the network byte representation +expected by the peer, which should require no modification for +standard 7-bit ASCII-based character Strings. However, SunJSSE now +encodes/decodes String characters as 8-bit ISO_8859_1/LATIN-1 +characters. This means applications that used characters above +U+000007F that were previously encoded using UTF-8 may need to either +be modified to perform the UTF-8 conversion, or set the Java security +property `jdk.tls.alpnCharset` to "UTF-8" revert the behavior. + +See the updated guide at +https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/alpn.html +for more information. + +JDK-8244460: Support for certificate_authorities Extension +========================================================== +The "certificate_authorities" extension is an optional extension +introduced in TLS 1.3. It is used to indicate the certificate +authorities (CAs) that an endpoint supports and should be used by the +receiving endpoint to guide certificate selection. + +With this JDK release, the "certificate_authorities" extension is +supported for TLS 1.3 in both the client and the server sides. This +extension is always present for client certificate selection, while it +is optional for server certificate selection. + +Applications can enable this extension for server certificate +selection by setting the `jdk.tls.client.enableCAExtension` system +property to `true`. The default value of the property is `false`. + +Note that if the client trusts more CAs than the size limit of the +extension (less than 2^16 bytes), the extension is not enabled. Also, +some server implementations do not allow handshake messages to exceed +2^14 bytes. Consequently, there may be interoperability issues when +`jdk.tls.client.enableCAExtension` is set to `true` and the client +trusts more CAs than the server implementation limit. + +New in release OpenJDK 11.0.11 (2021-04-20): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11011 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.11.txt + +* Security fixes + - JDK-8244473: Contextualize registration for JNDI + - JDK-8244543: Enhanced handling of abstract classes + - JDK-8249906, CVE-2021-2163: Enhance opening JARs + - JDK-8250568, CVE-2021-2161: Less ambiguous processing + - JDK-8253799: Make lists of normal filenames + - JDK-8257001: Improve Http Client Support +* Other changes + - JDK-7107012: sun.jvm.hotspot.code.CompressedReadStream readDouble() conversion to long mishandled + - JDK-7146776: deadlock between URLStreamHandler.getHostAddress and file.Handler.openconnection + - JDK-8086003: Test fails on OSX with java.lang.RuntimeException 'Narrow klass base: 0x0000000000000000, Narrow klass shift: 3' missing + - JDK-8168869: jdeps: localized messages don't use proper line breaks + - JDK-8180837: SunPKCS11-NSS tests failing with CKR_ATTRIBUTE_READ_ONLY and CKR_MECHANISM_PARAM_INVALID + - JDK-8202343: Disable TLS 1.0 and 1.1 + - JDK-8205992: jhsdb cannot attach to Java processes running in Docker containers + - JDK-8209193: Fix aarch64-linux compilation after -Wreorder changes + - JDK-8210413: AArch64: Optimize div/rem by constant in C1 + - JDK-8210578: AArch64: Invalid encoding for fmlsvs instruction + - JDK-8211051: jdeps usage of --dot-output doesn't provide valid output for modular jar + - JDK-8211057: Gensrc step CompileProperties generates unstable CompilerProperties output + - JDK-8211150: G1 Full GC not purging code root memory and hence causing memory leak + - JDK-8211825: ModuleLayer.defineModulesWithXXX does not setup delegation when module reads automatic module + - JDK-8212043: Add floating-point Math.min/max intrinsics + - JDK-8212218: [TESTBUG] runtime/ErrorHandling/TestHeapDumpOnOutOfMemoryErrorInMetaspace.java timed out + - JDK-8213116: javax/swing/JComboBox/WindowsComboBoxSize/WindowsComboBoxSizeTest.java fails in Windows + - JDK-8213909: jdeps --print-module-deps should report missing dependences + - JDK-8214180: Need better granularity for sleeping + - JDK-8214223: tools/jdeps/listdeps/ListModuleDeps.java failed due to missing Lib2 file + - JDK-8214230: Classes generated by SystemModulesPlugin.java are not reproducable + - JDK-8214741: docs/index.html has no title or copyright + - JDK-8215687: [Graal] unit test CheckGraalIntrinsics failed after 8212043 + - JDK-8217848: [Graal] vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted003/TestDescription.java fails + - JDK-8218482: sun/security/krb5/auto/ReplayCachePrecise.java failed - no KrbException thrown + - JDK-8218550: Add test omitted from JDK-8212043 + - JDK-8221584: SIGSEGV in os::PlatformEvent::unpark() in JvmtiRawMonitor::raw_exit while posting method exit event + - JDK-8221995: AARCH64: problems with CAS instructions encoding + - JDK-8222518: Remove unnecessary caching of Parker object in java.lang.Thread + - JDK-8222785: aarch64: add necessary masking for immediate shift counts + - JDK-8223186: HotSpot compile warnings from GCC 9 + - JDK-8225773: jdeps --check produces NPE if there are missing module dependences + - JDK-8225805: Java Access Bridge does not close the logger + - JDK-8226810: Failed to launch JVM because of NullPointerException occured on System.props + - JDK-8229396: jdeps ignores multi-release when generate-module-info used on command line + - JDK-8229474: Shenandoah: Cleanup CM::update_roots() + - JDK-8232225: Rework the fix for JDK-8071483 + - JDK-8232905: JFR fails with assertion: assert(t->unflushed_size() == 0) failed: invariant + - JDK-8233164: C2 fails with assert(phase->C->get_alias_index(t) == phase->C->get_alias_index(t_adr)) failed: correct memory chain + - JDK-8233910: java/awt/ColorClass/AlphaColorTest.java is failing intermittently in nightly lnux-x64 system + - JDK-8233912: aarch64: minor improvements of atomic operations + - JDK-8234508: VM_HeapWalkOperation::iterate_over_object reads non-strong fields with an on-strong load barrier + - JDK-8234742: Improve handshake logging + - JDK-8234796: Refactor Handshake::execute to take a more complex type than ThreadClosure + - JDK-8235324: Dying objects are published from users of CollectedHeap::object_iterate + - JDK-8235351: Lookup::unreflect should bind with the original caller independent of Method's accessible flag + - JDK-8237369: Shenandoah: failed vmTestbase/nsk/jvmti/AttachOnDemand/attach021/TestDescription.java test + - JDK-8237392: Shenandoah: Remove unreliable assertion + - JDK-8237483: AArch64 C1 OopMap inserted twice fatal error + - JDK-8237495: Java MIDI fails with a dereferenced memory error when asked to send a raw 0xF7 + - JDK-8239355: (dc) Initial value of SO_SNDBUF should allow sending large datagrams (macOS) + - JDK-8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1 + - JDK-8240704: CheckHandles.java failed "AssertionError: Handle use increased by more than 10 percent." + - JDK-8240751: Shenandoah: fold ShenandoahTracer definition + - JDK-8240795: [REDO] 8238384 CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found" + - JDK-8241598: Upgrade JLine to 3.14.0 + - JDK-8241649: Optimize Character.toString + - JDK-8241770: Module xxxAnnotation() methods throw NCDFE if module-info.class found as resource in unnamed module + - JDK-8241911: AArch64: Fix a potential register clash issue in reduce_add2I + - JDK-8242030: Wrong package declarations in jline classes after JDK-8241598 + - JDK-8242565: Policy initialization issues when the denyAfter constraint is enabled + - JDK-8243618: compiler/rtm/cli tests can be run w/o WhiteBox + - JDK-8243670: Unexpected test result caused by C2 MergeMemNode::Ideal + - JDK-8244088: [Regression] Switch of Gnome theme ends up in deadlocked UI + - JDK-8244154: Update SunPKCS11 provider with PKCS11 v3.0 header files + - JDK-8244340: Handshake processing thread lacks yielding + - JDK-8244573: java.lang.ArrayIndexOutOfBoundsException thrown for malformed class file + - JDK-8244683: A TSA server used by tests + - JDK-8245005: javax/net/ssl/compatibility/BasicConnectTest.java failed with No enum constant + - JDK-8245026: PsAdaptiveSizePolicy::_old_gen_policy_is_ready is unused + - JDK-8245283: JFR: Can't handle constant dynamic used by Jacoco agent + - JDK-8245512: CRC32 optimization using AVX512 instructions + - JDK-8245527: LDAP Channel Binding support for Java GSS/Kerberos + - JDK-8246707: (sc) SocketChannel.read/write throws AsynchronousCloseException on closed channel + - JDK-8246709: sun/security/tools/jarsigner/TsacertOptionTest.java compilation failed after JDK-8244683 + - JDK-8247200: assert((unsigned)fpargs < 32) + - JDK-8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big for insn. + - JDK-8248336: AArch64: C2: offset overflow in BoxLockNode::emit + - JDK-8248865: Document JNDI/LDAP timeout properties + - JDK-8248901: Signed immediate support in .../share/assembler.hpp is broken. + - JDK-8249543: Force DirectBufferAllocTest to run with -ExplicitGCInvokesConcurrent + - JDK-8249588: libwindowsaccessbridge issues on 64bit Windows + - JDK-8249749: modify a primitive array through a stream and a for cycle causes jre crash + - JDK-8249787: Make TestGCLocker more resilient with concurrent GCs + - JDK-8249867: xml declaration is not followed by a newline + - JDK-8250911: [windows] os::pd_map_memory() error detection broken + - JDK-8251255: [linux] Add process-memory information to hs-err and VM.info + - JDK-8251359: Shenandoah: filter null oops before calling enqueue/SATB barrier + - JDK-8251925: C2: RenaissanceStressTest fails with assert(!had_error): bad dominance + - JDK-8251944: Add Shenandoah test config to compiler/gcbarriers/UnsafeIntrinsicsTest.java + - JDK-8251992: VM crashed running TestComplexAddrExpr.java test with -XX:UseAVX=X + - JDK-8253220: Epsilon: clean up unused code/declarations + - JDK-8253274: The CycleDMImagetest brokes the system + - JDK-8253353: Crash in C2: guarantee(n != NULL) failed: No Node + - JDK-8253368: TLS connection always receives close_notify exception + - JDK-8255368: Math.exp() gives wrong result for large values on x86 32-bit platforms + - JDK-8255401: Shenandoah: Allow oldval and newval registers to overlap in cmpxchg_oop() + - JDK-8253404: C2: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded limit + - JDK-8253409: Double-rounding possibility in float fma + - JDK-8253476: TestUseContainerSupport.java fails on some Linux kernels w/o swap limit capabilities + - JDK-8253524: C2: Refactor code that clones predicates during loop unswitching + - JDK-8253644: C2: assert(skeleton_predicate_has_opaque(iff)) failed: unexpected + - JDK-8253681: closed java/awt/dnd/MouseEventAfterStartDragTest/MouseEventAfterStartDragTest.html test failed + - JDK-8253702: BigSur version number reported as 10.16, should be 11.nn + - JDK-8253756: C2 CompilerThread0 crash in Node::add_req(Node*) + - JDK-8254104: MethodCounters must exist before nmethod is installed + - JDK-8254734: "dead loop detected" assert failure with patch from 8223051 + - JDK-8254748: Bad Copyright header format after JDK-8212218 + - JDK-8254799: runtime/ErrorHandling/TestHeapDumpOnOutOfMemoryError.java fails with release VMs + - JDK-8255058: C1: assert(is_virtual()) failed: type check + - JDK-8255351: Add detection for Graviton 2 CPUs + - JDK-8255387: Japanese characters were printed upside down on AIX + - JDK-8255479: [aarch64] assert(src->section_index_of(target) == CodeBuffer::SECT_NONE) failed: sanity + - JDK-8255544: Create a checked cast + - JDK-8255559: Leak File Descriptors Because of ResolverLocalFilesystem#engineResolveURI() + - JDK-8255681: print callstack in error case in runAWTLoopWithApp + - JDK-8255734: VM should ignore SIGXFSZ on ppc64, s390 too + - JDK-8255742: PrintInlining as compiler directive doesn't print virtual calls + - JDK-8255845: Memory leak in imageFile.cpp + - JDK-8255880: UI of Swing components is not redrawn after their internal state changed + - JDK-8255908: ExceptionInInitializerError due to UncheckedIOException while initializing cgroupv1 subsystem + - JDK-8256025: AArch64: MachCallRuntimeNode::ret_addr_offset() is incorrect for stub calls + - JDK-8256056: Deoptimization stub doesn't save vector registers on x86 + - JDK-8256061: RegisterSaver::save_live_registers() omits upper halves of ZMM0-15 registers + - JDK-8256187: [TEST_BUG] Automate bug4275046.java test + - JDK-8256220: C1: x86_32 fails with -XX:UseSSE=1 after JDK-8210764 due to mishandled lir_neg + - JDK-8256258: some missing NULL checks or asserts after CodeCache::find_blob_unsafe + - JDK-8256264: Printed GlyphVector outline with low DPI has bad quality on Windows + - JDK-8256290: javac/lambda/T8031967.java fails with StackOverflowError on x86_32 + - JDK-8256359: AArch64: runtime/ReservedStack/ReservedStackTestCompiler.java fails + - JDK-8256387: Unexpected result if patching an entire instruction on AArch64 + - JDK-8256421: Add 2 HARICA roots to cacerts truststore + - JDK-8256488: [aarch64] Use ldpq/stpq instead of ld4/st4 for small copies in StubGenerator::copy_memory + - JDK-8256489: Make gtest for long path names on Windows more resilient in the presence of virus scanners + - JDK-8256501: libTestMainKeyWindow fails to build with Xcode 12.2 + - JDK-8256633: Fix product build on Windows+Arm64 + - JDK-8256682: JDK-8202343 is incomplete + - JDK-8256751: Incremental rebuild with precompiled header fails when touching a header file + - JDK-8256757: Incorrect MachCallRuntimeNode::ret_addr_offset() for CallLeafNoFP on x86_32 + - JDK-8256806: Shenandoah: optimize shenandoah/jni/TestPinnedGarbage.java test + - JDK-8256807: C2: Not marking stores correctly as mismatched in string opts + - JDK-8256810: Incremental rebuild broken on Macosx + - JDK-8256818: SSLSocket that is never bound or connected leaks socket resources + - JDK-8256888: Client manual test problem list update + - JDK-8257083: Security infra test failures caused by JDK-8202343 + - JDK-8257408: Bump update version for OpenJDK: jdk-11.0.11 + - JDK-8257423: [PPC64] Support -XX:-UseInlineCaches + - JDK-8257436: [aarch64] Regressions in ArrayCopyUnalignedDst.testByte/testChar for 65-78 bytes when UseSIMDForMemoryOps is on + - JDK-8257513: C2: assert((constant_addr - _masm.code()->consts()->start()) == con.offset()) + - JDK-8257547: Handle multiple prereqs on the same line in deps files + - JDK-8257561: Some code is not vectorized after 8251925 and 8250607 + - JDK-8257565: epsilonBarrierSet.hpp should not include barrierSetAssembler + - JDK-8257575: C2: "failed: only phis" assert failure in loop strip mining verification + - JDK-8257594: C2 compiled checkcast of non-null object triggers endless deoptimization/recompilation cycle + - JDK-8257633: Missing -mmacosx-version-min=X flag when linking libjvm + - JDK-8257670: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java reports leaks + - JDK-8257707: Fix incorrect format string in Http1HeaderParser + - JDK-8257746: Regression introduced with JDK-8250984 - memory might be null in some machines + - JDK-8257798: [PPC64] undefined reference to Klass::vtable_start_offset() + - JDK-8257884: Re-enable sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java as automatic test + - JDK-8257910: [JVMCI] Set exception_seen accordingly in the runtime. + - JDK-8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks after JDK-8257884 + - JDK-8257999: Parallel GC crash in gc/parallel/TestDynShrinkHeap.java: new region is not in covered_region + - JDK-8258077: Using -Xcheck:jni can lead to a double-free after JDK-8193234 + - JDK-8258247: Couple of issues in fix for JDK-8249906 + - JDK-8258373: Update the text handling in the JPasswordField + - JDK-8258396: SIGILL in jdk.jfr.internal.PlatformRecorder.rotateDisk() + - JDK-8258419: RSA cipher buffer cleanup + - JDK-8258471: "search codecache" clhsdb command does not work + - JDK-8258534: Epsilon: clean up unused includes + - JDK-8258805: Japanese characters not entered by mouse click on Windows 10 + - JDK-8258833: Cancel multi-part cipher operations in SunPKCS11 after failures + - JDK-8258836: JNI local refs exceed capacity getDiagnosticCommandInfo + - JDK-8258884: [TEST_BUG] Convert applet-based test open/test/jdk/javax/swing/JMenuItem/8031573/bug8031573.java to a regular java test + - JDK-8259007: This test printed a blank page + - JDK-8259049: Uninitialized variable after JDK-8257513 + - JDK-8259451: Zero: skip serviceability/sa tests, set vm.hasSA to false + - JDK-8259580: Shenandoah: uninitialized label in VerifyThreadGCState + - JDK-8259231: Epsilon: improve performance under contention during virtual space expansion + - JDK-8259271: gc/parallel/TestDynShrinkHeap.java still fails "assert(covered_region.contains(new_memregion)) failed: new region is not in covered_region" + - JDK-8259312: VerifyCACerts.java fails as soneraclass2ca cert will expire in 90 days + - JDK-8259319: Illegal package access when SunPKCS11 requires SunJCE's classes + - JDK-8259339: AllocateUninitializedArray C2 intrinsic fails with void.class input + - JDK-8259428: AlgorithmId.getEncodedParams() should return copy + - JDK-8259446: runtime/jni/checked/TestCheckedReleaseArrayElements.java fails with stderr not empty + - JDK-8259949: x86 32-bit build fails when -fcf-protection is passed in the compiler flags + - JDK-8259619: C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect + - JDK-8259633: compiler/graalunit/CoreTest.java fails with NPE after JDK-8244543 + - JDK-8259706: C2 compilation fails with assert(vtable_index == Method::invalid_vtable_index) failed: correct sentinel value + - JDK-8259707: LDAP channel binding does not work with StartTLS extension + - JDK-8259773: Incorrect encoding of AVX-512 kmovq instruction + - JDK-8259849: Shenandoah: Rename store-val to IU-barrier + - JDK-8259954: gc/shenandoah/mxbeans tests fail with -Xcomp + - JDK-8260029: aarch64: fix typo in verify_oop_array + - JDK-8260308: Update LogCompilation junit to 4.13.1 + - JDK-8260338: Some fields in HaltNode is not cloned + - JDK-8260349: Cannot programmatically retrieve Metaspace max set via JAVA_TOOL_OPTIONS + - JDK-8260356: (tz) Upgrade time-zone data to tzdata2021a + - JDK-8260378: [TESTBUG] DcmdMBeanTestCheckJni.java reports false positive + - JDK-8260497: Shenandoah: Improve SATB flushing + - JDK-8260502: [s390] NativeMovRegMem::verify() fails because it's too strict + - JDK-8260632: Build failures after JDK-8253353 + - JDK-8260704: ParallelGC: oldgen expansion needs release-store for _end + - JDK-8261022: Fix incorrect result of Math.abs() with char type + - JDK-8261089: [TESTBUG] native library of test TestCheckedReleaseCriticalArray.java fails to compile with gcc 4.x + - JDK-8261183: Follow on to Make lists of normal filenames + - JDK-8261209: isStandalone property: remove dependency on pretty-print + - JDK-8261231: Windows IME was disabled after DnD operation + - JDK-8261251: Shenandoah: Use object size for full GC humongous compaction + - JDK-8261310: PPC64 Zero build fails with 'VMError::controlled_crash(int)::FunctionDescriptor functionDescriptor' has incomplete type and cannot be defined + - JDK-8261334: NMT: tuning statistic shows incorrect hash distribution + - JDK-8261413: Shenandoah: Disable class-unloading in I-U mode + - JDK-8261522: [PPC64] AES intrinsics write beyond the destination array + - JDK-8261534: Test sun/security/pkcs11/KeyAgreement/IllegalPackageAccess.java fails on platforms where no nsslib artifacts are defined + - JDK-8261585: Restore HandleArea used in Deoptimization::uncommon_trap + - JDK-8261753: Test java/lang/System/OsVersionTest.java still failing on BigSur patch versions after JDK-8253702 + - JDK-8261829: Exclude tools/jlink/JLinkReproducibleTest.java in 11u + - JDK-8261912: Code IfNode::fold_compares_helper more defensively + - JDK-8261920: [AIX] jshell command throws java.io.IOError on non English locales + - JDK-8262018: Wrong format in SAP copyright header of OsVersionTest + - JDK-8263069: Exclude some failing tests from security/infra/java/security/cert/CertPathValidator + +Notes on individual issues: +=========================== + +core-libs/javax.naming: + +JDK-8258824: LDAP Channel Binding Support for Java GSS/Kerberos +=============================================================== +A new JNDI environment property "com.sun.jndi.ldap.tls.cbtype" has +been added to enable TLS Channel Binding data in LDAP authentication +over SSL/TLS protocol to the Windows AD server. The only valid value +at present is "tls-server-end-point", where channel binding data is +created on the base of the TLS server certificate. See RFC-5929 [0] +and the module description of the `java.naming` module for further +details. + +[0] RFC-5929 "Channel Bindings for TLS": https://www.ietf.org/rfc/rfc5929.txt + +security-libs/java.security: + +JDK-8260597: Added 2 HARICA Root CA Certificates +================================================ +The following root certificates have been added to the cacerts truststore: + +Alias Name: haricarootca2015 +Distinguished Name: CN=Hellenic Academic and Research Institutions RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR + +Alias Name: haricaeccrootca2015 +Distinguished Name: CN=Hellenic Academic and Research Institutions ECC RootCA 2015, O=Hellenic Academic and Research Institutions Cert. Authority, L=Athens, C=GR + +security-libs/javax.net.ssl: + +JDK-8256490: Disable TLS 1.0 and 1.1 +==================================== +TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer +considered secure and have been superseded by more secure and modern +versions (TLS 1.2 and 1.3). + +These versions have now been disabled by default. If you encounter +issues, you can, at your own risk, re-enable the versions by removing +"TLSv1" and/or "TLSv1.1" from the `jdk.tls.disabledAlgorithms` +security property in the `java.security` configuration file. + +tools: + +JDK-8214213: jdeps --print-module-deps Reports Transitive Dependencies +====================================================================== +`jdeps --print-module-deps`, `--list-deps`, and `--list-reduce-deps` +options have been enhanced as follows. + +1. By default, they perform transitive module dependence analysis on +libraries on the class path and module path, both directly and +indirectly, as required by the given input JAR files or +classes. Previously, they only reported the modules required by the +given input JAR files or classes. The `--no-recursive` option can be +used to request non-transitive dependence analysis. + +2. By default, they flag any missing dependency, i.e. not found from +class path and module path, as an error. The `--ignore-missing-deps` +option can be used to suppress missing dependence errors. Note that a +custom image is created with the list of modules output by jdeps when +using the `--ignore-missing-deps` option for a non-modular +application. Such an application, running on the custom image, might +fail at runtime when missing dependence errors are suppressed. + +xml/jaxp: + +JDK-8249867 XML declaration is not followed by a newline +======================================================== + +The DOM Load and Save `LSSerializer` does not have an explicit control +for whether or not the XML Declaration ends with a newline. In this +release, a JDK implementation specific property +`http://www.oracle.com/xml/jaxp/properties/isStandalone` and +corresponding System property `jdk.xml.isStandalone` are added to +control the addition of a newline and act independently without +having to set the pretty-print property. This property can be used to +reverse the incompatible change introduced in Java SE 7 Update 4 with +an update of Xalan 2.7.1 where a newline is omitted when pretty-print +is required. + +For details, please refer to the bug report and the java.xml module-summary. + +Usage: + +// to set the property, get an instance of LSSerializer and set it along with pretty-print +LSSerializer ser = impl.createLSSerializer(); +ser.getDomConfig().setParameter("format-pretty-print", true); +ser.getDomConfig().setParameter("http://www.oracle.com/xml/jaxp/properties/isStandalone", true); + +// to use the System property, set it before initializing a LSSerializer +System.setProperty("jdk.xml.isStandalone", “trueâ€); + +// to clear the property, place the line anywhere after the LSSerializer is initialized +System.clearProperty("jdk.xml.isStandalone"); + +New in release OpenJDK 11.0.10 (2021-01-19): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11010 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.10.txt + +* Security fixes + - JDK-8247619: Improve Direct Buffering of Characters +* Other changes + - JDK-6722928: Support SSPI as a native GSS-API provider + - JDK-7185258: [macosx] Deadlock in SunToolKit.realSync() + - JDK-8152332: [macosx] JFileChooser cannot be serialized on Mac OS X + - JDK-8161684: [testconf] Add VerifyOops' testing into compiler tiers + - JDK-8171279: Support X25519 and X448 in TLS + - JDK-8173361: various crashes in JvmtiExport::post_compiled_method_load + - JDK-8173658: JvmtiExport::post_class_unload() is broken for non-JavaThread initiators + - JDK-8191006: hsdis disassembler plugin does not compile with binutils 2.29+ + - JDK-8197981: Missing return statement in __sync_val_compare_and_swap_8 + - JDK-8198334: java/awt/FileDialog/8003399/bug8003399.java fails in headless mode + - JDK-8200151: Add 8 JNDI tests to com/sun/jndi/dns/ConfigTests/ + - JDK-8208279: Add 8 JNDI tests to com/sun/jndi/dns/EnvTests/ + - JDK-8208483: Add 5 JNDI tests to com/sun/jndi/dns/FactoryTests/ + - JDK-8208542: Add 4 JNDI tests to com/sun/jndi/dns/ListTests/ + - JDK-8208665: Amend cross-compilation docs with qemu-debootstrap recipe + - JDK-8210088: ProblemList gc/epsilon/TestMemoryMXBeans.java + - JDK-8210339: Add 10 JNDI tests to com/sun/jndi/dns/FedTests/ + - JDK-8211450: UndetVar::dup is not copying the kind field to the duplicated instance + - JDK-8212160: JVMTI agent crashes with "assert(_value != 0LL) failed: resolving NULL _value" + - JDK-8212226: SurfaceManager throws "Invalid Image variant" for MultiResolutionImage (Windows) + - JDK-8213400: Support choosing group name in keytool keypair generation + - JDK-8213535: Windows HiDPI html lightweight tooltips are truncated + - JDK-8213698: Improve devkit creation and add support for linux/ppc64/ppc64le/s390x + - JDK-8214025: assert(t->singleton()) failed: must be a constant when ScavengeRootsInCode < 2 + - JDK-8214242: compiler/arguments/TestScavengeRootsInCode.java fails because of missing UnlockDiagnosticVMOptions + - JDK-8214787: Zero builds fail with "undefined JavaThread::thread_state()" + - JDK-8215583: Exclude runtime/handshake/HandshakeWalkSuspendExitTest.java + - JDK-8216012: Infinite loop in RSA KeyPairGenerator + - JDK-8216324: GetClassMethods is confused by the presence of default methods in super interfaces + - JDK-8217429: WebSocket over authenticating proxy fails to send Upgrade headers + - JDK-8217976: test/jdk/java/net/httpclient/websocket/WebSocketProxyTest.java fails intermittently + - JDK-8218021: Have jarsigner preserve posix permission attributes + - JDK-8218287: jshell tool: input behavior unstable after 12-ea+24 on Windows + - JDK-8218851: JVM crash in custom classloader stress test, JDK 12 & 13 + - JDK-8220420: Cleanup c1_LinearScan + - JDK-8222072: JVMTI GenerateEvents() sends CompiledMethodLoad events to wrong jvmtiEnv + - JDK-8222286: Fix for JDK-8213419 is broken on s390 + - JDK-8222527: HttpClient doesn't send HOST header when tunelling HTTP/1.1 through http proxy + - JDK-8222533: jtreg test jdk/internal/platform/cgroup/TestCgroupMetrics.java fails on SLES12.3 linux ppc64le machine + - JDK-8224506: [TESTBUG] TestDockerMemoryMetrics.java fails with exitValue = 137 + - JDK-8224555: vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java failed + - JDK-8224650: Add tests to support X25519 and X448 in TLS + - JDK-8225072: Add LuxTrust certificate that is expiring in March 2021 to list of allowed but expired certs + - JDK-8225329: -XX:+PrintBiasedLockingStatistics causes crash during initialization on Windows platforms + - JDK-8225687: Newly added sspi.cpp in JDK-6722928 still contains some small errors + - JDK-8227006: [linux] Runtime.availableProcessors execution time increased by factor of 100 + - JDK-8227275: Within native OOM error handling, assertions may hang the process + - JDK-8227647: [Graal] Test8009761.java fails due to "RuntimeException: static java.lang.Object compiler.uncommontrap.Test8009761.m3(boolean,boolean) not compiled" + - JDK-8229495: SIGILL in C2 generated OSR compilation + - JDK-8230910: libsspi_bridge does not build on Windows 32bit + - JDK-8232114: JVM crashed at imjpapi.dll in native code + - JDK-8234147: Avoid looking up standard charsets in core libraries + - JDK-8234393: [macos] printing ignores printer tray + - JDK-8234863: Increase default value of MaxInlineLevel + - JDK-8235218: Minimal VM is broken after JDK-8173361 + - JDK-8235456: Minimal VM is broken after JDK-8212160 + - JDK-8235829: graal crashes with Zombie.java test + - JDK-8236124: Minimal VM slowdebug build failed after JDK-8212160 + - JDK-8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding + - JDK-8236944: The legVecZ operand should be limited to zmm0-zmm15 registers + - JDK-8237186: Fix typo in copyright header of java/io/Reader/TransferTo.java + - JDK-8237499: JFR: Include stack trace in the ThreadStart event + - JDK-8237512: AArch64: aarch64TestHook leaks a BufferBlob + - JDK-8237524: AArch64: String.compareTo() may return incorrect result + - JDK-8237950: C2 compilation fails with "Live Node limit exceeded limit" during ConvI2L::Ideal optimization + - JDK-8238579: HttpsURLConnection drops the timeout and hangs forever in read + - JDK-8239105: Add exception for expiring Digicert root certificates to VerifyCACerts test + - JDK-8239477: jdk/jfr/jcmd/TestJcmdStartStopDefault.java fails -XX:+VerifyOops with "verify_oop: rsi: broken oop" + - JDK-8239497: SEGV in EdgeUtils::field_name_symbol(Edge const&) + - JDK-8239886: Minimal VM build fails after JDK-8237499 + - JDK-8240633: Memory leaks in the implementations of FileChooserUI + - JDK-8240690: Race condition between EDT and BasicDirectoryModel.FilesLoader.run0() + - JDK-8241234: Unify monitor enter/exit runtime entries. + - JDK-8241311: Move some charset mapping tests from closed to open + - JDK-8241797: Add some tests to the problem list + - JDK-8242029: AArch64: skip G1 array copy pre-barrier if marking not active + - JDK-8242335: Additional Tests for RSASSA-PSS + - JDK-8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker + - JDK-8242614: cleanup duplicated test ldap server in some com/sun/jndi/ldap/ tests + - JDK-8242846: Bring back test/jdk/tools/jlink/plugins/OrderResourcesPluginTest.java + - JDK-8243114: Implement montgomery{Multiply,Square}intrinsics on Windows + - JDK-8243290: Improve diagnostic messages for class verification and redefinition failures + - JDK-8243488: Add tests for set/get SendBufferSize and getReceiveBufferSize in DatagramSocket + - JDK-8243549: sun/security/ssl/CipherSuite/NamedGroupsWithCipherSuite.java failed with Unsupported signature algorithm: DSA + - JDK-8243617: compiler/onSpinWait/TestOnSpinWaitC1.java test uses wrong class + - JDK-8243619: compiler/codecache/CheckSegmentedCodeCache.java test misses -version + - JDK-8244142: some hotspot/runtime tests don't check exit code of forked JVM + - JDK-8244278: Excessive code cache flushes and sweeps + - JDK-8244282: test/hotspot/jtreg/compiler/intrinsics/Test8237524.java fails with --illegal-access=deny + - JDK-8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11 + - JDK-8244819: hsdis does not compile with binutils 2.34+ + - JDK-8245051: c1 is broken if it is compiled by gcc without -fno-lifetime-dse + - JDK-8245168: jlink should not be treated as a "small" tool + - JDK-8245400: Upgrade to LittleCMS 2.11 + - JDK-8246381: VM crashes with "Current BasicObjectLock* below than low_mark" + - JDK-8246434: Threads::print_on_error assumes that the heap has been set up + - JDK-8246648: issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after 8242480 + - JDK-8247201: Print potential pointer value of readable stack memory in hs_err file + - JDK-8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined() + - JDK-8247867: Upgrade to freetype 2.10.2 + - JDK-8248190: Enable Power10 system and implement new byte-reverse instructions + - JDK-8248226: TestCloneAccessStressGCM fails with -XX:-ReduceBulkZeroing + - JDK-8248347: windows build broken by JDK-8243114 + - JDK-8248532: Every time I change keyboard language at my MacBook, Java crashes + - JDK-8248552: C2 crashes with SIGFPE due to division by zero + - JDK-8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled + - JDK-8248745: Add jarsigner and keytool tests for restricted algorithms + - JDK-8248791: sun/util/resources/cldr/TimeZoneNamesTest.java fails with -XX:-ReduceInitialCardMarks -XX:-ReduceBulkZeroing + - JDK-8248845: AArch64: stack corruption after spilling vector register + - JDK-8249176: Update GlobalSignR6CA test certificates + - JDK-8249183: JVM crash in "AwtFrame::WmSize" method + - JDK-8249192: MonitorInfo stores raw oops across safepoints + - JDK-8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed + - JDK-8249603: C1: assert(has_error == false) failed: register allocation invalid + - JDK-8249605: C2: assert(no_dead_loop) failed: dead loop detected + - JDK-8249607: C2: assert(!had_error) failed: bad dominance + - JDK-8249608: Vector register used by C2 compiled method corrupted at safepoint + - JDK-8249672: Include microcode revision in features_string on x86 + - JDK-8249748: gtest silently ignores bad jvm arguments + - JDK-8249821: Separate libharfbuzz from libfontmanager + - JDK-8250598: Hyper-V is detected in spite of running on host OS + - JDK-8250605: Linux x86_32 builds fail after JDK-8249821 + - JDK-8250636: iso8601_time returns incorrect offset part on MacOS + - JDK-8250665: Wrong translation for the month name of May in ar_JO,LB,SY + - JDK-8250772: Test com/sun/jndi/ldap/NamingExceptionMessageTest.java fails intermittently with javax.naming.ServiceUnavailableException + - JDK-8250825: C2 crashes with assert(field != __null) failed: missing field + - JDK-8250894: Provide a configure option to build and run against the platform libharfbuzz + - JDK-8250928: JFR: Improve hash algorithm for stack traces + - JDK-8250968: Symlinks attributes not preserved when using jarsigner on zip files + - JDK-8250984: Memory Docker tests fail on some Linux kernels w/o cgroupv1 swap limit capabilities + - JDK-8251118: BiasedLocking::preserve_marks should not have a HandleMark + - JDK-8251189: com/sun/jndi/ldap/LdapDnsProviderTest.java failed due to timeout + - JDK-8251257: NMT: jcmd VM.native_memory scale=1 crashes target VM + - JDK-8251365: Build failure on AIX after 8250636 + - JDK-8251397: NPE on ClassValue.ClassValueMap.cacheArray + - JDK-8251456: [TESTBUG] compiler/vectorization/TestVectorsNotSavedAtSafepoint.java failed OutOfMemoryError + - JDK-8251458: Parse::do_lookupswitch fails with "assert(_cnt >= 0) failed" + - JDK-8251535: Partial peeling at unsigned test adds incorrect loop exit check + - JDK-8251949: ZGC: Set explicit heap size for compiler/gcbarriers tests + - JDK-8252090: JFR: StreamWriterHost::write_unbuffered() stucks in an infinite loop OpenJDK (build 13.0.1+9) + - JDK-8252415: Bump update version for OpenJDK: jdk-11.0.10 + - JDK-8252470: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java fails on Windows + - JDK-8252497: Incorrect numeric currency code for ROL + - JDK-8252660: Shenandoah: support manageable SoftMaxHeapSize option + - JDK-8252679: Two windows specific FileDIalog tests may fail on some Windows_Server_2016_Standard + - JDK-8252696: Loop unswitching may cause out of bound array load to be executed + - JDK-8252754: Hash code calculation of JfrStackTrace is inconsistent + - JDK-8253219: Epsilon: clean up unnecessary includes + - JDK-8253224: Shenandoah: ShenandoahStrDedupQueue destructor calls virtual num_queues() + - JDK-8253226: Shenandoah: remove unimplemented ShenandoahStrDedupQueue::verify + - JDK-8253269: The CheckCommonColors test should provide more info on failure + - JDK-8253284: Zero OrderAccess barrier mappings are incorrect + - JDK-8253375: OSX build fails with Xcode 12.0 (12A7209) + - JDK-8253778: ShenandoahSafepoint::is_at_shenandoah_safepoint should not access VMThread state from other threads + - JDK-8253791: Issue with useAppleColor check in CSystemColors.m + - JDK-8254016: Test8237524 fails with -XX:-CompactStrings option + - JDK-8254081: java/security/cert/PolicyNode/GetPolicyQualifiers.java fails due to an expired certificate + - JDK-8254144: Non-x86 Zero builds fail with return-type warning in os_linux_zero.cpp + - JDK-8254166: Zero: return-type warning in zeroInterpreter_zero.cpp + - JDK-8254177: (tz) Upgrade time-zone data to tzdata2020b + - JDK-8254185: Fix Code cache sweeper heuristics for JDK 11 + - JDK-8254190: [s390] interpreter misses exception check after calling monitorenter + - JDK-8254790: SIGSEGV in string_indexof_char and stringL_indexof_char intrinsics + - JDK-8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations + - JDK-8254982: (tz) Upgrade time-zone data to tzdata2020c + - JDK-8255050: Add pkcs11/KeyStore/ClientAuth.sh to Problem list + - JDK-8255065: Zero: accessor_entry misses the IRIW case + - JDK-8255226: (tz) Upgrade time-zone data to tzdata2020d + - JDK-8255269: Unsigned overflow in g1Policy.cpp + - JDK-8255365: Problem list failing client manual tests + - JDK-8255457: Shenandoah: cleanup ShenandoahMarkTask + - JDK-8255466: C2 crashes at ciObject::get_oop() const+0x0 + - JDK-8255550: x86: Assembler::cmpq(Address dst, Register src) encoding is incorrect + - JDK-8255603: Memory/Performance regression after JDK-8210985 + - JDK-8255760: Shenandoah: match constants style in ShenandoahMarkTask fallback + - JDK-8255937: Better cleanup for test/jdk/javax/imageio/stream/StreamFlush.java + - JDK-8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does not work on AIX + - JDK-8256452: Integrate missing part of JDK-8232370 to 11u + - JDK-8256483: [TESTBUG] serviceability/jvmti/GetClassMethods/libOverpassMethods.c fails to compile on gcc 4.4.x + - JDK-8256557: libharfbuzz fails to link on gcc 4.4.x due to -Wl,-z,defs + - JDK-8256618: Zero: Linux x86_32 build still fails + - JDK-8256736: Zero: GTest tests fail with "unsuppported vm variant" + - JDK-8256809: Annotation processing causes NPE during flow analysis + - JDK-8257181: s390x builds are very noisy with gc-sections messages + - JDK-8257242: [macOS] Java app crashes while switching input methods + - JDK-8257545: SunJSSE FIPS regression in key exchange after JDK-8171279 11u backport + - JDK-8257641: Shenandoah: Query is_at_shenandoah_safepoint() from control thread should return false + - JDK-8257701: Shenandoah: objArrayKlass metadata is not marked with chunked arrays + - JDK-8258630: Add expiry exception for QuoVadis root certificate + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8213821: -groupname Option Added to keytool Key Pair Generation +=================================================================== +A new `-groupname` option has been added to `keytool -genkeypair` so +that a user can specify a named group when generating a key pair. For +example, `keytool -genkeypair -keyalg EC -groupname secp384r1` will +generate an EC key pair by using the `secp384r1` curve. Because there +might be multiple curves with the same size, using the `-groupname` +option is preferred over the `-keysize` option. + +JDK-8248263: jarsigner Preserves POSIX File Permission and symlink Attributes +============================================================================= +When signing a file that contains POSIX file permission or symlink +attributes, `jarsigner` now preserves these attributes in the newly +signed file but warns that these attributes are unsigned and not +protected by the signature. The same warning is printed during the +`jarsigner -verify` operation for such files. + +Note that the `jar` tool does not read/write these attributes. This +change is more visible to tools like `unzip` where these attributes +are preserved. + +security-libs/javax.net.ssl: + +JDK-8225764: Support for X25519 and X448 in TLS +================================================ + +The named elliptic curve groups `x25519` and `x448` are now available +for JSSE key agreement in TLS versions 1.0 to 1.3, with `x25519` being +the most preferred of the default enabled named groups. The default +ordered list is now: + +* x25519 +* secp256r1 +* secp384r1 +* secp521r1 +* x448 +* secp256k1 +* ffdhe2048 +* ffdhe3072 +* ffdhe4096 +* ffdhe6144 +* ffdhe8192 + +The default list can be overridden using the system property *`jdk.tls.namedGroups`*. + +security-libs/org.ietf.jgss: + +JDK-8214079: Added a Default Native GSS-API Library on Windows +============================================================== +A native GSS-API library has been added to JDK on the Windows +platform. The library is client-side only and uses the default +credentials. It will be loaded when the `sun.security.jgss.native` +system property is set to "true". A user can still load a third-party +native GSS-API library by setting the system property +`sun.security.jgss.lib` to its path. + +New in release OpenJDK 11.0.9.1 (2020-10-20): +============================================= +Live versions of these release notes can be found at: + * https://bitly.com/openjdk11091 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.9.1.txt + +* Regression fixes + - JDK-8250861: Crash in MinINode::Ideal(PhaseGVN*, bool) + +New in release OpenJDK 11.0.9 (2020-10-20): +=========================================== +Live versions of these release notes can be found at: + * https://bitly.com/openjdk1109 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.9.txt + +* Security fixes + - JDK-8233624: Enhance JNI linkage + - JDK-8236196: Improve string pooling + - JDK-8236862, CVE-2020-14779: Enhance support of Proxy class + - JDK-8237990, CVE-2020-14781: Enhanced LDAP contexts + - JDK-8237995, CVE-2020-14782: Enhance certificate processing + - JDK-8240124: Better VM Interning + - JDK-8241114, CVE-2020-14792: Better range handling + - JDK-8242680, CVE-2020-14796: Improved URI Support + - JDK-8242685, CVE-2020-14797: Better Path Validation + - JDK-8242695, CVE-2020-14798: Enhanced buffer support + - JDK-8243302: Advanced class supports + - JDK-8244136, CVE-2020-14803: Improved Buffer supports + - JDK-8244479: Further constrain certificates + - JDK-8244955: Additional Fix for JDK-8240124 + - JDK-8245407: Enhance zoning of times + - JDK-8245412: Better class definitions + - JDK-8245417: Improve certificate chain handling + - JDK-8248574: Improve jpeg processing + - JDK-8249927: Specify limits of jdk.serialProxyInterfaceLimit + - JDK-8253019: Enhanced JPEG decoding +* Other changes + - JDK-6532025: GIF reader throws misleading exception with truncated images + - JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by removing a infinite loop + - JDK-8022535: [TEST BUG] javax/swing/text/html/parser/Test8017492.java fails + - JDK-8062947: Fix exception message to correctly represent LDAP connection failure + - JDK-8067354: com/sun/jdi/GetLocalVariables4Test.sh failed + - JDK-8134599: TEST_BUG: java/rmi/transport/closeServerSocket/CloseServerSocket.java fails intermittently with Address already in use + - JDK-8151678: com/sun/jndi/ldap/LdapTimeoutTest.java failed due to timeout on DeadServerNoTimeoutTest is incorrect + - JDK-8160768: Add capability to custom resolve host/domain names within the default JNDI LDAP provider + - JDK-8172404: Tools should warn if weak algorithms are used before restricting them + - JDK-8193367: Annotated type variable bounds crash javac + - JDK-8202117: com/sun/jndi/ldap/RemoveNamingListenerTest.java fails intermittently: Connection reset + - JDK-8203026: java.rmi.NoSuchObjectException: no such object in table + - JDK-8203281: [Windows] JComboBox change in ui when editor.setBorder() is called + - JDK-8203382: Rename SystemDictionary::initialize_wk_klass to resolve_wk_klass + - JDK-8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout + - JDK-8203928: [Test] Convert non-JDB scaffolding serviceability shell script tests to java + - JDK-8204963: javax.swing.border.TitledBorder has a memory leak + - JDK-8204994: SA might fail to attach to process with "Windbg Error: WaitForEvent failed" + - JDK-8205534: Remove SymbolTable dependency from serviceability agent + - JDK-8206309: Tier1 SA tests fail + - JDK-8208281: java/nio/channels/AsynchronousSocketChannel/Basic.java timed out + - JDK-8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1 + - JDK-8209332: [TEST] test/jdk/com/sun/jdi/CatchPatternTest.sh is incorrect + - JDK-8209342: Problemlist SA tests on Solaris due to Error attaching to process: Can't create thread_db agent! + - JDK-8209343: Test javax/swing/border/TestTitledBorderLeak.java should be marked as headful + - JDK-8209517: com/sun/jdi/BreakpointWithFullGC.java fails with timeout + - JDK-8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2 + - JDK-8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC + - JDK-8209608: Problem list com/sun/jdi/BreakpointWithFullGC.java + - JDK-8210131: vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java failed with ObjectFree: GetCurrentThreadCpuTimerInfo returned unexpected error code + - JDK-8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3 + - JDK-8210527: JShell: NullPointerException in jdk.jshell.Eval.translateExceptionStack + - JDK-8210560: [TEST] convert com/sun/jdi redefineClass-related tests + - JDK-8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds + - JDK-8210748: [TESTBUG] lib.jdb.Jdb.waitForPrompt() should clarify which output is the pending reply after a timeout + - JDK-8210760: [TEST] rewrite com/sun/jdi shell tests to java version - step4 + - JDK-8210977: jdk/jfr/event/oldobject/TestThreadLocalLeak.java fails to find ThreadLocalObject + - JDK-8211292: [TEST] convert com/sun/jdi/DeferredStepTest.sh test + - JDK-8211694: JShell: Redeclared variable should be reset + - JDK-8212200: assert when shared java.lang.Object is redefined by JVMTI agent + - JDK-8212629: [TEST] wrong breakpoint in test/jdk/com/sun/jdi/DeferredStepTest + - JDK-8212665: com/sun/jdi/DeferredStepTest.java: jj1 (line 57) - unexpected. lastLine=52, minLine=52, maxLine=55 + - JDK-8212807: tools/jar/multiRelease/Basic.java times out + - JDK-8213182: Minimal VM build failure after JDK-8212200 (assert when shared java.lang.Object is redefined by JVMTI agent) + - JDK-8213214: Set -Djava.io.tmpdir= when running tests + - JDK-8213275: ReplaceCriticalClasses.java fails with jdk.internal.vm.PostVMInitHook not found + - JDK-8213574: Deadlock in string table expansion when dumping lots of CDS classes + - JDK-8213703: LambdaConversionException: Invalid receiver type not a subtype of implementation type interface + - JDK-8214074: Ghash optimization using AVX instructions + - JDK-8214491: Upgrade to JLine 3.9.0 + - JDK-8214797: TestJmapCoreMetaspace.java timed out + - JDK-8215243: JShell tests failing intermitently with \"Problem cleaning up the following threads:\" + - JDK-8215244: jdk/jshell/ToolBasicTest.java testHistoryReference failed + - JDK-8215354: x86_32 build failures after JDK-8214074 (Ghash optimization using AVX instructions) + - JDK-8215438: jshell tool: Ctrl-D causes EOF + - JDK-8216021: RunTest.gmk might set concurrency level to 1 on Windows + - JDK-8216974: HttpConnection not returned to the pool after 204 response + - JDK-8218948: SimpleDateFormat :: format - Zone Names are not reflected correctly during run time + - JDK-8219712: code_size2 (defined in stub_routines_x86.hpp) is too small on new Skylake CPUs + - JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs + - JDK-8221658: aarch64: add necessary predicate for ubfx patterns + - JDK-8221759: Crash when completing \"java.io.File.path\" + - JDK-8221918: runtime/SharedArchiveFile/serviceability/ReplaceCriticalClasses.java fails: Shared archive not found + - JDK-8222074: Enhance auto vectorization for x86 + - JDK-8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp + - JDK-8222769: [TESTBUG] TestJFRNetworkEvents should not rely on hostname command + - JDK-8223688: JShell: crash on the instantiation of raw anonymous class + - JDK-8223777: In posix_spawn mode, failing to exec() jspawnhelper does not result in an error + - JDK-8223940: Private key not supported by chosen signature algorithm + - JDK-8224184: jshell got IOException at exiting with AIX + - JDK-8224234: compiler/codegen/TestCharVect2.java fails in test_mulc + - JDK-8225037: java.net.JarURLConnection::getJarEntry() throws NullPointerException + - JDK-8225625: AES Electronic Codebook (ECB) encryption and decryption optimization using AVX512 + VAES instructions + - JDK-8226536: Catch OOM from deopt that fails rematerializing objects + - JDK-8226575: OperatingSystemMXBean should be made container aware + - JDK-8226697: Several tests which need the @key headful keyword are missing it. + - JDK-8226809: Circular reference in printed stack trace is not correctly indented & ambiguous + - JDK-8227059: sun/security/tools/keytool/DefaultSignatureAlgorithm.java timed out + - JDK-8227269: Slow class loading when running with JDWP + - JDK-8227595: keytool/fakegen/DefaultSignatureAlgorithm.java fails due to "exitValue = 6" + - JDK-8228448: Jconsole can't connect to itself + - JDK-8228967: Trust/Key store and SSL context utilities for tests + - JDK-8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow + - JDK-8229815: Upgrade Jline to 3.12.1 + - JDK-8230000: some httpclients testng tests run zero test + - JDK-8230002: javax/xml/jaxp/unittest/transform/SecureProcessingTest.java runs zero test + - JDK-8230010: Remove jdk8037819/BasicTest1.java + - JDK-8230094: CCE in createXMLEventWriter(Result) over an arbitrary XMLStreamWriter + - JDK-8230402: Allocation of compile task fails with assert: "Leaking compilation tasks?" + - JDK-8230767: FlightRecorderListener returns null recording + - JDK-8230870: (zipfs) Add a ZIP FS test that is similar to test/jdk/java/util/zip/EntryCount64k.java + - JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread + - JDK-8231586: enlarge encoding space for OopMapValue offsets + - JDK-8231953: Wrong assumption in assertion in oop::register_oop + - JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b getThreadAllocatedBytes + - JDK-8232083: Minimal VM is broken after JDK-8231586 + - JDK-8232161: Align some one-way conversion in MS950 charset with Windows + - JDK-8232855: jshell missing word in /help help + - JDK-8233027: OopMapSet::all_do does oms.next() twice during iteration + - JDK-8233228: Disable weak named curves by default in TLS, CertPath, and Signed JAR + - JDK-8233386: Initialize NULL fields for unused decorations + - JDK-8233452: java.math.BigDecimal.sqrt() with RoundingMode.FLOOR results in incorrect result + - JDK-8233686: XML transformer uses excessive amount of memory + - JDK-8233741: AES Countermode (AES-CTR) optimization using AVX512 + VAES instructions + - JDK-8233829: javac cannot find non-ASCII module name under non-UTF8 environment + - JDK-8233958: Memory retention due to HttpsURLConnection finalizer that serves no purpose + - JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater() + - JDK-8234058: runtime/CompressedOops/CompressedClassPointers.java fails with 'Narrow klass base: 0x0000000000000000' missing from stdout/stderr + - JDK-8234149: Several regression tests do not dispose Frame at end + - JDK-8234347: "Turkey" meta time zone does not generate composed localized names + - JDK-8234385: [TESTBUG] java/awt/EventQueue/6980209/bug6980209.java fails in linux nightly + - JDK-8234535: Cross compilation fails due to missing CFLAGS for the BUILD_CC + - JDK-8234541: C1 emits an empty message when it inlines successfully + - JDK-8234687: change javap reporting on unknown attributes + - JDK-8236464: SO_LINGER option is ignored by SSLSocket in JDK 11 + - JDK-8236548: Localized time zone name inconsistency between English and other locales + - JDK-8236617: jtreg test containers/docker/TestMemoryAwareness.java fails after 8226575 + - JDK-8237182: Update copyright header for shenandoah and epsilon files + - JDK-8237888: security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java fails when checking validity interval + - JDK-8237977: Further update javax/net/ssl/compatibility/Compatibility.java + - JDK-8238270: java.net HTTP/2 client does not decrease stream count when receives 204 response + - JDK-8238284: [macos] Zero VM build fails due to an obvious typo + - JDK-8238380: java.base/unix/native/libjava/childproc.c "multiple definition" link errors with GCC10 + - JDK-8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple definition" link errors with GCC10 + - JDK-8238388: libj2gss/NativeFunc.o "multiple definition" link errors with GCC10 + - JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes + - JDK-8238710: LingeredApp doesn't log stdout/stderr if exits with non-zero code + - JDK-8239083: C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method"); + - JDK-8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD + - JDK-8240169: javadoc fails to link to non-modular api docs + - JDK-8240295: hs_err elapsed time in seconds is not accurate enough + - JDK-8240360: NativeLibraryEvent has wrong library name on Linux + - JDK-8240676: Meet not symmetric failure when running lucene on jdk8 + - JDK-8241007: Shenandoah: remove ShenandoahCriticalControlThreadPriority support + - JDK-8241065: Shenandoah: remove leftover code after JDK-8231086 + - JDK-8241086: Test runtime/NMT/HugeArenaTracking.java is failing on 32bit Windows + - JDK-8241130: com.sun.jndi.ldap.EventSupport.removeDeadNotifier: java.lang.NullPointerException + - JDK-8241138: http.nonProxyHosts=* causes StringIndexOutOfBoundsException in DefaultProxySelector + - JDK-8241319: WB_GetCodeBlob doesn't have ResourceMark + - JDK-8241478: vmTestbase/gc/gctests/Steal/steal001/steal001.java fails with OOME + - JDK-8241574: Shenandoah: remove ShenandoahAssertToSpaceClosure + - JDK-8241750: x86_32 build failure after JDK-8227269 + - JDK-8242184: CRL generation error with RSASSA-PSS + - JDK-8242283: Can't start JVM when java home path includes non-ASCII character + - JDK-8242556: Cannot load RSASSA-PSS public key with non-null params from byte array + - JDK-8243029: Rewrite javax/net/ssl/compatibility/Compatibility.java with a flexible interop test framework + - JDK-8243138: Enhance BaseLdapServer to support starttls extended request + - JDK-8243320: Add SSL root certificates to Oracle Root CA program + - JDK-8243321: Add Entrust root CA - G4 to Oracle Root CA program + - JDK-8243389: enhance os::pd_print_cpu_info on linux + - JDK-8243453: java --describe-module failed with non-ASCII module name under non-UTF8 environment + - JDK-8243470: [macos] bring back O2 opt level for unsafe.cpp + - JDK-8243489: Thread CPU Load event may contain wrong data for CPU time under certain conditions + - JDK-8243925: Toolkit#getScreenInsets() returns wrong value on HiDPI screens (Windows) + - JDK-8244087: 2020-04-24 public suffix list update + - JDK-8244151: Update MUSCLE PC/SC-Lite headers to the latest release 1.8.26 + - JDK-8244164: AArch64: jaotc generates incorrect code for compressed OOPs with non-zero heap base + - JDK-8244196: adjust output in os_linux + - JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in + - JDK-8244287: JFR: Methods samples have line number 0 + - JDK-8244703: "platform encoding not initialized" exceptions with debugger, JNI + - JDK-8244719: CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it" + - JDK-8244729: Shenandoah: remove resolve paths from SBSA::generate_shenandoah_lrb + - JDK-8244763: Update --release 8 symbol information after JSR 337 MR3 + - JDK-8244818: Java2D Queue Flusher crash while moving application window to external monitor + - JDK-8245151: jarsigner should not raise duplicate warnings on verification + - JDK-8245616: Bump update version for OpenJDK: jdk-11.0.9 + - JDK-8245714: "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch + - JDK-8245801: StressRecompilation triggers assert "redundunt OSR recompilation detected. memory leak in CodeCache!" + - JDK-8245832: JDK build make-static-libs should build all JDK libraries + - JDK-8245880: Shenandoah: check class unloading flag early in concurrent code root scan + - JDK-8245981: Upgrade to jQuery 3.5.1 + - JDK-8246027: Minimal fastdebug build broken after JDK-8245801 + - JDK-8246094: [macos] Sound Recording and playback is not working + - JDK-8246153: TestEliminateArrayCopy fails with -XX:+StressReflectiveCode + - JDK-8246193: Possible NPE in ENC-PA-REP search in AS-REQ + - JDK-8246196: javax/management/MBeanServer/OldMBeanServerTest fails with AssertionError + - JDK-8246203: Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN + - JDK-8246330: Add TLS Tests for Legacy ECDSA curves + - JDK-8246453: TestClone crashes with "all collected exceptions must come from the same place" + - JDK-8247246: Add explicit ResolvedJavaType.link and expose presence of default methods + - JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node + - JDK-8247502: PhaseStringOpts crashes while optimising effectively dead code + - JDK-8247615: Initialize the bytes left for the heap sampler + - JDK-8247824: CTW: C2 (Shenandoah) compilation fails with SEGV in SBC2Support::pin_and_expand + - JDK-8247874: Replacement in VersionProps.java.template not working when --with-vendor-bug-url contains '&' + - JDK-8247979: aarch64: missing side effect of killing flags for clearArray_reg_reg + - JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache contention + - JDK-8248219: aarch64: missing memory barrier in fast_storefield and fast_accessfield + - JDK-8248348: Regression caused by the update to BCEL 6.0 + - JDK-8248385: [testbug][11u] Adapt TestInitiExceptions to jtreg 5.1 + - JDK-8248495: [macos] zerovm is broken due to libffi headers location + - JDK-8248851: CMS: Missing memory fences between free chunk check and klass read + - JDK-8248987: AOT's Linker.java seems to eagerly fail-fast on Windows + - JDK-8249159: Downport test rework for SSLSocketTemplate from 8224650 + - JDK-8249215: JFrame::setVisible crashed with -Dfile.encoding=UTF-8 on Japanese Windows. + - JDK-8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel + - JDK-8249255: Build fails if source code in cygwin home dir + - JDK-8249277: TestVerifyIterativeGVN.java is failing with timeout in OpenJDK 11 + - JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList + - JDK-8249560: Shenandoah: Fix racy GC request handling + - JDK-8249801: Shenandoah: Clear soft-refs on requested GC cycle + - JDK-8249953: Shenandoah: gc/shenandoah/mxbeans tests should account for corner cases + - JDK-8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS Kerberos tickets + - JDK-8250609: C2 crash in IfNode::fold_compares + - JDK-8250627: Use -XX:+/-UseContainerSupport for enabling/disabling Java container metrics + - JDK-8250755: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java + - JDK-8250787: Provider.put no longer registering aliases in FIPS env + - JDK-8250826: jhsdb does not work with coredump which comes from Substrate VM + - JDK-8250827: Shenandoah: needs to reset/finish StringTable's dead count before/after parallel walk + - JDK-8250844: Make sure {type,obj}ArrayOopDesc accessors check the bounds + - JDK-8251117: Cannot check P11Key size in P11Cipher and P11AEADCipher + - JDK-8251354: Shenandoah: Fix jdk/jfr/tool/TestPrintJSON.java test failure + - JDK-8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U + - JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java + - JDK-8251487: Shenandoah: missing detail timing tracking for final mark cleaning phase + - JDK-8252120: compiler/oracle/TestCompileCommand.java misspells "occured" + - JDK-8252157: JDK-8231209 11u backport breaks jmm binary compatibility + - JDK-8252258: [11u] JDK-8242154 changes the default vendor + - JDK-8252804: [test] Fix 'ReleaseDeflater.java' test after downport of 8234011 + - JDK-8253134: JMM_VERSION should remain at 0x20020000 (JDK 10) in JDK 11 + - JDK-8253283: [11u] Test build/translations/VerifyTranslations.java failing after JDK-8252258 + - JDK-8253813: Backout JDK-8244287 from 11u: it causes several crashes + +Notes on individual issues: +=========================== + +core-libs/java.nio.charsets: + +JDK-8240196: Modified the MS950 charset Encoder's Conversion Table +================================================================== +In this release, some of the one-way byte-to-char mappings have been +aligned with the preferred mappings provided by the Unicode Consortium +(https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit950.txt). + +core-libs/java.util:i18n: + +JDK-8238914: Localized Time Zone Name Inconsistency Between English and Other Locales +===================================================================================== +English time zone names provided by the CLDR locale provider are now +correctly synthesized following the CLDR spec, rather than substituted +from the COMPAT provider. For example, SHORT style names are no longer +synthesized abbreviations of LONG style names, but instead produce GMT +offset formats. + +core-svc/java.lang.management: + +JDK-8236876: OperatingSystemMXBean Methods Inside a Container Return Container Specific Data +============================================================================================ +When executing in a container, or other virtualized operating +environment, the following `OperatingSystemMXBean` methods in this +release return container specific information, if +available. Otherwise, they return host specific data: + +* getFreePhysicalMemorySize() +* getTotalPhysicalMemorySize() +* getFreeSwapSpaceSize() +* getTotalSwapSpaceSize() +* getSystemCpuLoad() + +security-libs/java.security: + +JDK-8250756: Added Entrust Root Certification Authority - G4 certificate +======================================================================== +The Entrust root certificate has been added to the cacerts truststore: + +Alias Name: entrustrootcag4 +Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US + +JDK-8250860: Added 3 SSL Corporation Root CA Certificates +========================================================= +The following root certificates have been added to the cacerts truststore for the SSL Corporation: + +Alias Name: sslrootrsaca +Distinguished Name: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US + +Alias Name: sslrootevrsaca +Distinguished Name: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US + +Alias Name: sslrooteccca +Distinguished Name: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US + +JDK-8236730: Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default +=================================================================================== +Weak named curves are disabled by default by adding them to the +following `disabledAlgorithms` security properties: + +* jdk.tls.disabledAlgorithms +* jdk.certpath.disabledAlgorithms +* jdk.jar.disabledAlgorithms + +Red Hat has always disabled many of the curves provided by upstream, +so the only addition in this release is: + +* secp256k1 + +The curves that remain enabled are: + +* secp256r1 +* secp384r1 +* secp521r1 +* X25519 +* X448 + +When large numbers of weak named curves need to be disabled, adding +individual named curves to each `disabledAlgorithms` property would be +overwhelming. To relieve this, a new security property, +`jdk.disabled.namedCurves`, is implemented that can list the named +curves common to all of the `disabledAlgorithms` properties. To use +the new property in the `disabledAlgorithms` properties, precede the +full property name with the keyword `include`. Users can still add +individual named curves to `disabledAlgorithms` properties separate +from this new property. No other properties can be included in the +`disabledAlgorithms` properties. + +To restore the named curves, remove the `include +jdk.disabled.namedCurves` either from specific or from all +`disabledAlgorithms` security properties. To restore one or more +curves, remove the specific named curve(s) from the +`jdk.disabled.namedCurves` property. + +JDK-8244286: Tools Warn If Weak Algorithms Are Used Before Restricting Them +=========================================================================== +The `keytool` and `jarsigner` tools have been updated to warn users +about weak cryptographic algorithms being used before they are +disabled. In this release, the tools issue warnings for the SHA-1 hash +algorithm and 1024-bit RSA/DSA keys. + +security-libs/javax.net.ssl: + +JDK-8242147: New System Properties to Configure the TLS Signature Schemes +========================================================================= +Two new system properties have been added to customize the TLS +signature schemes in JDK. `jdk.tls.client.SignatureSchemes` has been +added for the TLS client side, and `jdk.tls.server.SignatureSchemes` +has been added for the server side. + +Each system property contains a comma-separated list of supported +signature scheme names specifying the signature schemes that could be +used for the TLS connections. + +The names are described in the "Signature Schemes" section of the +*Java Security Standard Algorithm Names Specification*. + +security-libs/javax.security: + +JDK-8242059: Support for canonicalize in krb5.conf +================================================== + +The 'canonicalize' flag in the [krb5.conf file][0] is now supported by +the JDK Kerberos implementation. When set to *true*, RFC 6806 [1] name +canonicalization is requested by clients in TGT requests to KDC +services (AS protocol). Otherwise, and by default, it is not +requested. + +The new default behavior is different from previous releases where +name canonicalization was always requested by clients in TGT requests +to KDC services (provided that support for RFC 6806[1] was not +explicitly disabled with the *sun.security.krb5.disableReferrals* +system or security properties). + +[0]: https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html +[1]: https://tools.ietf.org/html/rfc6806 + +JDK-8254177: US/Pacific-New Zone name removed as part of tzdata2020b +==================================================================== +Following JDK's update to tzdata2020b, the long-obsolete files +pacificnew and systemv have been removed. As a result, the +"US/Pacific-New" zone name declared in the pacificnew data file is no +longer available for use. + +Information regarding the update can be viewed at +https://mm.icann.org/pipermail/tz-announce/2020-October/000059.html + +New in release OpenJDK 11.0.8 (2020-07-14): +=========================================== +Live versions of these release notes can be found at: + * https://bitly.com/oj1108 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.8.txt + +* Security fixes + - JDK-8230613: Better ASCII conversions + - JDK-8231800: Better listing of arrays + - JDK-8232014: Expand DTD support + - JDK-8233234: Better Zip Naming + - JDK-8233239, CVE-2020-14562: Enhance TIFF support + - JDK-8233255: Better Swing Buttons + - JDK-8234032: Improve basic calendar services + - JDK-8234042: Better factory production of certificates + - JDK-8234418: Better parsing with CertificateFactory + - JDK-8234836: Improve serialization handling + - JDK-8236191: Enhance OID processing + - JDK-8236867, CVE-2020-14573: Enhance Graal interface handling + - JDK-8237117, CVE-2020-14556: Better ForkJoinPool behavior + - JDK-8237592, CVE-2020-14577: Enhance certificate verification + - JDK-8238002, CVE-2020-14581: Better matrix operations + - JDK-8238013: Enhance String writing + - JDK-8238804: Enhance key handling process + - JDK-8238842: AIOOBE in GIFImageReader.initializeStringTable + - JDK-8238843: Enhanced font handing + - JDK-8238920, CVE-2020-14583: Better Buffer support + - JDK-8238925: Enhance WAV file playback + - JDK-8240119, CVE-2020-14593: Less Affine Transformations + - JDK-8240482: Improved WAV file playback + - JDK-8241379: Update JCEKS support + - JDK-8241522: Manifest improved jar headers redux + - JDK-8242136, CVE-2020-14621: Better XML namespace handling +* Other changes + - JDK-6933331: (d3d/ogl) java.lang.IllegalStateException: Buffers have not been created + - JDK-7124307: JSpinner and changing value by mouse + - JDK-8022574: remove HaltNode code after uncommon trap calls + - JDK-8039082: [TEST_BUG] Test java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails + - JDK-8040630: Popup menus and tooltips flicker with previous popup contents when first shown + - JDK-8044365: (dc) MulticastSendReceiveTests.java failing with ENOMEM when joining group (OS X 10.9) + - JDK-8048215: [TESTBUG] java/lang/management/ManagementFactory/ThreadMXBeanProxy.java Expected non-null LockInfo + - JDK-8051349: nsk/jvmti/scenarios/sampling/SP06/sp06t003 fails in nightly + - JDK-8080353: JShell: Better error message on attempting to add default method + - JDK-8139876: Exclude hanging nsk/stress/stack from execution with deoptimization enabled + - JDK-8146090: java/lang/ref/ReachabilityFenceTest.java fails with -XX:+DeoptimizeALot + - JDK-8153430: jdk regression test MletParserLocaleTest, ParserInfiniteLoopTest reduce default timeout + - JDK-8156207: Resource allocated BitMaps are often cleared unnecessarily + - JDK-8159740: JShell: corralled declarations do not have correct source to wrapper mapping + - JDK-8175984: ICC_Profile has un-needed, not-empty finalize method + - JDK-8176359: Frame#setMaximizedbounds not working properly in multi screen environments + - JDK-8183369: RFC unconformity of HttpURLConnection with proxy + - JDK-8187078: -XX:+VerifyOops finds numerous problems when running JPRT + - JDK-8191169: java/net/Authenticator/B4769350.java failed intermittently + - JDK-8191930: [Graal] emits unparseable XML into compile log + - JDK-8193879: Java debugger hangs on method invocation + - JDK-8196019: java/awt/Window/Grab/GrabTest.java fails on Windows + - JDK-8196181: sun/java2d/GdiRendering/InsetClipping.java fails + - JDK-8198000: java/awt/List/EmptyListEventTest/EmptyListEventTest.java debug assert on Windows + - JDK-8198001: java/awt/Menu/WrongParentAfterRemoveMenu/WrongParentAfterRemoveMenu.java debug assert on Windows + - JDK-8198339: Test javax/swing/border/Test6981576.java is unstable + - JDK-8200701: jdk/jshell/ExceptionsTest.java fails on Windows, after JDK-8198801 + - JDK-8203264: JNI exception pending in PlainDatagramSocketImpl.c:740 + - JDK-8203672: JNI exception pending in PlainSocketImpl.c + - JDK-8203673: JNI exception pending in DualStackPlainDatagramSocketImpl.c:398 + - JDK-8204834: Fix confusing "allocate" naming in OopStorage + - JDK-8205399: Set node color on pinned HashMap.TreeNode deletion + - JDK-8205653: test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java and RmiSslBootstrapTest.sh fail with handshake_failure + - JDK-8206179: com/sun/management/OperatingSystemMXBean/GetCommittedVirtualMemorySize.java fails with Committed virtual memory size illegal value + - JDK-8207334: VM times out in VM_HandshakeAllThreads::doit() with RunThese30M + - JDK-8208277: Code cache heap (-XX:ReservedCodeCacheSize) doesn't work with 1GB LargePages + - JDK-8209113: Use WeakReference for lastFontStrike for created Fonts + - JDK-8209333: Socket reset issue for TLS 1.3 socket close + - JDK-8209439: C2 library_call can potentially ignore Math.pow intrinsic or use null pointer + - JDK-8209534: [TESTBUG]runtime/appcds/cacheObject/ArchivedModuleCompareTest.java fails with EnableJVMCI. + - JDK-8210147: adjust some WSAGetLastError usages in windows network coding + - JDK-8210284: "assert((av & 0x00000001) == 0) failed: unsupported V8" on Solaris 11.4 + - JDK-8210303: VM_HandshakeAllThreads fails assert with "failed: blocked and not walkable" + - JDK-8210515: [TESTBUG]CheckArchivedModuleApp.java needs to check if EnableJVMCI is set. + - JDK-8210788: Javadoc for Thread.join(long, int) should specify that it waits forever when both arguments are zero + - JDK-8211301: [macos] support full window content options + - JDK-8211332: Space for stub routines (code_size2) is too small on new Skylake CPUs + - JDK-8211339: NPE during SSL handshake caused by HostnameChecker + - JDK-8211392: compiler/profiling/spectrapredefineclass_classloaders/Launcher.java times out in JDK12 CI + - JDK-8211743: [AOT] crash in ScopeDesc::decode_body() when JVMTI walks AOT frames + - JDK-8212154: [TESTBUG] CheckArchivedModuleApp fails with NPE when JVMCI is absent + - JDK-8212167: JShell : Stack trace of exception has wrong line number + - JDK-8212933: Thread-SMR: requesting a VM operation whilst holding a ThreadsListHandle can cause deadlocks + - JDK-8212986: Make Visual Studio compiler check less strict + - JDK-8213250: CDS archive creation aborts due to metaspace object allocation failure + - JDK-8213516: jck test api/javax_accessibility/AccessibleState/fields.html fails intermittent + - JDK-8213947: ARM32: failed check_simd should set UsePopCountInstruction to false + - JDK-8214418: half-closed SSLEngine status may cause application dead loop + - JDK-8214440: ldap over a TLS connection negotiate failed with "javax.net.ssl.SSLPeerUnverifiedException: hostname of the server '' does not match the hostname in the server's certificate" + - JDK-8214444: Wrong strncat limits in dfa.cpp + - JDK-8214481: freetype path does not disable TrueType hinting with AA+FM hints + - JDK-8214571: -Xdoclint of array serialField gives "error: array type not allowed here" + - JDK-8214856: Errors with JSZip in web console after upgrade to 3.1.5 + - JDK-8214862: assert(proj != __null) at compile.cpp:3251 + - JDK-8215369: Jcstress pollute /var/tmp with temporary files. + - JDK-8215551: Missing case label in nmethod::reloc_string_for() + - JDK-8215555: TieredCompilation C2 threads can excessively block handshakes + - JDK-8215711: Missing key_share extension for (EC)DHE key exchange should alert missing_extension + - JDK-8216151: [Graal] Module jdk.internal.vm.compiler.management has not been granted accessClassInPackage.org.graalvm.compiler.debug + - JDK-8216154: C4819 warnings at HotSpot sources on Windows + - JDK-8216541: CompiledICHolders of VM locked unloaded nmethods are released too late + - JDK-8217230: assert(t == t_no_spec) failure in NodeHash::check_no_speculative_types() + - JDK-8217404: --with-jvm-features doesn't work when multiple features are explicitly disabled + - JDK-8217447: Develop flag TraceICs is broken + - JDK-8217606: LdapContext#reconnect always opens a new connection + - JDK-8218807: Compilation database (compile_commands.json) may contain obsolete items + - JDK-8219214: Infinite Loop in CodeSection::dump() + - JDK-8219904: ClassCastException when calling FlightRecorderMXBean#getRecordings() + - JDK-8219991: New fix of the deadlock in sun.security.ssl.SSLSocketImpl + - JDK-8221121: applications/microbenchmarks are encountering crashes in tier5 + - JDK-8221445: FastSysexMessage constructor crashes MIDI receiption thread + - JDK-8221482: Initialize VMRegImpl::regName[] earlier to prevent assert during PrintStubCode + - JDK-8221741: ClassCastException can happen when fontconfig.properties is used + - JDK-8221823: Requested JDialog width is ignored + - JDK-8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable + - JDK-8223935: PIT: java/awt/font/WindowsIndicFonts.java fails on windows10 + - JDK-8224109: Text spaced incorrectly by drawString under rotation with fractional metric + - JDK-8224632: testbug: java/awt/dnd/RemoveDropTargetCrashTest/RemoveDropTargetCrashTest.java fails on MacOS + - JDK-8224793: os::die() does not honor CreateCoredumpOnCrash option + - JDK-8224847: gc/stress/TestReclaimStringsLeaksMemory.java fails with reserved greater than expected + - JDK-8224931: disable JAOTC invokedynamic support until 8223533 is fixed + - JDK-8224997: ChaCha20-Poly1305 TLS cipher suite decryption throws ShortBufferException + - JDK-8225068: Remove DocuSign root certificate that is expiring in May 2020 + - JDK-8225069: Remove Comodo root certificate that is expiring in May 2020 + - JDK-8225126: Test SetBoundsPaintTest.html faild on Windows when desktop is scaled + - JDK-8225325: Add tests for redefining a class' private method during resolution of the bootstrap specifier + - JDK-8225622: [AOT] runtime/SharedArchiveFile/TestInterpreterMethodEntries.java crashed with AOTed java.base + - JDK-8225653: Provide more information when hitting SIGILL from HaltNode + - JDK-8225783: Incorrect use of binary operators on booleans in type.cpp + - JDK-8225789: Empty method parameter type should generate ClassFormatError + - JDK-8226198: use of & instead of && in LibraryCallKit::arraycopy_restore_alloc_state + - JDK-8226253: JAWS reports wrong number of radio buttons when buttons are hidden. + - JDK-8226653: [accessibility] Can edit text cell correctly, but Accessibility Tool reads nothing about editor + - JDK-8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate thread + - JDK-8226879: Memory leak in Type::hashcons + - JDK-8227632: Incorrect PrintCompilation message: made not compilable on levels 0 1 2 3 4 + - JDK-8228407: JVM crashes with shared archive file mismatch + - JDK-8228482: fix xlc16/xlclang comparison of distinct pointer types and string literal conversion warnings + - JDK-8228757: Fail fast if the handshake type is unknown + - JDK-8229158: make UseSwitchProfiling non-experimental or false by-default + - JDK-8229421: The logic of java/net/ipv6tests/TcpTest.java is flawed + - JDK-8229855: C2 fails with assert(false) failed: bad AD file + - JDK-8230591: AArch64: Missing intrinsics for Math.ceil, floor, rint + - JDK-8231118: ARM32: Math tests failures + - JDK-8231213: Migrate SimpleDateFormatConstTest to JDK Repo + - JDK-8231243: [TESTBUG] CustomFont.java cannot find font file + - JDK-8231438: [macOS] Dark mode for the desktop is not supported + - JDK-8231550: C2: ShouldNotReachHere() in verify_strip_mined_scheduling + - JDK-8231564: setMaximizedBounds is broken with large display scale and multiple monitors + - JDK-8231572: Use -lobjc instead of -fobjc-link-runtime in libosxsecurity + - JDK-8231631: sun/net/ftp/FtpURLConnectionLeak.java fails intermittently with NPE + - JDK-8231671: Fix copyright headers in hotspot (missing comma after year) + - JDK-8231720: Some perf regressions after 8225653 + - JDK-8231779: crash HeapWord*ParallelScavengeHeap::failed_mem_allocate + - JDK-8231863: Crash if classpath is read from @argument file and the main gets option argument + - JDK-8232080: jlink plugins for vendor information and run-time options + - JDK-8232106: [x86] C2: SIGILL due to usage of SSSE3 instructions on processors which don't support it + - JDK-8232134: Change to Visual Studio 2017 15.9.16 for building on Windows at Oracle + - JDK-8232226: [macos 10.15] test/jdk/java/awt/color/EqualityTest/EqualityTest.java may fail + - JDK-8232357: Compare version info of Santuario to legal notice + - JDK-8232572: Add hooks for custom output dir in Bundles.gmk + - JDK-8232634: Problem List ICMColorDataTest.java + - JDK-8232748: Build static versions of certain JDK libraries + - JDK-8232846: ProcessHandle.Info command with non-English shows question marks + - JDK-8233033: C2 produces wrong result while unswitching a loop due to lost control dependencies + - JDK-8233137: runtime/ErrorHandling/VeryEarlyAssertTest.java fails after 8232080 + - JDK-8233197: Invert JvmtiExport::post_vm_initialized() and Jfr:on_vm_start() start-up order for correct option parsing + - JDK-8233291: [TESTBUG] tools/jlink/plugins/VendorInfoPluginsTest.java fails with debug or non-server VMs + - JDK-8233364: Fix undefined behavior in Canonicalizer::do_ShiftOp + - JDK-8233573: Toolkit.getScreenInsets(GraphicsConfiguration) may throw ClassCastException + - JDK-8233608: Minimal build broken after JDK-8233494 + - JDK-8233621: Mismatch in jsse.enableMFLNExtension property name + - JDK-8233696: [TESTBUG]Some jtreg tests fail when CAPS_LOCK is ON + - JDK-8233707: systemScale.cpp could not compile with VS2019 + - JDK-8233801: GCMEmptyIv.java test fails on Solaris 11.4 + - JDK-8233880: Support compilers with multi-digit major version numbers + - JDK-8233920: MethodHandles::tryFinally generates illegal bytecode for long/double return type + - JDK-8234137: The "AutoTestOnTop.java" test may run external applications + - JDK-8234146: compiler/jsr292/ContinuousCallSiteTargetChange.java times out on SPARC + - JDK-8234184: [TESTBUG] java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java fails in Windows + - JDK-8234270: [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area + - JDK-8234332: [TESTBUG] java/awt/Focus/DisposedWindow/DisposeDialogNotActivateOwnerTest/DisposeDialogNotActivateOwnerTest.java fails on linux-x64 nightly + - JDK-8234398: Replace ID2D1Factory::GetDesktopDpi with GetDeviceCaps + - JDK-8234522: [macos] Crash with use of native file dialog + - JDK-8234691: Potential double-free in ParallelSPCleanupTask constructor + - JDK-8234696: tools/jlink/plugins/VendorInfoPluginsTest.java times out + - JDK-8234727: sun/security/ssl/X509TrustManagerImpl tests support TLSv1.3 + - JDK-8234728: Some security tests should support TLSv1.3 + - JDK-8234779: Provide idiom for declaring classes noncopyable + - JDK-8234968: check calloc rv in libinstrument InvocationAdapter + - JDK-8235153: [TESTBUG] [macos 10.15] java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails + - JDK-8235183: Remove the "HACK CODE" in comment + - JDK-8235263: Revert TLS 1.3 change that wrapped IOExceptions + - JDK-8235311: Tag mismatch may alert bad_record_mac + - JDK-8235332: TestInstanceCloneAsLoadsStores.java fails with -XX:+StressGCM + - JDK-8235452: Strip mined loop verification fails with assert(is_OuterStripMinedLoop()) failed: invalid node class + - JDK-8235584: UseProfiledLoopPredicate fails with assert(_phase->get_loop(c) == loop) failed: have to be in the same loop + - JDK-8235620: Broken merge between JDK-8006406 and JDK-8003559 + - JDK-8235638: NPE in LWWindowPeer.getOnscreenGraphics() + - JDK-8235686: Add more custom hooks in Bundles.gmk + - JDK-8235739: Rare NPE at WComponentPeer.getGraphics() + - JDK-8235762: JVM crash in SWPointer during C2 compilation + - JDK-8235834: IBM-943 charset encoder needs updating + - JDK-8235874: The ordering of Cipher Suites is not maintained provided through jdk.tls.client.cipherSuites and jdk.tls.server.cipherSuites system property. + - JDK-8235908: omit ThreadPriorityPolicy warning when value is set from image + - JDK-8235984: C2: assert(out->in(PhiNode::Region) == head || out->in(PhiNode::Region) == slow_head) failed: phi must be either part of the slow or the fast loop + - JDK-8236211: [Graal] compiler/graalunit/GraphTest.java is skipped in all testing + - JDK-8236470: Deal with ECDSA using ecdsa-with-SHA2 plus hash algorithm as AlgorithmId + - JDK-8236545: Compilation error in mach5 java/awt/FileDialog/MacOSGoToFolderCrash.java + - JDK-8236700: Upgrading JSZip from v3.1.5 to v3.2.2 + - JDK-8236759: ShouldNotReachHere in PhaseIdealLoop::verify_strip_mined_scheduling + - JDK-8236897: Fix the copyright header for pkcs11gcm2.h + - JDK-8236921: Add build target to produce a JDK image suitable for a Graal/SVM build + - JDK-8236953: [macos] JavaFX SwingNode is not rendered on macOS + - JDK-8236996: Incorrect Roboto font rendering on Windows with subpixel antialiasing + - JDK-8237045: JVM uses excessive memory with -XX:+EnableJVMCI -XX:JVMCICounterSize=2147483648 + - JDK-8237055: [TESTBUG] compiler/c2/TestJumpTable.java fails with release VMs + - JDK-8237086: assert(is_MachReturn()) running CTW with fix for JDK-8231291 + - JDK-8237192: Generate stripped/public pdbs on Windows for jdk images + - JDK-8237396: JvmtiTagMap::weak_oops_do() should not trigger barriers + - JDK-8237474: Default SSLEngine should create in server role + - JDK-8237859: C2: Crash when loads float above range check + - JDK-8237951: CTW: C2 compilation fails with "malformed control flow" + - JDK-8237962: give better error output for invalid OCSP response intervals in CertPathValidator checks + - JDK-8238190: [JVMCI] Fix single implementor speculation for diamond shapes. + - JDK-8238356: CodeHeap::blob_count() overestimates the number of blobs + - JDK-8238452: Keytool generates wrong expiration date if validity is set to 2050/01/01 + - JDK-8238555: Allow Initialization of SunPKCS11 with NSS when there are external FIPS modules in the NSSDB + - JDK-8238575: DragSourceEvent.getLocation() returns wrong value on HiDPI screens (Windows) + - JDK-8238676: jni crashes on accessing it from process exit hook + - JDK-8238721: Add failing client jtreg tests to the Problem List + - JDK-8238738: AudioSystem.getMixerInfo() takes about 30 sec to report a gone audio device + - JDK-8238756: C2: assert(((n) == __null || !VerifyIterativeGVN || !((n)->is_dead()))) failed: can not use dead node + - JDK-8238765: PhaseCFG::schedule_pinned_nodes cannot handle precedence edges from unmatched CFG nodes correctly + - JDK-8238898: Missing hash characters for header on license file + - JDK-8238942: Rendering artifacts with LCD text and fractional metrics + - JDK-8238985: [TESTBUG] The arrow image is blue instead of green + - JDK-8239000: handle ContendedPaddingWidth in vm_version_ppc + - JDK-8239055: Wrong implementation of VMState.hasListener + - JDK-8239091: Reversed arguments in call to strstr in freetype "debug" code. + - JDK-8239142: C2's UseUniqueSubclasses optimization is broken for array accesses + - JDK-8239224: libproc_impl.c previous_thr may be used uninitialized warning + - JDK-8239351: Give more meaningful InternalError messages in Deflater.c + - JDK-8239365: ProcessBuilder test modifications for AIX execution + - JDK-8239456: vtable stub generation: assert failure (code size estimate) + - JDK-8239457: call ReleaseStringUTFChars before early returns in Java_sun_security_pkcs11_wrapper_PKCS11_connect + - JDK-8239462: jdk.hotspot.agent misses some ReleaseStringUTFChars calls in case of early returns + - JDK-8239557: [TESTBUG] VeryEarlyAssertTest.java validating "END." marker at lastline is not always true + - JDK-8239787: AArch64: String.indexOf may incorrectly handle empty strings + - JDK-8239792: Bump update version for OpenJDK: jdk-11.0.8 + - JDK-8239798: SSLSocket closes socket both socket endpoints on a SocketTimeoutException + - JDK-8239819: XToolkit: Misread of screen information memory + - JDK-8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed + - JDK-8239893: Windows handle Leak when starting processes using ProcessBuilder + - JDK-8239915: Zero VM crashes when handling dynamic constant + - JDK-8239931: [win][x86] vtable stub generation: assert failure (code size estimate) follow-up + - JDK-8239976: Put JDK-8239965 on the ProblemList.txt + - JDK-8240073: Fix 'test-make' build target in 11u + - JDK-8240197: Cannot start JVM when $JAVA_HOME includes CJK characters + - JDK-8240202: A few client tests leave mouse buttons pressed + - JDK-8240220: IdealLoopTree::dump_head predicate printing is broken + - JDK-8240223: Use consistent predicate order in and with PhaseIdealLoop::find_predicate + - JDK-8240227: Loop predicates should be copied to unswitched loops + - JDK-8240286: [TESTBUG] Test command error in hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java + - JDK-8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print + - JDK-8240529: CheckUnhandledOops breaks NULL check in Modules::define_module + - JDK-8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges + - JDK-8240603: Windows 32bit compile error after 8238676 + - JDK-8240629: argfiles parsing broken for argfiles with comment cross 4096 bytes chunk + - JDK-8240711: TestJstatdPort.java failed due to "ExportException: Port already in use:" + - JDK-8240786: [TESTBUG] The test java/awt/Window/GetScreenLocation/GetScreenLocationTest.java fails on HiDPI screen + - JDK-8240824: enhance print_full_memory_info on Linux by THP related information + - JDK-8240827: Downport SSLSocketImpl.java from "8221882: Use fiber-friendly java.util.concurrent.locks in JSSE" + - JDK-8240905: assert(mem == (Node*)1 || mem == mem2) failed: multiple Memories being matched at once? + - JDK-8240972: macOS codesign fail on macOS 10.13.5 or older + - JDK-8241445: Fix copyright in test/jdk/tools/launcher/ArgFileSyntax.java + - JDK-8241458: [JVMCI] add mark value to expose CodeOffsets::Frame_Complete + - JDK-8241464: [11u] Backport: make rehashing be a needed guaranteed safepoint cleanup action + - JDK-8241556: Memory leak if -XX:CompileCommand is set + - JDK-8241568: (fs) UserPrincipalLookupService.lookupXXX failure with IOE "Operation not permitted" + - JDK-8241586: compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java fails on aarch64 + - JDK-8241638: launcher time metrics always report 1 on Linux when _JAVA_LAUNCHER_DEBUG set + - JDK-8241660: Add virtualization information output to hs_err file on macOS + - JDK-8241808: [TESTBUG] The JDK-8039467 bug appeared on macOS + - JDK-8241888: Mirror jdk.security.allowNonCaAnchor system property with a security one + - JDK-8241900: Loop unswitching may cause dependence on null check to be lost + - JDK-8241948: enhance list of environment variables printed in hs_err file + - JDK-8241996: on linux set full relro in the linker flags + - JDK-8242108: Performance regression after fix for JDK-8229496 + - JDK-8242141: New System Properties to configure the TLS signature schemes + - JDK-8242154: Backport parts of JDK-4947890 to OpenJDK 11u + - JDK-8242174: [macos] The NestedModelessDialogTest test make the macOS unstable + - JDK-8242239: [Graal] javax/management/generified/GenericTest.java fails: FAILED: queryMBeans sets same + - JDK-8242294: JSSE Client does not throw SSLException when an alert occurs during handshaking + - JDK-8242379: [TESTBUG] compiler/loopopts/TestLoopUnswitchingLostCastDependency.java fails with release VMs + - JDK-8242470: Update Xerces to Version 2.12.1 + - JDK-8242498: Invalid "sun.awt.TimedWindowEvent" object leads to JVM crash + - JDK-8242541: Small charset issues (ISO8859-16, x-eucJP-Open, x-IBM834 and x-IBM949C) + - JDK-8242626: enhance posix print_rlimit_info + - JDK-8243059: Build fails when --with-vendor-name contains a comma + - JDK-8243539: Copyright info (Year) should be updated for fix of 8241638 + - JDK-8243541: (tz) Upgrade time-zone data to tzdata2020a + - JDK-8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in + - JDK-8244520: problemlist java/awt/font/Rotate/RotatedFontTest.java on linux + - JDK-8244777: ClassLoaderStats VM Op uses constant hash value + - JDK-8244853: The static build of libextnet is missing the JNI_OnLoad_extnet function + - JDK-8244951: Missing entitlements for hardened runtime + - JDK-8245047: [PPC64] C2: ReverseBytes + Load always match to unordered Load (acquire semantics missing) + - JDK-8245649: Revert 8245397 backport of 8230591 + - JDK-8246031: SSLSocket.getSession() doesn't close connection for timeout/ interrupts + - JDK-8246613: Choose the default SecureRandom algo based on registration ordering + - JDK-8248505: Unexpected NoSuchAlgorithmException when using secure random impl from BCFIPS provider + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8244167: Removal of Comodo Root CA Certificate +================================================== +The following expired Comodo root CA certificate was removed from the `cacerts` keystore: + +alias name "addtrustclass1ca [jdk]" + +Distinguished Name: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE + +JDK-8244166: Removal of DocuSign Root CA Certificate +==================================================== +The following expired DocuSign root CA certificate was removed from the `cacerts` keystore: + +alias name "keynectisrootca [jdk]" + +Distinguished Name: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR + +security-libs/javax.crypto:pkcs11: + +JDK-8240191: Allow SunPKCS11 initialization with NSS when external FIPS modules are present in the Security Modules Database +============================================================================================================================ +The SunPKCS11 security provider can now be initialized with NSS when +FIPS-enabled external modules are configured in the Security Modules +Database (NSSDB). Prior to this change, the SunPKCS11 provider would +throw a RuntimeException with the message: "FIPS flag set for +non-internal module" when such a library was configured for NSS in +non-FIPS mode. + +This change allows the JDK to work properly with recent NSS releases +in GNU/Linux operating systems when the system-wide FIPS policy is +turned on. + +Further information can be found in JDK-8238555. + +security-libs/javax.net.ssl: + +JDK-8245077: Default SSLEngine Should Create in Server Role +=========================================================== +In JDK 11 and later, `javax.net.ssl.SSLEngine` by default used client +mode when handshaking. As a result, the set of default enabled +protocols may differ to what is expected. `SSLEngine` would usually be +used in server mode. From this JDK release onwards, `SSLEngine` will +default to server mode. The +`javax.net.ssl.SSLEngine.setUseClientMode(boolean mode)` method may +be used to configure the mode. + +JDK-8242147: New System Properties to Configure the TLS Signature Schemes +========================================================================= + +Two new System Properties are added to customize the TLS signature +schemes in JDK. `jdk.tls.client.SignatureSchemes` is added for TLS +client side, and `jdk.tls.server.SignatureSchemes` is added for server +side. + +Each System Property contains a comma-separated list of supported +signature scheme names specifying the signature schemes that could be +used for the TLS connections. + +The names are described in the "Signature Schemes" section of the +*Java Security Standard Algorithm Names Specification*. + +New in release OpenJDK 11.0.7 (2020-04-14): +=========================================== +Live versions of these release notes can be found at: + * https://bitly.com/oj1107 + * https://builds.shipilev.net/backports-monitor/release-notes-11.0.7.txt + +* Security fixes + - JDK-8223898, CVE-2020-2754: Forward references to Nashorn + - JDK-8223904, CVE-2020-2755: Improve Nashorn matching + - JDK-8224541, CVE-2020-2756: Better mapping of serial ENUMs + - JDK-8224549, CVE-2020-2757: Less Blocking Array Queues + - JDK-8225603: Enhancement for big integers + - JDK-8226346: Build better binary builders + - JDK-8227467: Better class method invocations + - JDK-8227542: Manifest improved jar headers + - JDK-8229733: TLS message handling improvements + - JDK-8231415, CVE-2020-2773: Better signatures in XML + - JDK-8231785: Improved socket permissions + - JDK-8232424, CVE-2020-2778: More constrained algorithms + - JDK-8232581, CVE-2020-2767: Improve TLS verification + - JDK-8233250: Better X11 rendering + - JDK-8233410: Better Build Scripting + - JDK-8234027: Better JCEKS key support + - JDK-8234408, CVE-2020-2781: Improve TLS session handling + - JDK-8234825, CVE-2020-2800: Better Headings for HTTP Servers + - JDK-8234841, CVE-2020-2803: Enhance buffering of byte buffers + - JDK-8235274, CVE-2020-2805: Enhance typing of methods + - JDK-8235691, CVE-2020-2816: Enhance TLS connectivity + - JDK-8236201, CVE-2020-2830: Better Scanner conversions + - JDK-8238960: linux-i586 builds are inconsistent as the newly build jdk is not able to reserve enough space for object heap +* Other changes + - JDK-4919790: Errors in alert ssl message does not reflect the actual certificate status + - JDK-4949105: Access Bridge lacks html tags parsing + - JDK-7092821: java.security.Provider.getService() is synchronized and became scalability bottleneck + - JDK-7143743: Potential memory leak with zip provider + - JDK-8005819: Support cross-realm MSSFU + - JDK-8042383: [TEST_BUG] Test javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java fails with shortcuts on menus do not work + - JDK-8068184: Fix for JDK-8032832 caused a deadlock + - JDK-8145845: [AOT] NullPointerException in compiler/whitebox/GetCodeHeapEntriesTest.java + - JDK-8152988: [AOT] Update test batch definitions to include aot-ed java.base module mode into hs-comp testing + - JDK-8160926: FLAGS_COMPILER_CHECK_ARGUMENTS doesn't handle cross-compilation + - JDK-8163083: SocketListeningConnector does not allow invocations with port 0 + - JDK-8163251: Hard coded loop limit prevents reading of smart card data greater than 8k + - JDK-8167276: jvmci/compilerToVM/MaterializeVirtualObjectTest.java fails with -XX:-EliminateAllocations + - JDK-8169718: nsk/jdb/locals/locals002: ERROR: Cannot find boolVar with expected value: false + - JDK-8176556: java/awt/dnd/ImageTransferTest/ImageTransferTest.java fails for JFIF + - JDK-8178798: Two compiler/aot/verification/vmflags tests fail by timeout with UseAVX=3 + - JDK-8183107: PKCS11 regression regarding checkKeySize + - JDK-8185005: Improve performance of ThreadMXBean.getThreadInfo(long ids[], int maxDepth) + - JDK-8189633: Missing -Xcheck:jni checking for DeleteWeakGlobalRef + - JDK-8189861: Refactor CacheFind + - JDK-8193042: NativeLookup::lookup_critical_entry() should only load shared library once + - JDK-8193596: java/net/DatagramPacket/ReuseBuf.java failed due to timeout + - JDK-8194944: Regression automated test 'open/test/jdk/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java' fails + - JDK-8196467: javax/swing/JInternalFrame/Test6325652.java fails + - JDK-8196969: JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE + - JDK-8198321: javax/swing/JEditorPane/5076514/bug5076514.java fails + - JDK-8198398: Test javax/swing/JColorChooser/Test6199676.java fails in mach5 + - JDK-8199072: Test javax/swing/GroupLayout/6613904/bug6613904.java is unstable + - JDK-8200432: javadoc fails with ClassCastException on {@link byte[]} + - JDK-8201349: build broken when configured with --with-zlib=bundled on gcc 7.3 + - JDK-8201355: Avoid native memory allocation in sun.security.mscapi.PRNG.generateSeed + - JDK-8201513: nsk/jvmti/IterateThroughHeap/filter-* are broken + - JDK-8203364: Some serviceability/sa/ tests intermittently fail with java.io.IOException: LingeredApp terminated with non-zero exit code 3 + - JDK-8203687: javax/net/ssl/compatibility/Compatibility.java supports TLS 1.3 + - JDK-8203904: javax/swing/JSplitPane/4816114/bug4816114.java: The divider location is wrong + - JDK-8203911: Test runtime/modules/getModuleJNI/GetModule fails with -Xcheck:jni + - JDK-8204525: [TESTBUG] runtime/NMT/MallocStressTest.java ran out of java heap + - JDK-8204529: gc/TestAllocateHeapAtMultiple.java fail with Agent 7 timed out + - JDK-8204551: Event descriptions are truncated in logs + - JDK-8206963: [AOT] bug with multiple class loaders + - JDK-8207367: 10 vmTestbase/nsk/jdi tests timed out when running with jtreg + - JDK-8207832: serviceability/sa/ClhsdbCDSCore.java failed with "Couldn't find core file location" + - JDK-8207938: At step6,Click Add button,case failed automatically. + - JDK-8208157: requires.VMProps throws NPE for missing properties in "release" file + - JDK-8208379: compiler/jvmci/events/JvmciNotifyInstallEventTest.java failed with "Got unexpected event count after 2nd install attempt: expected 9 to equal 2" + - JDK-8208658: Make CDS archived heap regions usable even if compressed oop encoding has changed + - JDK-8208715: Conversion of milliseconds to nanoseconds in UNIXProcess contains bug + - JDK-8209361: [AOT] Unexpected number of references for JVMTI_HEAP_REFERENCE_CONSTANT_POOL [111-->111]: 0 (expected at least 1) + - JDK-8209385: CDS runtime classpath checking is too strict when only classes from the system modules are archived + - JDK-8209389: SIGSEGV in WalkOopAndArchiveClosure::do_oop_work. + - JDK-8209418: Synchronize test/jdk/sanity/client/lib/jemmy with code-tools/jemmy/v2 + - JDK-8209494: Create a test for SwingSet InternalFrameDemo + - JDK-8209499: Create test for SwingSet EditorPaneDemo + - JDK-8209574: [AOT] breakpoint events are generated in different threads does not meet expected count + - JDK-8209686: cleanup arguments to PhaseIdealLoop() constructor + - JDK-8209789: Synchronize test/jdk/sanity/client/lib/jemmy with code-tools/jemmy/v2 + - JDK-8209802: Garbage collectors should register JFR types themselves to avoid build errors. + - JDK-8209807: improve handling exception in requires.VMProps + - JDK-8209817: stack is executable when building with Clang on Linux + - JDK-8209824: Improve the code coverage for ThreadLocal + - JDK-8209826: Undefined reference to os::write after JDK-8209657 (filemap.hpp cleanup) + - JDK-8209850: Allow NamedThreads to use GlobalCounter critical sections + - JDK-8209976: Improve iteration over non-JavaThreads + - JDK-8209993: Create a test for SwingSet3 ToolTipDemo + - JDK-8210024: JFR calls virtual is_Java_thread from ~Thread() + - JDK-8210052: Enable testing for all the available look and feels in SwingSet3 demo tests + - JDK-8210055: Enable different look and feel tests in SwingSet3 demo tests + - JDK-8210057: Enable different look and feels in SwingSet3 demo test InternalFrameDemoTest + - JDK-8210058: Algorithmic Italic font leans opposite angle in Printing + - JDK-8210220: [AOT] jdwp test cases are failing with error # ERROR: TEST FAILED: Cought IOException while receiving event packet + - JDK-8210289: ArchivedKlassSubGraphInfoRecord is incomplete + - JDK-8210459: Add support for generating compile_commands.json + - JDK-8210476: sun/security/mscapi/PrngSlow.java fails with Still too slow + - JDK-8210512: [Testbug] vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java fails with unexpected size of ClassLoaderReference.referringObjects + - JDK-8210523: runtime/appcds/cacheObject/DifferentHeapSizes.java crash + - JDK-8210632: Add key exchange algorithm to javax/net/ssl/TLSCommon/CipherSuite.java + - JDK-8210699: Problem list tests which times out in Xcomp mode + - JDK-8210793: [JVMCI] AllocateCompileIdTest.java failed to find DiagnosticCommand.class + - JDK-8210910: Create test for FileChooserDemo + - JDK-8210994: Create test for SwingSet3 FrameDemo + - JDK-8211139: Increase timeout value in all tests under jdk/sanity/client/SwingSet/src + - JDK-8211160: Handle different look and feels in JInternalFrameOperator + - JDK-8211211: vmTestbase/metaspace/stressDictionary/StressDictionary.java timeout + - JDK-8211322: Reduce the timeout of tooltip in SwingSet2DemoTest + - JDK-8211443: Enable different look and feels in SwingSet3 demo test SplitPaneDemoTest + - JDK-8211703: JInternalFrame : java.lang.AssertionError: cannot find the internal frame + - JDK-8211781: re-building fails after changing Graal sources + - JDK-8212897: Some improvements in the EditorPaneDemotest + - JDK-8212903: [TestBug] Tests test/jdk/javax/swing/LookAndFeel/8145547/DemandGTK2.sh and DemandGTK3.sh fail on Ubuntu 18.04 LTS + - JDK-8213009: Refactoring existing SunMSCAPI classes + - JDK-8213010: Supporting keys created with certmgr.exe + - JDK-8213168: Enable different look and feel tests in SwingSet3 demo test FileChooserDemoTest + - JDK-8213348: jdk.internal.vm.compiler.management service providers missing in module descriptor + - JDK-8213906: Update arm devkits with libXrandr headers + - JDK-8213908: AssertionError in DeferredAttr at setOverloadKind + - JDK-8214124: [TESTBUG] Bugs in runtime/NMT/MallocStressTest.java + - JDK-8214344: C2: assert(con.basic_type() != T_ILLEGAL) failed: elembt=byte; loadbt=void; unsigned=0 + - JDK-8214345: infinite recursion while checking super class + - JDK-8214471: Enable different look and feel tests in SwingSet3 demo test ToolTipDemoTest + - JDK-8214534: Setting of THIS_FILE in the build is broken + - JDK-8214557: Filter out VM flags which don't affect AOT code generation + - JDK-8214578: [macos] Problem with backslashes on macOS/JIS keyboard: Java ignores system settings + - JDK-8214840: runtime/NMT/MallocStressTest.java timed out + - JDK-8214850: Rename vm_operations.?pp files to vmOperations.?pp files + - JDK-8214904: Test8004741.java failed due to "Too few ThreadDeath hits; expected at least 6 but saw only 5" + - JDK-8215322: add @file support to jaotc + - JDK-8215355: Object monitor deadlock with no threads holding the monitor (using jemalloc 5.1) + - JDK-8215396: JTabbedPane preferred size calculation is wrong for SCROLL_TAB_LAYOUT + - JDK-8216180: [AOT] compiler/intrinsics/bigInteger/TestMulAdd.java crashed with AOT enabled + - JDK-8216353: Use utility APIs introduced in org/netbeans/jemmy/util/LookAndFeel class in client sanity test cases + - JDK-8216354: Syntax error in toolchain_windows.m4 + - JDK-8216472: (se) Stack overflow during selection operation leads to crash (win) + - JDK-8216535: tools/jimage/JImageExtractTest.java timed out + - JDK-8217235: Create automated test for SwingSet ColorChooserDemoTest + - JDK-8217297: Add support for multiple look and feel for SwingSet SliderDemoTest + - JDK-8217338: [Containers] Improve systemd slice memory limit support + - JDK-8217613: [AOT] TEST_OPTS_AOT_MODULES doesn't work on mac + - JDK-8217634: RunTest documentation and usability update + - JDK-8217717: ZGC: Broken oop map in C1 load barrier stub + - JDK-8217728: Speed up incremental rerun of "make hotspot" + - JDK-8218268: Javac treats Manifest Class-Path entries as Paths instead of URLs + - JDK-8218662: Allow 204 responses with Content-Length:0 + - JDK-8218882: NET_Writev is declared, NET_WriteV is defined + - JDK-8218889: Improperly use of the Optional API + - JDK-8219205: JFR file without license header + - JDK-8219597: (bf) Heap buffer state changes could provoke unexpected exceptions + - JDK-8219723: javax/net/ssl/compatibility/Compatibility.java failed on some SNI cases + - JDK-8220348: [ntintel] asserts about copying unaligned array + - JDK-8220451: jdi/EventQueue/remove/remove004 failed due to "ERROR: thread2 is not alive" + - JDK-8220456: jdi/EventQueue/remove_l/remove_l004 failed due to "TIMEOUT while waiting for event" + - JDK-8220479: java/nio/channels/Selector/SelectWithConsumer.java failed at testTwoChannels() + - JDK-8220613: java/util/Arrays/TimSortStackSize2.java times out with fastdebug build + - JDK-8220688: [TESTBUG] runtime/NMT/MallocStressTest.java timed out + - JDK-8220786: Create new switch to redirect error reporting output to stdout or stderr + - JDK-8221270: Duplicated synchronized keywords in SSLSocketImpl + - JDK-8221312: test/jdk/sanity/client/SwingSet/src/ColorChooserDemoTest.java failed + - JDK-8221851: Use of THIS_FILE in hotspot invalidates precompiled header on Linux/GCC + - JDK-8221885: Add intermittent test in the JavaSound to the ProblemList + - JDK-8222264: Windows incremental build is broken with JDK-8217728 + - JDK-8222391: javax/net/ssl/compatibility/Compatibility.java should be more flexible + - JDK-8222448: java/lang/reflect/PublicMethods/PublicMethodsTest.java times out + - JDK-8222519: ButtonDemoScreenshotTest fails randomly with "still state to be reached" + - JDK-8222741: jdi/EventQueue/remove/remove004 fails due to VMDisconnectedException + - JDK-8223003: SunMSCAPI keys are not cleaned up + - JDK-8223063: Support CNG RSA keys + - JDK-8223158: Docked MacBook cannot start any Java Swing applications + - JDK-8223260: NamingManager should cache InitialContextFactory + - JDK-8223464: Improve version string for Oracle CI builds + - JDK-8223558: Java does not render Myanmar script correctly + - JDK-8223627: jdk-13+20 bundle name contains null instead of ea + - JDK-8223638: Replace wildcard address with loopback or local host in tests - part 6 + - JDK-8223678: Add Visual Studio Code workspace generation support (for native code) + - JDK-8223727: com/sun/jndi/ldap/privconn/RunTest.java failed due to hang in LdapRequest.getReplyBer + - JDK-8223769: Assert triggers with -XX:+StressReflectiveCode + - JDK-8224187: Refactor arraycopy_prologue to allow ZGC read barriers on arraycopy + - JDK-8224475: JTextPane does not show images in HTML rendering + - JDK-8224673: Adjust permission for delayed starting of debugging + - JDK-8224705: Tests that need to be problem-listed or have printer resources + - JDK-8224778: test/jdk/demo/jfc/J2Ddemo/J2DdemoTest.java cannot find J2Ddemo.jar + - JDK-8224821: java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java fails linux-x64 + - JDK-8224830: test/jdk/java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.java fails on linux-x64 + - JDK-8224851: AArch64: fix warnings and errors with Clang and GCC 8.3 + - JDK-8224905: java/lang/ProcessBuilder/Basic.java#id1 failed with stream closed + - JDK-8225007: java/awt/print/PrinterJob/LandscapeStackOverflow.java may hang + - JDK-8225105: java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java fails in Windows 10 + - JDK-8225117: java/math/BigInteger/SymmetricRangeTests.java fails with ParseException + - JDK-8225128: Add exception for expiring DocuSign root to VerifyCACerts test + - JDK-8225130: Add exception for expiring Comodo roots to VerifyCACerts test + - JDK-8225144: [macos] In Aqua L&F backspace key does not delete when Shift is pressed + - JDK-8225180: SignedObject with invalid Key not throwing the InvalidKeyException in Windows + - JDK-8225182: JNI exception pending in DestroyXIMCallback of awt_InputMethod.c:1327 + - JDK-8225199: [Graal] compiler/jvmci/compilerToVM/IsMatureVsReprofileTest.java fails with -XX:CompileThresholdScaling=0.1 + - JDK-8225305: ProblemList java/lang/invoke/VarHandles tests + - JDK-8225350: compiler/jvmci/compilerToVM/IsCompilableTest.java timed out + - JDK-8225430: Replace wildcard address with loopback or local host in tests - part 14 + - JDK-8225435: Upgrade IANA Language Subtag Registry to the latest for JDK14 + - JDK-8225487: giflib legal file is missing attribution for openbsd-reallocarray.c + - JDK-8225567: Wrong file headers with 8202414 fix changeset + - JDK-8225684: [AOT] vmTestbase/vm/oom/production/AlwaysOOMProduction tests fail with AOTed java.base + - JDK-8225766: Curve in certificate should not affect signature scheme when using TLSv1.3 + - JDK-8225797: OldObjectSample event creates unexpected amount of checkpoint data + - JDK-8226381: ProblemList java/lang/reflect/PublicMethods/PublicMethodsTest.java + - JDK-8226406: JVM fails to detect mismatched or corrupt CDS archive + - JDK-8226608: Hide the onjcmd option from the help output + - JDK-8226892: ActionListeners on JRadioButtons don't get notified when selection is changed with arrow keys + - JDK-8227112: exclude compiler/intrinsics/sha/sanity tests from AOT runs + - JDK-8227324: Upgrade to freetype 2.10.1 + - JDK-8227528: TestAbortVMOnSafepointTimeout.java failed due to "RuntimeException: 'Safepoint sync time longer than' missing from stdout/stderr" + - JDK-8227645: Some tests in serviceability/sa run with fixed -Xmx values and risk running out of memory + - JDK-8227646: [TESTBUG] appcds/SharedArchiveConsistency timed out + - JDK-8227662: freetype seeks to index at the end of the font data + - JDK-8228479: Correct the format of ColorChooserDemoTest + - JDK-8228613: java.security.Provider#getServices order is no longer deterministic + - JDK-8228969: 2019-09-28 public suffix list update + - JDK-8229236: CriticalJNINatives: dll handling should be done in native thread state + - JDK-8229345: Memory leak due to vtable stubs not being shared on SPARC + - JDK-8229888: (zipfs) Updating an existing zip file does not preserve original permissions + - JDK-8229994: assert(false) failed: Bad graph detected in get_early_ctrl_for_expensive + - JDK-8230004: jdk/internal/jimage/JImageOpenTest.java runs no test + - JDK-8230235: Rendering HTML with empty img attribute and documentBaseKey cause Exception + - JDK-8230390: Problemlist SA tests with AOT + - JDK-8230400: Missing constant pool entry for a method in stacktrace + - JDK-8230459: Test failed to resume JVMCI CompilerThread + - JDK-8230480: check malloc/calloc results in java.desktop + - JDK-8230597: Update GIFlib library to the 5.2.1 + - JDK-8230611: infinite loop in LogOutputList::wait_until_no_readers() + - JDK-8230624: [TESTBUG] Problemlist JFR compiler/TestCodeSweeper.java + - JDK-8230677: Should disable Escape Analysis if JVMTI capability can_get_owned_monitor_info was taken + - JDK-8230926: [macosx] Two apostrophes are entered instead of one with "U.S. International - PC" layout + - JDK-8231025: Incorrect method tag offset for big endian platform + - JDK-8231081: TestMetadataRetention fails due to missing symbol id + - JDK-8231387: java.security.Provider.getService returns random result due to race condition with mutating methods in the same class + - JDK-8231430: C2: Memory stomp in max_array_length() for T_ILLEGAL type + - JDK-8231445: check ZALLOC return values in awt coding + - JDK-8231507: Update Apache Santuario (XML Signature) to version 2.1.4 + - JDK-8231584: Deadlock with ClassLoader.findLibrary and System.loadLibrary call + - JDK-8231753: use more Posix functionality in aix os::print_os_info + - JDK-8231810: javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java fails intermittently with "java.lang.Exception: Unexpected EOF" + - JDK-8232003: (fs) Files.write can leak file descriptor in the exception case + - JDK-8232056: GetOwnedMonitorInfoWithEATest.java fails with ZGC: Heap too small + - JDK-8232060: add some initializations using sigemptyset in os_aix.cpp + - JDK-8232154: Update Mesa 3-D Headers to version 19.2.1 + - JDK-8232167: Visual Studio install found through --with-tools-dir value is discarded + - JDK-8232170: FSInfo#getJarClassPath throws an exception not declared in its throws clause + - JDK-8232200: [macos 10.15] Windows in fullscreen tests jumps around the screen + - JDK-8232207: Linux os::available_memory re-reads cgroup configuration on every invocation + - JDK-8232224: [TESTBUG] problemlist JFR TestLargeRootSet.java + - JDK-8232370: Refactor some com.sun.jdi tests to enable IDE integration + - JDK-8232433: [macos 10.15] java/awt/Window/LocationAtScreenCorner/LocationAtScreenCorner.java may fail + - JDK-8232571: Add missing SIGINFO signal + - JDK-8232692: [TESTBUG] compiler/aot/fingerprint/SelfChangedCDS.java fails when cds is disabled + - JDK-8232713: Update BCEL version to 6.3.1 in license file + - JDK-8232806: Introduce a system property to disable eager lambda initialization + - JDK-8232834: RunTest sometimes fails to produce valid exitcode.txt + - JDK-8232880: Update test documentation with additional settings for client UI tooltip tests + - JDK-8232950: SUNPKCS11 Provider incorrectly check key length for PSS Signatures. + - JDK-8233018: Add a new test to verify that DatagramSocket is not interruptible + - JDK-8233019: java.lang.Class.isPrimitive() (C1) returns wrong result if Klass* is aligned to 32bit + - JDK-8233032: assert(in_bb(n)) failed: must be + - JDK-8233078: fix minimal VM build on Linux ppc64(le) + - JDK-8233328: fix minimal VM build on Linux s390x + - JDK-8233383: Various minor fixes + - JDK-8233466: aarch64: remove unnecessary load of mdo when profiling return and parameters type + - JDK-8233491: Crash in AdapterHandlerLibrary::get_adapter with CDS due to code cache exhaustion + - JDK-8233529: loopTransform.cpp:2984: Error: assert(p_f->Opcode() == Op_IfFalse) failed + - JDK-8233548: Update CUP to v0.11b + - JDK-8233649: Update ProblemList.txt to exclude failing headful tests on macos + - JDK-8233656: assert(d->is_CFG() && n->is_CFG()) failed: must have CFG nodes + - JDK-8233657: Intermittent NPE in Component.validate() + - JDK-8234288: Turkey Time Zone returns incorrect time zone name + - JDK-8234323: NULL-check return value of SurfaceData_InitOps on macosx + - JDK-8234339: replace JLI_StrTok in java_md_solinux.c + - JDK-8234340: Bump update version for OpenJDK: jdk-11.0.7 + - JDK-8234350: assert(mode == ControlAroundStripMined && (use == sfpt || !use->is_reachable_from_root())) failed: missed a node + - JDK-8234386: [macos] NPE was thrown at expanding Choice from maximized frame + - JDK-8234397: add OS uptime information to os::print_os_info output + - JDK-8234423: Modifying ArrayList.subList().subList() resets modCount of subList + - JDK-8234466: Class loading deadlock involving X509Factory#commitEvent() + - JDK-8234501: remove obsolete NET_ReadV + - JDK-8234525: enable link-time section-gc for linux s390x to remove unused code + - JDK-8234610: MaxVectorSize set wrongly when UseAVX=3 is specified after JDK-8221092 + - JDK-8234617: C1: Incorrect result of field load due to missing narrowing conversion + - JDK-8234723: javax/net/ssl/TLS tests support TLSv1.3 + - JDK-8234724: javax/net/ssl/templates/SSLSocketSSLEngineTemplate.java supports TLSv1.3 + - JDK-8234741: enhance os::get_core_path on macOS + - JDK-8234769: Duplicate attribution in freetype.md + - JDK-8234786: Fix for JDK-8214578 breaks OS X 10.12 compatibility + - JDK-8234809: set relro in linker flags when building with gcc + - JDK-8234824: java/nio/channels/SocketChannel/AdaptSocket.java fails on Windows 10 + - JDK-8235243: handle VS2017 15.9 and VS2019 in abstract_vm_version + - JDK-8235288: AVX 512 instructions inadvertently used on Xeon for small vector width operations + - JDK-8235325: build failure on Linux after 8235243 + - JDK-8235383: C1 compilation fails with -XX:+PrintIRDuringConstruction -XX:+Verbose + - JDK-8235489: handle return values of sscanf calls in hotspot + - JDK-8235509: Backport for JDK-8209657 Refactor filemap.hpp to simplify integration with Serviceability Agent. + - JDK-8235510: java.util.zip.CRC32 performance drop after 8200067 + - JDK-8235563: [TESTBUG] appcds/CommandLineFlagComboNegative.java does not handle archive mapping failure + - JDK-8235637: jhsdb jmap from OpenJDK 11.0.5 doesn't work if prelink is enabled + - JDK-8235671: enhance print_rlimit_info in os_posix + - JDK-8235744: PIT: test/jdk/javax/swing/text/html/TestJLabelWithHTMLText.java times out in linux-x64 + - JDK-8235904: Infinite loop when rendering huge lines + - JDK-8235998: [c2] Memory leaks during tracing after '8224193: stringStream should not use Resource Area'. + - JDK-8236039: JSSE Client does not accept status_request extension in CertificateRequest messages for TLS 1.3 + - JDK-8236140: assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it + - JDK-8236179: C1 register allocation error with T_ADDRESS + - JDK-8236488: Support for configure option --with-native-debug-symbols=internal is impossible on Windows + - JDK-8236500: Windows ucrt.dll should be looked up in versioned WINSDK subdirectory + - JDK-8236709: struct SwitchRange in HS violates C++ One Definition Rule + - JDK-8236848: [JDK 11u] make run-test-tier1 fails after backport of JDK-8232834 + - JDK-8236873: Worker has a deadlock bug + - JDK-8237217: Incorrect G1StringDedupEntry type used in StringDedupTable destructor + - JDK-8237368: Problem with NullPointerException in RMI TCPEndpoint.read + - JDK-8237375: SimpleThresholdPolicy misses CounterDecay timestamp initialization + - JDK-8237508: Simplify JarFile.isInitializing + - JDK-8237540: Missing files in backport of JDK-8210910 + - JDK-8237541: Missing files in backport of JDK-8236528 + - JDK-8237600: Test SunJSSEFIPSInit fails on Ubuntu + - JDK-8237819: s390x - remove unused pd_zero_to_words_large + - JDK-8237869: exclude jtreg test security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java because of instabilities + - JDK-8237879: make 4.3 breaks build + - JDK-8237945: CTW: C2 compilation fails with assert(just_allocated_object(alloc_ctl) == ptr) failed: most recent allo + - JDK-8238225: Issues reported after replacing symlink at Contents/MacOS/libjli.dylib with binary + - JDK-8238247: CTW runner should sweep nmethods more aggressively + - JDK-8238366: CTW runner closes standard output on exit + - JDK-8238438: SuperWord::co_locate_pack picks memory state of first instead of last load + - JDK-8238502: sunmscapi.dll causing EXCEPTION_ACCESS_VIOLATION + - JDK-8238534: Deep sign macOS bundles before bundle archive is being created + - JDK-8238591: CTW: Split applications/ctw/modules/jdk_localedata.java + - JDK-8238596: AVX enabled by default for Skylake even when unsupported + - JDK-8238811: C2: assert(i >= req() || i == 0 || is_Region() || is_Phi()) with -XX:+VerifyGraphEdges + - JDK-8239005: [TESTBUG] test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPages.java: exeinvoke.c: must initialize static state before calling do_overflow() + - JDK-8239466: Loss of precision in counter decay calculation in 11u backport of JDK-8237375 + - JDK-8239856: [ntintel] asserts about copying unaligned array element + - JDK-8240724: [test] jdk11 downport of 8224475 misses binary file test/jdk/javax/swing/JTextPane/arrow.png + - JDK-8241296: Segfault in JNIHandleBlock::oops_do() + +Notes on individual issues: +=========================== + +security-libs/javax.xml.crypto: + +JDK-8239467: Apache Santuario Library Updated to Version 2.1.4 +============================================================== +The Apache Santuario library has been upgraded to version 2.1.4. As a +result, a new system property +`com.sun.org.apache.xml.internal.security.parser.pool-size` has been +introduced. + +This new system property sets the pool size of the internal +`DocumentBuilder` cache used when processing XML Signatures. The +function is equivalent to the +`org.apache.xml.security.parser.pool-size` system property used in +Apache Santuario and has the same default value of 20. diff --git a/.local/bin/IPMIView/jre/bin/alt-java b/.local/bin/IPMIView/jre/bin/alt-java new file mode 100755 index 0000000..a91bd69 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/alt-java differ diff --git a/.local/bin/IPMIView/jre/bin/jaotc b/.local/bin/IPMIView/jre/bin/jaotc new file mode 100755 index 0000000..d9f620d Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/jaotc differ diff --git a/.local/bin/IPMIView/jre/bin/java b/.local/bin/IPMIView/jre/bin/java new file mode 100755 index 0000000..9d2a5f3 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/java differ diff --git a/.local/bin/IPMIView/jre/bin/jfr b/.local/bin/IPMIView/jre/bin/jfr new file mode 100755 index 0000000..983f769 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/jfr differ diff --git a/.local/bin/IPMIView/jre/bin/jjs b/.local/bin/IPMIView/jre/bin/jjs new file mode 100755 index 0000000..a89db4f Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/jjs differ diff --git a/.local/bin/IPMIView/jre/bin/jrunscript b/.local/bin/IPMIView/jre/bin/jrunscript new file mode 100755 index 0000000..e86a311 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/jrunscript differ diff --git a/.local/bin/IPMIView/jre/bin/keytool b/.local/bin/IPMIView/jre/bin/keytool new file mode 100755 index 0000000..03d51fd Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/keytool differ diff --git a/.local/bin/IPMIView/jre/bin/pack200 b/.local/bin/IPMIView/jre/bin/pack200 new file mode 100755 index 0000000..b29fcde Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/pack200 differ diff --git a/.local/bin/IPMIView/jre/bin/rmid b/.local/bin/IPMIView/jre/bin/rmid new file mode 100755 index 0000000..5398b32 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/rmid differ diff --git a/.local/bin/IPMIView/jre/bin/rmiregistry b/.local/bin/IPMIView/jre/bin/rmiregistry new file mode 100755 index 0000000..096d3a7 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/rmiregistry differ diff --git a/.local/bin/IPMIView/jre/bin/unpack200 b/.local/bin/IPMIView/jre/bin/unpack200 new file mode 100755 index 0000000..fddbe72 Binary files /dev/null and b/.local/bin/IPMIView/jre/bin/unpack200 differ diff --git a/.local/bin/IPMIView/jre/conf/logging.properties b/.local/bin/IPMIView/jre/conf/logging.properties new file mode 100755 index 0000000..58997e5 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/logging.properties @@ -0,0 +1,63 @@ +############################################################ +# Default Logging Configuration File +# +# You can use a different file by specifying a filename +# with the java.util.logging.config.file system property. +# For example java -Djava.util.logging.config.file=myfile +############################################################ + +############################################################ +# Global properties +############################################################ + +# "handlers" specifies a comma separated list of log Handler +# classes. These handlers will be installed during VM startup. +# Note that these classes must be on the system classpath. +# By default we only configure a ConsoleHandler, which will only +# show messages at the INFO and above levels. +handlers= java.util.logging.ConsoleHandler + +# To also add the FileHandler, use the following line instead. +#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +# Default global logging level. +# This specifies which kinds of events are logged across +# all loggers. For any given facility this global level +# can be overriden by a facility specific level +# Note that the ConsoleHandler also has a separate level +# setting to limit messages printed to the console. +.level= INFO + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# default file output is in user's home directory. +java.util.logging.FileHandler.pattern = %h/java%u.log +java.util.logging.FileHandler.limit = 50000 +java.util.logging.FileHandler.count = 1 +# Default number of locks FileHandler can obtain synchronously. +# This specifies maximum number of attempts to obtain lock file by FileHandler +# implemented by incrementing the unique field %u as per FileHandler API documentation. +java.util.logging.FileHandler.maxLocks = 100 +java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter + +# Limit the message that are printed on the console to INFO and above. +java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# Example to customize the SimpleFormatter output format +# to print one-line log message like this: +# : [] +# +# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +# For example, set the com.xyz.foo logger to only log SEVERE +# messages: +com.xyz.foo.level = SEVERE diff --git a/.local/bin/IPMIView/jre/conf/management/jmxremote.access b/.local/bin/IPMIView/jre/conf/management/jmxremote.access new file mode 100755 index 0000000..a09e008 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/management/jmxremote.access @@ -0,0 +1,79 @@ +###################################################################### +# Default Access Control File for Remote JMX(TM) Monitoring +###################################################################### +# +# Access control file for Remote JMX API access to monitoring. +# This file defines the allowed access for different roles. The +# password file (jmxremote.password by default) defines the roles and their +# passwords. To be functional, a role must have an entry in +# both the password and the access files. +# +# The default location of this file is $JRE/conf/management/jmxremote.access +# You can specify an alternate location by specifying a property in +# the management config file $JRE/conf/management/management.properties +# (See that file for details) +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# A typical access file has multiple lines, where each line is blank, +# a comment (like this one), or an access control entry. +# +# An access control entry consists of a role name, and an +# associated access level. The role name is any string that does not +# itself contain spaces or tabs. It corresponds to an entry in the +# password file (jmxremote.password). The access level is one of the +# following: +# "readonly" grants access to read attributes of MBeans. +# For monitoring, this means that a remote client in this +# role can read measurements but cannot perform any action +# that changes the environment of the running program. +# "readwrite" grants access to read and write attributes of MBeans, +# to invoke operations on them, and optionally +# to create or remove them. This access should be granted +# only to trusted clients, since they can potentially +# interfere with the smooth operation of a running program. +# +# The "readwrite" access level can optionally be followed by the "create" and/or +# "unregister" keywords. The "unregister" keyword grants access to unregister +# (delete) MBeans. The "create" keyword grants access to create MBeans of a +# particular class or of any class matching a particular pattern. Access +# should only be granted to create MBeans of known and trusted classes. +# +# For example, the following entry would grant readwrite access +# to "controlRole", as well as access to create MBeans of the class +# javax.management.monitor.CounterMonitor and to unregister any MBean: +# controlRole readwrite \ +# create javax.management.monitor.CounterMonitorMBean \ +# unregister +# or equivalently: +# controlRole readwrite unregister create javax.management.monitor.CounterMBean +# +# The following entry would grant readwrite access as well as access to create +# MBeans of any class in the packages javax.management.monitor and +# javax.management.timer: +# controlRole readwrite \ +# create javax.management.monitor.*,javax.management.timer.* \ +# unregister +# +# The \ character is defined in the Properties file syntax to allow continuation +# lines as shown here. A * in a class pattern matches a sequence of characters +# other than dot (.), so javax.management.monitor.* matches +# javax.management.monitor.CounterMonitor but not +# javax.management.monitor.foo.Bar. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last +# access entry is used. +# +# +# Default access control entries: +# o The "monitorRole" role has readonly access. +# o The "controlRole" role has readwrite access and can create the standard +# Timer and Monitor MBeans defined by the JMX API. + +monitorRole readonly +controlRole readwrite \ + create javax.management.monitor.*,javax.management.timer.* \ + unregister diff --git a/.local/bin/IPMIView/jre/conf/management/jmxremote.password.template b/.local/bin/IPMIView/jre/conf/management/jmxremote.password.template new file mode 100755 index 0000000..c98a0ad --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/management/jmxremote.password.template @@ -0,0 +1,115 @@ +# ---------------------------------------------------------------------- +# Template for jmxremote.password +# +# o Copy this template to jmxremote.password +# o Set the user/password entries in jmxremote.password +# o Change the permission of jmxremote.password to be accessible +# only by the owner. +# o The jmxremote.passwords file will be re-written by the server +# to replace all plain text passwords with hashed passwords when +# the file is read by the server. +# + +############################################################## +# Password File for Remote JMX Monitoring +############################################################## +# +# Password file for Remote JMX API access to monitoring. This +# file defines the different roles and their passwords. The access +# control file (jmxremote.access by default) defines the allowed +# access for each role. To be functional, a role must have an entry +# in both the password and the access files. +# +# Default location of this file is $JRE/conf/management/jmxremote.password +# You can specify an alternate location by specifying a property in +# the management config file $JRE/conf/management/management.properties +# or by specifying a system property (See that file for details). + +############################################################## +# File format of the jmxremote.password file +############################################################## +# +# The file contains multiple lines where each line is blank, +# a comment (like this one), or a password entry. +# +# password entry follows the below syntax +# role_name W [clearPassword|hashedPassword] +# +# role_name is any string that does not itself contain spaces or tabs. +# W = spaces or tabs +# +# Passwords can be specified via clear text or via a hash. Clear text password +# is any string that does not contain spaces or tabs. Hashed passwords must +# follow the below format. +# hashedPassword = base64_encoded_64_byte_salt W base64_encoded_hash W hash_algorithm +# where, +# base64_encoded_64_byte_salt = 64 byte random salt +# base64_encoded_hash = Hash_algorithm(password + salt) +# W = spaces or tabs +# hash_algorithm = Algorithm string specified using the format below +# https://docs.oracle.com/javase/9/docs/specs/security/standard-names.html#messagedigest-algorithms +# This is an optional field. If not specified, SHA3-512 will be assumed. +# +# If passwords are in clear, they will be overwritten by their hash if all of +# the below criteria are met. +# * com.sun.management.jmxremote.password.toHashes property is set to true in +# management.properties file +# * the password file is writable +# * the system security policy allows writing into the password file, if a +# security manager is configured +# +# In order to change the password for a role, replace the hashed password entry +# with a new clear text password or a new hashed password. If the new password +# is in clear, it will be replaced with its hash when a new login attempt is made. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last one +# is used. +# +# A user generated hashed password file can also be used instead of clear-text +# password file. If generated by the user, hashed passwords must follow the +# format specified above. +# +# Caution: It is recommended not to edit the password file while the +# agent is running, as edits could be lost if a client connection triggers the +# hashing of the password file at the same time that the file is externally modified. +# The integrity of the file is guaranteed, but any external edits made to the +# file during the short period between the time that the agent reads the file +# and the time that it writes it back might get lost + +############################################################## +# File permissions of the jmxremote.password file +############################################################## +# This file must be made accessible by ONLY the owner, +# otherwise the program will exit with an error. +# +# In a typical installation, this file can be accessed by anybody on the +# local machine, and possibly by people on other machines. +# For security, you should either restrict the access to this file except for owner, +# or specify another, less accessible file in the management config file +# as described above. +# +# In order to prevent inadverent edits to the password file in the +# production environment, it is recommended to deploy a read-only +# hashed password file. The hashed entries for clear passwords can be generated +# in advance by running the JMX agent. +# + +############################################################## +# Sample of the jmxremote.password file +############################################################## +# Following are two commented-out entries. The "monitorRole" role has +# password "QED". The "controlRole" role has password "R&D". This is an example +# of specifying passwords in the clear +# +# monitorRole QED +# controlRole R&D +# +# Once a login attempt is made, passwords will be hashed and the file will have +# below entries with clear passwords overwritten by their respective +# SHA3-512 hash +# +# monitorRole trilby APzBTt34rV2l+OMbuvbnOQ4si8UZmfRCVbIY1+fAofV5CkQzXS/FDMGteQQk/R3q1wtt104qImzJEA7gCwl6dw== 4EeTdSJ7X6Imu0Mb+dWqIns7a7QPIBoM3NB/XlpMQSPSicE7PnlALVWn2pBY3Q3pGDHyAb32Hd8GUToQbUhAjA== SHA3-512 +# controlRole roHEJSbRqSSTII4Z4+NOCV2OJaZVQ/dw153Fy2u4ILDP9XiZ426GwzCzc3RtpoqNMwqYIcfdd74xWXSMrWtGaA== w9qDsekgKn0WOVJycDyU0kLBa081zbStcCjUAVEqlfon5Sgx7XHtaodbmzpLegA1jT7Ag36T0zHaEWRHJe2fdA== SHA3-512 +# \ No newline at end of file diff --git a/.local/bin/IPMIView/jre/conf/management/management.properties b/.local/bin/IPMIView/jre/conf/management/management.properties new file mode 100755 index 0000000..0c14bd6 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/management/management.properties @@ -0,0 +1,302 @@ +##################################################################### +# Default Configuration File for Java Platform Management +##################################################################### +# +# The Management Configuration file (in java.util.Properties format) +# will be read if one of the following system properties is set: +# -Dcom.sun.management.jmxremote.port= +# or -Dcom.sun.management.config.file= +# +# The default Management Configuration file is: +# +# $JRE/conf/management/management.properties +# +# Another location for the Management Configuration File can be specified +# by the following property on the Java command line: +# +# -Dcom.sun.management.config.file= +# +# If -Dcom.sun.management.config.file= is set, the port +# number for the management agent can be specified in the config file +# using the following lines: +# +# ################ Management Agent Port ######################### +# +# For setting the JMX RMI agent port use the following line +# com.sun.management.jmxremote.port= +# + +##################################################################### +# Optional Instrumentation +##################################################################### +# +# By default only the basic instrumentation with low overhead is on. +# The following properties allow to selectively turn on optional +# instrumentation which are off by default and may have some +# additional overhead. +# +# com.sun.management.enableThreadContentionMonitoring +# +# This option enables thread contention monitoring if the +# Java virtual machine supports such instrumentation. +# Refer to the specification for the java.lang.management.ThreadMBean +# interface - see isThreadContentionMonitoringSupported() method. +# + +# To enable thread contention monitoring, uncomment the following line +# com.sun.management.enableThreadContentionMonitoring + +##################################################################### +# RMI Management Properties +##################################################################### +# +# If system property -Dcom.sun.management.jmxremote.port= +# is set then +# - A MBean server is started +# - JRE Platform MBeans are registered in the MBean server +# - RMI connector is published in a private readonly registry at +# specified port using a well known name, "jmxrmi" +# - the following properties are read for JMX remote management. +# +# The configuration can be specified only at startup time. +# Later changes to above system property (e.g. via setProperty method), +# this config file, the password file, or the access file have no effect to the +# running MBean server, the connector, or the registry. +# + +# +# ########## RMI connector settings for local management ########## +# +# com.sun.management.jmxremote.local.only=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as true then the local JMX RMI connector +# server will only accept connection requests from clients running on +# the host where the out-of-the-box JMX management agent is running. +# In order to ensure backwards compatibility this property could be +# set to false. However, deploying the local management agent in this +# way is discouraged because the local JMX RMI connector server will +# accept connection requests from any client either local or remote. +# For remote management the remote JMX RMI connector server should +# be used instead with authentication and SSL/TLS encryption enabled. +# + +# For allowing the local management agent accept local +# and remote connection requests use the following line +# com.sun.management.jmxremote.local.only=false + +# +# ###################### RMI SSL ############################# +# +# com.sun.management.jmxremote.ssl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then SSL is not used. +# + +# For RMI monitoring without SSL use the following line +# com.sun.management.jmxremote.ssl=false + +# com.sun.management.jmxremote.ssl.config.file=filepath +# Specifies the location of the SSL configuration file. A properties +# file can be used to supply the keystore and truststore location and +# password settings thus avoiding to pass them as cleartext in the +# command-line. +# +# The current implementation of the out-of-the-box management agent will +# look up and use the properties specified below to configure the SSL +# keystore and truststore, if present: +# javax.net.ssl.keyStore= +# javax.net.ssl.keyStorePassword= +# javax.net.ssl.trustStore= +# javax.net.ssl.trustStorePassword= +# Any other properties in the file will be ignored. This will allow us +# to extend the property set in the future if required by the default +# SSL implementation. +# +# If the property "com.sun.management.jmxremote.ssl" is set to false, +# then this property is ignored. +# + +# For supplying the keystore settings in a file use the following line +# com.sun.management.jmxremote.ssl.config.file=filepath + +# com.sun.management.jmxremote.ssl.enabled.cipher.suites= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS cipher suites to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS cipher suites are enabled +# for use by accepted connections. If this property is not specified then +# the SSL/TLS RMI Server Socket Factory uses the SSL/TLS cipher suites that +# are enabled by default. +# + +# com.sun.management.jmxremote.ssl.enabled.protocols= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS protocol versions to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS protocol versions are +# enabled for use by accepted connections. If this property is not +# specified then the SSL/TLS RMI Server Socket Factory uses the SSL/TLS +# protocol versions that are enabled by default. +# + +# com.sun.management.jmxremote.ssl.need.client.auth=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true in conjunction with the previous +# property "com.sun.management.jmxremote.ssl" then the SSL/TLS RMI Server +# Socket Factory will require client authentication. +# + +# For RMI monitoring with SSL client authentication use the following line +# com.sun.management.jmxremote.ssl.need.client.auth=true + +# com.sun.management.jmxremote.registry.ssl=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true then the RMI registry used +# to bind the RMIServer remote object is protected with SSL/TLS +# RMI Socket Factories that can be configured with the properties: +# com.sun.management.jmxremote.ssl.config.file +# com.sun.management.jmxremote.ssl.enabled.cipher.suites +# com.sun.management.jmxremote.ssl.enabled.protocols +# com.sun.management.jmxremote.ssl.need.client.auth +# If the two properties below are true at the same time, i.e. +# com.sun.management.jmxremote.ssl=true +# com.sun.management.jmxremote.registry.ssl=true +# then the RMIServer remote object and the RMI registry are +# both exported with the same SSL/TLS RMI Socket Factories. +# + +# For using an SSL/TLS protected RMI registry use the following line +# com.sun.management.jmxremote.registry.ssl=true + +# +# ################ RMI User authentication ################ +# +# com.sun.management.jmxremote.authenticate=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then no authentication is +# performed and all users are allowed all access. +# + +# For RMI monitoring without any checking use the following line +# com.sun.management.jmxremote.authenticate=false + +# +# ################ RMI Login configuration ################### +# +# com.sun.management.jmxremote.login.config= +# Specifies the name of a JAAS login configuration entry to use when +# authenticating users of RMI monitoring. +# +# Setting this property is optional - the default login configuration +# specifies a file-based authentication that uses the password file. +# +# When using this property to override the default login configuration +# then the named configuration entry must be in a file that gets loaded +# by JAAS. In addition, the login module(s) specified in the configuration +# should use the name and/or password callbacks to acquire the user's +# credentials. See the NameCallback and PasswordCallback classes in the +# javax.security.auth.callback package for more details. +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# + +# For a non-default login configuration use the following line +# com.sun.management.jmxremote.login.config= + +# +# ################ RMI Password file location ################## +# +# com.sun.management.jmxremote.password.file=filepath +# Specifies location for password file +# This is optional - default location is +# $JRE/conf/management/jmxremote.password +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise the password file must exist and be in the valid format. +# If the password file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.password.file=filepath + +# +# ################# Hash passwords in password file ############## +# com.sun.management.jmxremote.password.toHashes = true|false +# Default for this property is true. +# Specifies if passwords in the password file should be hashed or not. +# If this property is true, and if the password file is writable, and if the +# system security policy allows writing into the password file, +# all the clear passwords in the password file will be replaced by +# their SHA3-512 hash when the file is read by the server +# + +# +# ################ RMI Access file location ##################### +# +# com.sun.management.jmxremote.access.file=filepath +# Specifies location for access file +# This is optional - default location is +# $JRE/conf/management/jmxremote.access +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise, the access file must exist and be in the valid format. +# If the access file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.access.file=filepath +# + +# ################ Management agent listen interface ######################### +# +# com.sun.management.jmxremote.host= +# Specifies the local interface on which the JMX RMI agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# + +# ################ Filter for ObjectInputStream ############################# +# com.sun.management.jmxremote.serial.filter.pattern= +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization of parameters sent to the JMX default agent to validate the +# contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining pattern +# is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern contains "/", the non-empty prefix up to the "/" is the module name; +# if the module name matches the module name of the class then +# the remaining pattern is matched with the class name. +# If there is no "/", the module name is not compared. +# If the pattern ends with ".**" it matches any class in the package and all subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. diff --git a/.local/bin/IPMIView/jre/conf/net.properties b/.local/bin/IPMIView/jre/conf/net.properties new file mode 100755 index 0000000..6bc00e4 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/net.properties @@ -0,0 +1,139 @@ +############################################################ +# Default Networking Configuration File +# +# This file may contain default values for the networking system properties. +# These values are only used when the system properties are not specified +# on the command line or set programmatically. +# For now, only the various proxy settings can be configured here. +############################################################ + +# Whether or not the DefaultProxySelector will default to System Proxy +# settings when they do exist. +# Set it to 'true' to enable this feature and check for platform +# specific proxy settings +# Note that the system properties that do explicitly set proxies +# (like http.proxyHost) do take precedence over the system settings +# even if java.net.useSystemProxies is set to true. + +java.net.useSystemProxies=false + +#------------------------------------------------------------------------ +# Proxy configuration for the various protocol handlers. +# DO NOT uncomment these lines if you have set java.net.useSystemProxies +# to true as the protocol specific properties will take precedence over +# system settings. +#------------------------------------------------------------------------ + +# HTTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# http.proxyHost= +# http.proxyPort=80 +http.nonProxyHosts=localhost|127.*|[::1] +# +# HTTPS Proxy Settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. +# +# https.proxyHost= +# https.proxyPort=443 +# +# FTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# ftp.proxyHost= +# ftp.proxyPort=80 +ftp.nonProxyHosts=localhost|127.*|[::1] +# +# Gopher Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) +# +# gopher.proxyHost= +# gopher.proxyPort=80 +# +# Socks proxy settings. socksProxyHost is the name of the proxy server +# (e.g. socks.domain.com), socksProxyPort is the port number to use +# (default value is 1080) +# +# socksProxyHost= +# socksProxyPort=1080 +# +# HTTP Keep Alive settings. remainingData is the maximum amount of data +# in kilobytes that will be cleaned off the underlying socket so that it +# can be reused (default value is 512K), queuedConnections is the maximum +# number of Keep Alive connections to be on the queue for clean up (default +# value is 10). +# http.KeepAlive.remainingData=512 +# http.KeepAlive.queuedConnections=10 + +# Authentication Scheme restrictions for HTTP and HTTPS. +# +# In some environments certain authentication schemes may be undesirable +# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the +# cleartext transmission of the user's password over the physical network. +# This section describes the mechanism for disabling authentication schemes +# based on the scheme name. Disabled schemes will be treated as if they are not +# supported by the implementation. +# +# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication +# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. +# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication +# schemes that will be disabled when proxying HTTP. +# +# In both cases the property is a comma-separated list of, case-insensitive, +# authentication scheme names, as defined by their relevant RFCs. An +# implementation may, but is not required to, support common schemes whose names +# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that +# is not known, or not supported, by the implementation is ignored. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +#jdk.http.auth.proxying.disabledSchemes= +jdk.http.auth.tunneling.disabledSchemes=Basic + +# +# Allow restricted HTTP request headers +# +# By default, the following request headers are not allowed to be set by user code +# in HttpRequests: "connection", "content-length", "expect", "host" and "upgrade". +# The 'jdk.httpclient.allowRestrictedHeaders' property allows one or more of these +# headers to be specified as a comma separated list to override the default restriction. +# The names are case-insensitive and white-space is ignored (removed before processing +# the list). Note, this capability is mostly intended for testing and isn't expected +# to be used in real deployments. Protocol errors or other undefined behavior is likely +# to occur when using them. The property is not set by default. +# Note also, that there may be other headers that are restricted from being set +# depending on the context. This includes the "Authorization" header when the +# relevant HttpClient has an authenticator set. These restrictions cannot be +# overridden by this property. +# +# jdk.httpclient.allowRestrictedHeaders=host +# +# +# Transparent NTLM HTTP authentication mode on Windows. Transparent authentication +# can be used for the NTLM scheme, where the security credentials based on the +# currently logged in user's name and password can be obtained directly from the +# operating system, without prompting the user. This property has three possible +# values which regulate the behavior as shown below. Other unrecognized values +# are handled the same as 'disabled'. Note, that NTLM is not considered to be a +# strongly secure authentication scheme and care should be taken before enabling +# this mechanism. +# +# Transparent authentication never used. +#jdk.http.ntlm.transparentAuth=disabled +# +# Enabled for all hosts. +#jdk.http.ntlm.transparentAuth=allHosts +# +# Enabled for hosts that are trusted in Windows Internet settings +#jdk.http.ntlm.transparentAuth=trustedHosts +# +jdk.http.ntlm.transparentAuth=disabled diff --git a/.local/bin/IPMIView/jre/conf/security/java.policy b/.local/bin/IPMIView/jre/conf/security/java.policy new file mode 100755 index 0000000..1554541 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/java.policy @@ -0,0 +1,44 @@ +// +// This system policy file grants a set of default permissions to all domains +// and can be configured to grant additional permissions to modules and other +// code sources. The code source URL scheme for modules linked into a +// run-time image is "jrt". +// +// For example, to grant permission to read the "foo" property to the module +// "com.greetings", the grant entry is: +// +// grant codeBase "jrt:/com.greetings" { +// permission java.util.PropertyPermission "foo", "read"; +// }; +// + +// default permissions granted to all domains +grant { + // allows anyone to listen on dynamic ports + permission java.net.SocketPermission "localhost:0", "listen"; + + // "standard" properies that can be read by anyone + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + permission java.util.PropertyPermission + "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + permission java.util.PropertyPermission + "java.vm.specification.version", "read"; + permission java.util.PropertyPermission + "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission + "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; +}; diff --git a/.local/bin/IPMIView/jre/conf/security/java.security b/.local/bin/IPMIView/jre/conf/security/java.security new file mode 100755 index 0000000..d40b4e3 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/java.security @@ -0,0 +1,1382 @@ +# +# This is the "master security properties file". +# +# An alternate java.security properties file may be specified +# from the command line via the system property +# +# -Djava.security.properties= +# +# This properties file appends to the master security properties file. +# If both properties files specify values for the same key, the value +# from the command-line properties file is selected, as it is the last +# one loaded. +# +# Also, if you specify +# +# -Djava.security.properties== (2 equals), +# +# then that properties file completely overrides the master security +# properties file. +# +# To disable the ability to specify an additional properties file from +# the command line, set the key security.overridePropertiesFile +# to false in the master security properties file. It is set to true +# by default. + +# In this file, various security properties are set for use by +# java.security classes. This is where users can statically register +# Cryptography Package Providers ("providers" for short). The term +# "provider" refers to a package or set of packages that supply a +# concrete implementation of a subset of the cryptography aspects of +# the Java Security API. A provider may, for example, implement one or +# more digital signature algorithms or message digest algorithms. +# +# Each provider must implement a subclass of the Provider class. +# To register a provider in this master security properties file, +# specify the provider and priority in the format +# +# security.provider.= +# +# This declares a provider, and specifies its preference +# order n. The preference order is the order in which providers are +# searched for requested algorithms (when no specific provider is +# requested). The order is 1-based; 1 is the most preferred, followed +# by 2, and so on. +# +# must specify the name of the Provider as passed to its super +# class java.security.Provider constructor. This is for providers loaded +# through the ServiceLoader mechanism. +# +# must specify the subclass of the Provider class whose +# constructor sets the values of various properties that are required +# for the Java Security API to look up the algorithms or other +# facilities implemented by the provider. This is for providers loaded +# through classpath. +# +# Note: Providers can be dynamically registered instead by calls to +# either the addProvider or insertProviderAt method in the Security +# class. + +# +# List of providers and their preference orders (see above): +# +security.provider.1=SUN +security.provider.2=SunRsaSign +security.provider.3=SunEC +security.provider.4=SunJSSE +security.provider.5=SunJCE +security.provider.6=SunJGSS +security.provider.7=SunSASL +security.provider.8=XMLDSig +security.provider.9=SunPCSC +security.provider.10=JdkLDAP +security.provider.11=JdkSASL +security.provider.12=SunPKCS11 +#security.provider.1=SunPKCS11 ${java.home}/lib/security/nss.cfg + +# +# Security providers used when FIPS mode support is active +# +fips.provider.1=SunPKCS11 ${java.home}/conf/security/nss.fips.cfg +fips.provider.2=SUN +fips.provider.3=SunEC +fips.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS-FIPS + +# +# A list of preferred providers for specific algorithms. These providers will +# be searched for matching algorithms before the list of registered providers. +# Entries containing errors (parsing, etc) will be ignored. Use the +# -Djava.security.debug=jca property to debug these errors. +# +# The property is a comma-separated list of serviceType.algorithm:provider +# entries. The serviceType (example: "MessageDigest") is optional, and if +# not specified, the algorithm applies to all service types that support it. +# The algorithm is the standard algorithm name or transformation. +# Transformations can be specified in their full standard name +# (ex: AES/CBC/PKCS5Padding), or as partial matches (ex: AES, AES/CBC). +# The provider is the name of the provider. Any provider that does not +# also appear in the registered list will be ignored. +# +# There is a special serviceType for this property only to group a set of +# algorithms together. The type is "Group" and is followed by an algorithm +# keyword. Groups are to simplify and lessen the entries on the property +# line. Current groups are: +# Group.SHA2 = SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 +# Group.HmacSHA2 = HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512 +# Group.SHA2RSA = SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA +# Group.SHA2DSA = SHA224withDSA, SHA256withDSA, SHA384withDSA, SHA512withDSA +# Group.SHA2ECDSA = SHA224withECDSA, SHA256withECDSA, SHA384withECDSA, \ +# SHA512withECDSA +# Group.SHA3 = SHA3-224, SHA3-256, SHA3-384, SHA3-512 +# Group.HmacSHA3 = HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512 +# +# Example: +# jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \ +# MessageDigest.SHA-256:SUN, Group.HmacSHA2:SunJCE +# +#jdk.security.provider.preferred= + + +# +# Sun Provider SecureRandom seed source. +# +# Select the primary source of seed data for the "NativePRNG", "SHA1PRNG" +# and "DRBG" SecureRandom implementations in the "Sun" provider. +# (Other SecureRandom implementations might also use this property.) +# +# On Unix-like systems (for example, Solaris/Linux/MacOS), the +# "NativePRNG", "SHA1PRNG" and "DRBG" implementations obtains seed data from +# special device files such as file:/dev/random. +# +# On Windows systems, specifying the URLs "file:/dev/random" or +# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding +# mechanism for SHA1PRNG and DRBG. +# +# By default, an attempt is made to use the entropy gathering device +# specified by the "securerandom.source" Security property. If an +# exception occurs while accessing the specified URL: +# +# NativePRNG: +# a default value of /dev/random will be used. If neither +# are available, the implementation will be disabled. +# "file" is the only currently supported protocol type. +# +# SHA1PRNG and DRBG: +# the traditional system/thread activity algorithm will be used. +# +# The entropy gathering device can also be specified with the System +# property "java.security.egd". For example: +# +# % java -Djava.security.egd=file:/dev/random MainClass +# +# Specifying this System property will override the +# "securerandom.source" Security property. +# +# In addition, if "file:/dev/random" or "file:/dev/urandom" is +# specified, the "NativePRNG" implementation will be more preferred than +# DRBG and SHA1PRNG in the Sun provider. +# +securerandom.source=file:/dev/random + +# +# A list of known strong SecureRandom implementations. +# +# To help guide applications in selecting a suitable strong +# java.security.SecureRandom implementation, Java distributions should +# indicate a list of known strong implementations using the property. +# +# This is a comma-separated list of algorithm and/or algorithm:provider +# entries. +# +securerandom.strongAlgorithms=NativePRNGBlocking:SUN,DRBG:SUN + +# +# Sun provider DRBG configuration and default instantiation request. +# +# NIST SP 800-90Ar1 lists several DRBG mechanisms. Each can be configured +# with a DRBG algorithm name, and can be instantiated with a security strength, +# prediction resistance support, etc. This property defines the configuration +# and the default instantiation request of "DRBG" SecureRandom implementations +# in the SUN provider. (Other DRBG implementations can also use this property.) +# Applications can request different instantiation parameters like security +# strength, capability, personalization string using one of the +# getInstance(...,SecureRandomParameters,...) methods with a +# DrbgParameters.Instantiation argument, but other settings such as the +# mechanism and DRBG algorithm names are not currently configurable by any API. +# +# Please note that the SUN implementation of DRBG always supports reseeding. +# +# The value of this property is a comma-separated list of all configurable +# aspects. The aspects can appear in any order but the same aspect can only +# appear at most once. Its BNF-style definition is: +# +# Value: +# aspect { "," aspect } +# +# aspect: +# mech_name | algorithm_name | strength | capability | df +# +# // The DRBG mechanism to use. Default "Hash_DRBG" +# mech_name: +# "Hash_DRBG" | "HMAC_DRBG" | "CTR_DRBG" +# +# // The DRBG algorithm name. The "SHA-***" names are for Hash_DRBG and +# // HMAC_DRBG, default "SHA-256". The "AES-***" names are for CTR_DRBG, +# // default "AES-128" when using the limited cryptographic or "AES-256" +# // when using the unlimited. +# algorithm_name: +# "SHA-224" | "SHA-512/224" | "SHA-256" | +# "SHA-512/256" | "SHA-384" | "SHA-512" | +# "AES-128" | "AES-192" | "AES-256" +# +# // Security strength requested. Default "128" +# strength: +# "112" | "128" | "192" | "256" +# +# // Prediction resistance and reseeding request. Default "none" +# // "pr_and_reseed" - Both prediction resistance and reseeding +# // support requested +# // "reseed_only" - Only reseeding support requested +# // "none" - Neither prediction resistance not reseeding +# // support requested +# pr: +# "pr_and_reseed" | "reseed_only" | "none" +# +# // Whether a derivation function should be used. only applicable +# // to CTR_DRBG. Default "use_df" +# df: +# "use_df" | "no_df" +# +# Examples, +# securerandom.drbg.config=Hash_DRBG,SHA-224,112,none +# securerandom.drbg.config=CTR_DRBG,AES-256,192,pr_and_reseed,use_df +# +# The default value is an empty string, which is equivalent to +# securerandom.drbg.config=Hash_DRBG,SHA-256,128,none +# +securerandom.drbg.config= + +# +# Class to instantiate as the javax.security.auth.login.Configuration +# provider. +# +login.configuration.provider=sun.security.provider.ConfigFile + +# +# Default login configuration file +# +#login.config.url.1=file:${user.home}/.java.login.config + +# +# Class to instantiate as the system Policy. This is the name of the class +# that will be used as the Policy object. The system class loader is used to +# locate this class. +# +policy.provider=sun.security.provider.PolicyFile + +# The default is to have a single system-wide policy file, +# and a policy file in the user's home directory. +# +policy.url.1=file:${java.home}/conf/security/java.policy +policy.url.2=file:${user.home}/.java.policy + +# whether or not we expand properties in the policy file +# if this is set to false, properties (${...}) will not be expanded in policy +# files. +# +policy.expandProperties=true + +# whether or not we allow an extra policy to be passed on the command line +# with -Djava.security.policy=somefile. Comment out this line to disable +# this feature. +# +policy.allowSystemProperty=true + +# whether or not we look into the IdentityScope for trusted Identities +# when encountering a 1.1 signed JAR file. If the identity is found +# and is trusted, we grant it AllPermission. Note: the default policy +# provider (sun.security.provider.PolicyFile) does not support this property. +# +policy.ignoreIdentityScope=false + +# +# Default keystore type. +# +keystore.type=pkcs12 + +# +# Default keystore type used when global crypto-policies are set to FIPS. +# +fips.keystore.type=PKCS11 + +# +# Controls compatibility mode for JKS and PKCS12 keystore types. +# +# When set to 'true', both JKS and PKCS12 keystore types support loading +# keystore files in either JKS or PKCS12 format. When set to 'false' the +# JKS keystore type supports loading only JKS keystore files and the PKCS12 +# keystore type supports loading only PKCS12 keystore files. +# +keystore.type.compat=true + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when passed to the +# SecurityManager::checkPackageAccess method unless the corresponding +# RuntimePermission("accessClassInPackage."+package) has been granted. +# +package.access=sun.misc.,\ + sun.reflect. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when passed to the +# SecurityManager::checkPackageDefinition method unless the corresponding +# RuntimePermission("defineClassInPackage."+package) has been granted. +# +# By default, none of the class loaders supplied with the JDK call +# checkPackageDefinition. +# +package.definition=sun.misc.,\ + sun.reflect. + +# +# Determines whether this properties file can be appended to +# or overridden on the command line via -Djava.security.properties +# +security.overridePropertiesFile=true + +# +# Determines whether this properties file will be appended to +# using the system properties file stored at +# /etc/crypto-policies/back-ends/java.config +# +security.useSystemPropertiesFile=false + +# +# Determines the default key and trust manager factory algorithms for +# the javax.net.ssl package. +# +ssl.KeyManagerFactory.algorithm=SunX509 +ssl.TrustManagerFactory.algorithm=PKIX + +# +# The Java-level namelookup cache policy for successful lookups: +# +# any negative value: caching forever +# any positive value: the number of seconds to cache an address for +# zero: do not cache +# +# default value is forever (FOREVER). For security reasons, this +# caching is made forever when a security manager is set. When a security +# manager is not set, the default behavior in this implementation +# is to cache for 30 seconds. +# +# NOTE: setting this to anything other than the default value can have +# serious security implications. Do not set it unless +# you are sure you are not exposed to DNS spoofing attack. +# +#networkaddress.cache.ttl=-1 + +# The Java-level namelookup cache policy for failed lookups: +# +# any negative value: cache forever +# any positive value: the number of seconds to cache negative lookup results +# zero: do not cache +# +# In some Microsoft Windows networking environments that employ +# the WINS name service in addition to DNS, name service lookups +# that fail may take a noticeably long time to return (approx. 5 seconds). +# For this reason the default caching policy is to maintain these +# results for 10 seconds. +# +networkaddress.cache.negative.ttl=10 + +# +# Properties to configure OCSP for certificate revocation checking +# + +# Enable OCSP +# +# By default, OCSP is not used for certificate revocation checking. +# This property enables the use of OCSP when set to the value "true". +# +# NOTE: SocketPermission is required to connect to an OCSP responder. +# +# Example, +# ocsp.enable=true + +# +# Location of the OCSP responder +# +# By default, the location of the OCSP responder is determined implicitly +# from the certificate being validated. This property explicitly specifies +# the location of the OCSP responder. The property is used when the +# Authority Information Access extension (defined in RFC 5280) is absent +# from the certificate or when it requires overriding. +# +# Example, +# ocsp.responderURL=http://ocsp.example.net:80 + +# +# Subject name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. In cases where +# the subject name alone is not sufficient to uniquely identify the certificate +# then both the "ocsp.responderCertIssuerName" and +# "ocsp.responderCertSerialNumber" properties must be used instead. When this +# property is set then those two properties are ignored. +# +# Example, +# ocsp.responderCertSubjectName=CN=OCSP Responder, O=XYZ Corp + +# +# Issuer name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. When this +# property is set then the "ocsp.responderCertSerialNumber" property must also +# be set. When the "ocsp.responderCertSubjectName" property is set then this +# property is ignored. +# +# Example, +# ocsp.responderCertIssuerName=CN=Enterprise CA, O=XYZ Corp + +# +# Serial number of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# of hexadecimal digits (colon or space separators may be present) which +# identifies a certificate in the set of certificates supplied during cert path +# validation. When this property is set then the "ocsp.responderCertIssuerName" +# property must also be set. When the "ocsp.responderCertSubjectName" property +# is set then this property is ignored. +# +# Example, +# ocsp.responderCertSerialNumber=2A:FF:00 + +# +# Policy for failed Kerberos KDC lookups: +# +# When a KDC is unavailable (network error, service failure, etc), it is +# put inside a secondary list and accessed less often for future requests. The +# value (case-insensitive) for this policy can be: +# +# tryLast +# KDCs in the secondary list are always tried after those not on the list. +# +# tryLess[:max_retries,timeout] +# KDCs in the secondary list are still tried by their order in the +# configuration, but with smaller max_retries and timeout values. +# max_retries and timeout are optional numerical parameters (default 1 and +# 5000, which means once and 5 seconds). Please note that if any of the +# values defined here are more than what is defined in krb5.conf, it will be +# ignored. +# +# Whenever a KDC is detected as available, it is removed from the secondary +# list. The secondary list is reset when krb5.conf is reloaded. You can add +# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is +# reloaded whenever a JAAS authentication is attempted. +# +# Example, +# krb5.kdc.bad.policy = tryLast +# krb5.kdc.bad.policy = tryLess:2,2000 +# +krb5.kdc.bad.policy = tryLast + +# +# Kerberos cross-realm referrals (RFC 6806) +# +# OpenJDK's Kerberos client supports cross-realm referrals as defined in +# RFC 6806. This allows to setup more dynamic environments in which clients +# do not need to know in advance how to reach the realm of a target principal +# (either a user or service). +# +# When a client issues an AS or a TGS request, the "canonicalize" option +# is set to announce support of this feature. A KDC server may fulfill the +# request or reply referring the client to a different one. If referred, +# the client will issue a new request and the cycle repeats. +# +# In addition to referrals, the "canonicalize" option allows the KDC server +# to change the client name in response to an AS request. For security reasons, +# RFC 6806 (section 11) FAST scheme is enforced. +# +# Disable Kerberos cross-realm referrals. Value may be overwritten with a +# System property (-Dsun.security.krb5.disableReferrals). +sun.security.krb5.disableReferrals=false + +# Maximum number of AS or TGS referrals to avoid infinite loops. Value may +# be overwritten with a System property (-Dsun.security.krb5.maxReferrals). +sun.security.krb5.maxReferrals=5 + +# +# This property contains a list of disabled EC Named Curves that can be included +# in the jdk.[tls|certpath|jar].disabledAlgorithms properties. To include this +# list in any of the disabledAlgorithms properties, add the property name as +# an entry. +jdk.disabled.namedCurves = secp256k1 + +# +# Algorithm restrictions for certification path (CertPath) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# for certification path building and validation. For example, "MD2" is +# generally no longer considered to be a secure hash algorithm. This section +# describes the mechanism for disabling algorithms based on algorithm name +# and/or key length. This includes algorithms used in certificates, as well +# as revocation information such as CRLs and signed OCSP Responses. +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } | IncludeProperty +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | CAConstraint | DenyAfterConstraint | +# UsageConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# CAConstraint: +# jdkCA +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# +# IncludeProperty: +# include +# +# The "AlgorithmName" is the standard algorithm name of the disabled +# algorithm. See the Java Security Standard Algorithm Names Specification +# for information about Standard Algorithm Names. Matching is +# performed using a case-insensitive sub-element matching rule. (For +# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and +# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a +# sub-element of the certificate algorithm name, the algorithm will be +# rejected during certification path building and validation. For example, +# the assertion algorithm name "DSA" will disable all certificate algorithms +# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion +# will not disable algorithms related to "ECDSA". +# +# The "IncludeProperty" allows a implementation-defined security property that +# can be included in the disabledAlgorithms properties. These properties are +# to help manage common actions easier across multiple disabledAlgorithm +# properties. +# There is one defined security property: jdk.disabled.namedCurves +# See the property for more specific details. +# +# +# A "Constraint" defines restrictions on the keys and/or certificates for +# a specified AlgorithmName: +# +# KeySizeConstraint: +# keySize Operator KeyLength +# The constraint requires a key of a valid size range if the +# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates +# the key size specified in number of bits. For example, +# "RSA keySize <= 1024" indicates that any RSA key with key size less +# than or equal to 1024 bits should be disabled, and +# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key +# with key size less than 1024 or greater than 2048 should be disabled. +# This constraint is only used on algorithms that have a key size. +# +# CAConstraint: +# jdkCA +# This constraint prohibits the specified algorithm only if the +# algorithm is used in a certificate chain that terminates at a marked +# trust anchor in the lib/security/cacerts keystore. If the jdkCA +# constraint is not set, then all chains using the specified algorithm +# are restricted. jdkCA may only be used once in a DisabledAlgorithm +# expression. +# Example: To apply this constraint to SHA-1 certificates, include +# the following: "SHA1 jdkCA" +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# This constraint prohibits a certificate with the specified algorithm +# from being used after the date regardless of the certificate's +# validity. JAR files that are signed and timestamped before the +# constraint date with certificates containing the disabled algorithm +# will not be restricted. The date is processed in the UTC timezone. +# This constraint can only be used once in a DisabledAlgorithm +# expression. +# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, +# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# This constraint prohibits the specified algorithm for +# a specified usage. This should be used when disabling an algorithm +# for all usages is not practical. 'TLSServer' restricts the algorithm +# in TLS server certificate chains when server authentication is +# performed. 'TLSClient' restricts the algorithm in TLS client +# certificate chains when client authentication is performed. +# 'SignedJAR' constrains use of certificates in signed jar files. +# The usage type follows the keyword and more than one usage type can +# be specified with a whitespace delimiter. +# Example: "SHA1 usage TLSServer TLSClient" +# +# When an algorithm must satisfy more than one constraint, it must be +# delimited by an ampersand '&'. For example, to restrict certificates in a +# chain that terminate at a distribution provided trust anchor and contain +# RSA keys that are less than or equal to 1024 bits, add the following +# constraint: "RSA keySize <= 1024 & jdkCA". +# +# All DisabledAlgorithms expressions are processed in the order defined in the +# property. This requires lower keysize constraints to be specified +# before larger keysize constraints of the same algorithm. For example: +# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by Oracle's PKIX implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 +# +# + +#jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ +# RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \ +# SHA1 usage SignedJAR & denyAfter 2019-01-01, \ +# include jdk.disabled.namedCurves +jdk.certpath.disabledAlgorithms= + +# +# Legacy algorithms for certification path (CertPath) processing and +# signed JAR files. +# +# In some environments, a certain algorithm or key length may be undesirable +# but is not yet disabled. +# +# Tools such as keytool and jarsigner may emit warnings when these legacy +# algorithms are used. See the man pages for those tools for more information. +# +# The syntax is the same as the "jdk.certpath.disabledAlgorithms" and +# "jdk.jar.disabledAlgorithms" security properties. +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. + +jdk.security.legacyAlgorithms=SHA1, \ + RSA keySize < 2048, DSA keySize < 2048 + +# +# Algorithm restrictions for signed JAR files +# +# In some environments, certain algorithms or key lengths may be undesirable +# for signed JAR validation. For example, "MD2" is generally no longer +# considered to be a secure hash algorithm. This section describes the +# mechanism for disabling algorithms based on algorithm name and/or key length. +# JARs signed with any of the disabled algorithms or key sizes will be treated +# as unsigned. +# +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | DenyAfterConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. +# +# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. +# + +jdk.jar.disabledAlgorithms= +#jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ +# DSA keySize < 1024, SHA1 denyAfter 2019-01-01, \ +# include jdk.disabled.namedCurves + +# +# Algorithm restrictions for Secure Socket Layer/Transport Layer Security +# (SSL/TLS/DTLS) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# when using SSL/TLS/DTLS. This section describes the mechanism for disabling +# algorithms during SSL/TLS/DTLS security parameters negotiation, including +# protocol version negotiation, cipher suites selection, named groups +# selection, signature schemes selection, peer authentication and key +# exchange mechanisms. +# +# Disabled algorithms will not be negotiated for SSL/TLS connections, even +# if they are enabled explicitly in an application. +# +# For PKI-based peer authentication and key exchange mechanisms, this list +# of disabled algorithms will also be checked during certification path +# building and validation, including algorithms used in certificates, as +# well as revocation information such as CRLs and signed OCSP Responses. +# This is in addition to the jdk.certpath.disabledAlgorithms property above. +# +# See the specification of "jdk.certpath.disabledAlgorithms" for the +# syntax of the disabled algorithm string. +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \ +# rsa_pkcs1_sha1 +#jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ +# DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ +# include jdk.disabled.namedCurves +jdk.tls.disabledAlgorithms= + +# +# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) +# processing in JSSE implementation. +# +# In some environments, a certain algorithm may be undesirable but it +# cannot be disabled because of its use in legacy applications. Legacy +# algorithms may still be supported, but applications should not use them +# as the security strength of legacy algorithms are usually not strong enough +# in practice. +# +# During SSL/TLS security parameters negotiation, legacy algorithms will +# not be negotiated unless there are no other candidates. +# +# The syntax of the legacy algorithms string is described as this Java +# BNF-style: +# LegacyAlgorithms: +# " LegacyAlgorithm { , LegacyAlgorithm } " +# +# LegacyAlgorithm: +# AlgorithmName (standard JSSE algorithm name) +# +# See the specification of security property "jdk.certpath.disabledAlgorithms" +# for the syntax and description of the "AlgorithmName" notation. +# +# Per SSL/TLS specifications, cipher suites have the form: +# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# or +# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# +# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the +# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC +# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest +# algorithm for HMAC. +# +# The LegacyAlgorithm can be one of the following standard algorithm names: +# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA +# 2. JSSE key exchange algorithm name, e.g., RSA +# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC +# 4. JSSE message digest algorithm name, e.g., SHA +# +# See SSL/TLS specifications and the Java Security Standard Algorithm Names +# Specification for information about the algorithm names. +# +# Note: If a legacy algorithm is also restricted through the +# jdk.tls.disabledAlgorithms property or the +# java.security.AlgorithmConstraints API (See +# javax.net.ssl.SSLParameters.setAlgorithmConstraints()), +# then the algorithm is completely disabled and will not be negotiated. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# There is no guarantee the property will continue to exist or be of the +# same syntax in future releases. +# +# Example: +# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 +# +jdk.tls.legacyAlgorithms= \ + K_NULL, C_NULL, M_NULL, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC, \ + 3DES_EDE_CBC + +# +# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) +# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. +# +# In traditional SSL/TLS/DTLS connections where finite field DHE parameters +# negotiation mechanism is not used, the server offers the client group +# parameters, base generator g and prime modulus p, for DHE key exchange. +# It is recommended to use dynamic group parameters. This property defines +# a mechanism that allows you to specify custom group parameters. +# +# The syntax of this property string is described as this Java BNF-style: +# DefaultDHEParameters: +# DefinedDHEParameters { , DefinedDHEParameters } +# +# DefinedDHEParameters: +# "{" DHEPrimeModulus , DHEBaseGenerator "}" +# +# DHEPrimeModulus: +# HexadecimalDigits +# +# DHEBaseGenerator: +# HexadecimalDigits +# +# HexadecimalDigits: +# HexadecimalDigit { HexadecimalDigit } +# +# HexadecimalDigit: one of +# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f +# +# Whitespace characters are ignored. +# +# The "DefinedDHEParameters" defines the custom group parameters, prime +# modulus p and base generator g, for a particular size of prime modulus p. +# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the +# "DHEBaseGenerator" defines the hexadecimal base generator g of a group +# parameter. It is recommended to use safe primes for the custom group +# parameters. +# +# If this property is not defined or the value is empty, the underlying JSSE +# provider's default group parameter is used for each connection. +# +# If the property value does not follow the grammar, or a particular group +# parameter is not valid, the connection will fall back and use the +# underlying JSSE provider's default group parameter. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.server.defaultDHEParameters= +# { \ +# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ +# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ +# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ +# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ +# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ +# FFFFFFFF FFFFFFFF, 2} + +# +# TLS key limits on symmetric cryptographic algorithms +# +# This security property sets limits on algorithms key usage in TLS 1.3. +# When the amount of data encrypted exceeds the algorithm value listed below, +# a KeyUpdate message will trigger a key change. This is for symmetric ciphers +# with TLS 1.3 only. +# +# The syntax for the property is described below: +# KeyLimits: +# " KeyLimit { , KeyLimit } " +# +# WeakKeyLimit: +# AlgorithmName Action Length +# +# AlgorithmName: +# A full algorithm transformation. +# +# Action: +# KeyUpdate +# +# Length: +# The amount of encrypted data in a session before the Action occurs +# This value may be an integer value in bytes, or as a power of two, 2^29. +# +# KeyUpdate: +# The TLS 1.3 KeyUpdate handshake process begins when the Length amount +# is fulfilled. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37 + +# +# Cryptographic Jurisdiction Policy defaults +# +# Import and export control rules on cryptographic software vary from +# country to country. By default, Java provides two different sets of +# cryptographic policy files[1]: +# +# unlimited: These policy files contain no restrictions on cryptographic +# strengths or algorithms +# +# limited: These policy files contain more restricted cryptographic +# strengths +# +# The default setting is determined by the value of the "crypto.policy" +# Security property below. If your country or usage requires the +# traditional restrictive policy, the "limited" Java cryptographic +# policy is still available and may be appropriate for your environment. +# +# If you have restrictions that do not fit either use case mentioned +# above, Java provides the capability to customize these policy files. +# The "crypto.policy" security property points to a subdirectory +# within /conf/security/policy/ which can be customized. +# Please see the /conf/security/policy/README.txt file or consult +# the Java Security Guide/JCA documentation for more information. +# +# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +# TO DETERMINE THE EXACT REQUIREMENTS. +# +# [1] Please note that the JCE for Java SE, including the JCE framework, +# cryptographic policy files, and standard JCE providers provided with +# the Java SE, have been reviewed and approved for export as mass market +# encryption item by the US Bureau of Industry and Security. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +crypto.policy=unlimited + +# +# The policy for the XML Signature secure validation mode. The mode is +# enabled by setting the property "org.jcp.xml.dsig.secureValidation" to +# true with the javax.xml.crypto.XMLCryptoContext.setProperty() method, +# or by running the code with a SecurityManager. +# +# Policy: +# Constraint {"," Constraint } +# Constraint: +# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | +# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint +# AlgConstraint +# "disallowAlg" Uri +# MaxTransformsConstraint: +# "maxTransforms" Integer +# MaxReferencesConstraint: +# "maxReferences" Integer +# ReferenceUriSchemeConstraint: +# "disallowReferenceUriSchemes" String { String } +# KeySizeConstraint: +# "minKeySize" KeyAlg Integer +# OtherConstraint: +# "noDuplicateIds" | "noRetrievalMethodLoops" +# +# For AlgConstraint, Uri is the algorithm URI String that is not allowed. +# See the XML Signature Recommendation for more information on algorithm +# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm +# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, +# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is +# specified more than once, only the last entry is enforced. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.xml.dsig.secureValidationPolicy=\ + disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ + maxTransforms 5,\ + maxReferences 30,\ + disallowReferenceUriSchemes file http https,\ + minKeySize RSA 1024,\ + minKeySize DSA 1024,\ + minKeySize EC 224,\ + noDuplicateIds,\ + noRetrievalMethodLoops + +# +# Serialization process-wide filter +# +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization to check the contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If the system property jdk.serialFilter is also specified on the command +# line, it supersedes the security property value defined here. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the +# sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the +# element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining +# pattern is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern contains "/", the non-empty prefix up to the "/" is the +# module name; +# if the module name matches the module name of the class then +# the remaining pattern is matched with the class name. +# If there is no "/", the module name is not compared. +# If the pattern ends with ".**" it matches any class in the package and all +# subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a +# prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. +# +#jdk.serialFilter=pattern;pattern + +# +# RMI Registry Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI Registry or to decrease limits but not +# to increase limits. +# If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected. +# +# Each non-array type is allowed or rejected if it matches one of the patterns, +# evaluated from left to right, and is otherwise allowed. Arrays of any +# component type, including subarrays and arrays of primitives, are allowed. +# +# Array construction of any component type, including subarrays and arrays of +# primitives, are allowed unless the length is greater than the maxarray limit. +# The filter is applied to each array element. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# The built-in filter allows subclasses of allowed classes and +# can approximately be represented as the pattern: +# +#sun.rmi.registry.registryFilter=\ +# maxarray=1000000;\ +# maxdepth=20;\ +# java.lang.String;\ +# java.lang.Number;\ +# java.lang.reflect.Proxy;\ +# java.rmi.Remote;\ +# sun.rmi.server.UnicastRef;\ +# sun.rmi.server.RMIClientSocketFactory;\ +# sun.rmi.server.RMIServerSocketFactory;\ +# java.rmi.activation.ActivationID;\ +# java.rmi.server.UID +# +# RMI Distributed Garbage Collector (DGC) Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI DGC. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# The builtin DGC filter can approximately be represented as the filter pattern: +# +#sun.rmi.transport.dgcFilter=\ +# java.rmi.server.ObjID;\ +# java.rmi.server.UID;\ +# java.rmi.dgc.VMID;\ +# java.rmi.dgc.Lease;\ +# maxdepth=5;maxarray=10000 + +# CORBA ORBIorTypeCheckRegistryFilter +# Type check enhancement for ORB::string_to_object processing +# +# An IOR type check filter, if configured, is used by an ORB during +# an ORB::string_to_object invocation to check the veracity of the type encoded +# in the ior string. +# +# The filter pattern consists of a semi-colon separated list of class names. +# The configured list contains the binary class names of the IDL interface types +# corresponding to the IDL stub class to be instantiated. +# As such, a filter specifies a list of IDL stub classes that will be +# allowed by an ORB when an ORB::string_to_object is invoked. +# It is used to specify a white list configuration of acceptable +# IDL stub types which may be contained in a stringified IOR +# parameter passed as input to an ORB::string_to_object method. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +#com.sun.CORBA.ORBIorTypeCheckRegistryFilter=binary_class_name;binary_class_name + +# The iteration count used for password-based encryption (PBE) in JCEKS +# keystores. Values in the range 10000 to 5000000 are considered valid. +# If the value is out of this range, or is not a number, or is unspecified; +# a default of 200000 is used. +# +# If the system property jdk.jceks.iterationCount is also specified, it +# supersedes the security property value defined here. +# +#jdk.jceks.iterationCount = 200000 + +# +# JCEKS Encrypted Key Serial Filter +# +# This filter, if configured, is used by the JCEKS KeyStore during the +# deserialization of the encrypted Key object stored inside a key entry. +# If not configured or the filter result is UNDECIDED (i.e. none of the patterns +# matches), the filter configured by jdk.serialFilter will be consulted. +# +# If the system property jceks.key.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# The filter pattern uses the same format as jdk.serialFilter. The default +# pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type, +# and javax.crypto.spec.SecretKeySpec and rejects all the others. +jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\ + java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!* + +# +# PKCS12 KeyStore properties +# +# The following properties, if configured, are used by the PKCS12 KeyStore +# implementation during the creation of a new keystore. Several of the +# properties may also be used when modifying an existing keystore. The +# properties can be overridden by a KeyStore API that specifies its own +# algorithms and parameters. +# +# If an existing PKCS12 keystore is loaded and then stored, the algorithm and +# parameter used to generate the existing Mac will be reused. If the existing +# keystore does not have a Mac, no Mac will be created while storing. If there +# is at least one certificate in the existing keystore, the algorithm and +# parameters used to encrypt the last certificate in the existing keystore will +# be reused to encrypt all certificates while storing. If the last certificate +# in the existing keystore is not encrypted, all certificates will be stored +# unencrypted. If there is no certificate in the existing keystore, any newly +# added certificate will be encrypted (or stored unencrypted if algorithm +# value is "NONE") using the "keystore.pkcs12.certProtectionAlgorithm" and +# "keystore.pkcs12.certPbeIterationCount" values defined here. Existing private +# and secret key(s) are not changed. Newly set private and secret key(s) will +# be encrypted using the "keystore.pkcs12.keyProtectionAlgorithm" and +# "keystore.pkcs12.keyPbeIterationCount" values defined here. +# +# In order to apply new algorithms and parameters to all entries in an +# existing keystore, one can create a new keystore and add entries in the +# existing keystore into the new keystore. This can be achieved by calling the +# "keytool -importkeystore" command. +# +# If a system property of the same name is also specified, it supersedes the +# security property value defined here. +# +# If the property is set to an illegal value, +# an iteration count that is not a positive integer, or an unknown algorithm +# name, an exception will be thrown when the property is used. +# If the property is not set or empty, a default value will be used. +# +# Note: These properties are currently used by the JDK Reference implementation. +# They are not guaranteed to be examined and used by other implementations. + +# The algorithm used to encrypt a certificate. This can be any non-Hmac PBE +# algorithm defined in the Cipher section of the Java Security Standard +# Algorithm Names Specification. When set to "NONE", the certificate +# is not encrypted. The default value is "PBEWithHmacSHA256AndAES_256". +#keystore.pkcs12.certProtectionAlgorithm = PBEWithHmacSHA256AndAES_256 + +# The iteration count used by the PBE algorithm when encrypting a certificate. +# This value must be a positive integer. The default value is 10000. +#keystore.pkcs12.certPbeIterationCount = 10000 + +# The algorithm used to encrypt a private key or secret key. This can be +# any non-Hmac PBE algorithm defined in the Cipher section of the Java +# Security Standard Algorithm Names Specification. The value must not be "NONE". +# The default value is "PBEWithHmacSHA256AndAES_256". +#keystore.pkcs12.keyProtectionAlgorithm = PBEWithHmacSHA256AndAES_256 + +# The iteration count used by the PBE algorithm when encrypting a private key +# or a secret key. This value must be a positive integer. The default value +# is 10000. +#keystore.pkcs12.keyPbeIterationCount = 10000 + +# The algorithm used to calculate the optional MacData at the end of a PKCS12 +# file. This can be any HmacPBE algorithm defined in the Mac section of the +# Java Security Standard Algorithm Names Specification. When set to "NONE", +# no Mac is generated. The default value is "HmacPBESHA256". +#keystore.pkcs12.macAlgorithm = HmacPBESHA256 + +# The iteration count used by the MacData algorithm. This value must be a +# positive integer. The default value is 10000. +#keystore.pkcs12.macIterationCount = 10000 + +# +# Enhanced exception message information +# +# By default, exception messages should not include potentially sensitive +# information such as file names, host names, or port numbers. This property +# accepts one or more comma separated values, each of which represents a +# category of enhanced exception message information to enable. Values are +# case-insensitive. Leading and trailing whitespaces, surrounding each value, +# are ignored. Unknown values are ignored. +# +# NOTE: Use caution before setting this property. Setting this property +# exposes sensitive information in Exceptions, which could, for example, +# propagate to untrusted code or be emitted in stack traces that are +# inadvertently disclosed and made accessible over a public network. +# +# The categories are: +# +# hostInfo - IOExceptions thrown by java.net.Socket and the socket types in the +# java.nio.channels package will contain enhanced exception +# message information +# +# The property setting in this file can be overridden by a system property of +# the same name, with the same syntax and possible values. +# +#jdk.includeInExceptions=hostInfo + +# +# Disabled mechanisms for the Simple Authentication and Security Layer (SASL) +# +# Disabled mechanisms will not be negotiated by both SASL clients and servers. +# These mechanisms will be ignored if they are specified in the "mechanisms" +# argument of "Sasl.createSaslClient" or the "mechanism" argument of +# "Sasl.createSaslServer". +# +# The value of this property is a comma-separated list of SASL mechanisms. +# The mechanisms are case-sensitive. Whitespaces around the commas are ignored. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.sasl.disabledMechanisms=PLAIN, CRAM-MD5, DIGEST-MD5 +jdk.sasl.disabledMechanisms= + +# +# Policies for distrusting Certificate Authorities (CAs). +# +# This is a comma separated value of one or more case-sensitive strings, each +# of which represents a policy for determining if a CA should be distrusted. +# The supported values are: +# +# SYMANTEC_TLS : Distrust TLS Server certificates anchored by a Symantec +# root CA and issued after April 16, 2019 unless issued by one of the +# following subordinate CAs which have a later distrust date: +# 1. Apple IST CA 2 - G1, SHA-256 fingerprint: +# AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B +# Distrust after December 31, 2019. +# 2. Apple IST CA 8 - G1, SHA-256 fingerprint: +# A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED +# Distrust after December 31, 2019. +# +# Leading and trailing whitespace surrounding each value are ignored. +# Unknown values are ignored. If the property is commented out or set to the +# empty String, no policies are enforced. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be supported by other SE implementations. Also, this +# property does not override other security properties which can restrict +# certificates such as jdk.tls.disabledAlgorithms or +# jdk.certpath.disabledAlgorithms; those restrictions are still enforced even +# if this property is not enabled. +# +jdk.security.caDistrustPolicies=SYMANTEC_TLS + +# +# FilePermission path canonicalization +# +# This security property dictates how the path argument is processed and stored +# while constructing a FilePermission object. If the value is set to true, the +# path argument is canonicalized and FilePermission methods (such as implies, +# equals, and hashCode) are implemented based on this canonicalized result. +# Otherwise, the path argument is not canonicalized and FilePermission methods are +# implemented based on the original input. See the implementation note of the +# FilePermission class for more details. +# +# If a system property of the same name is also specified, it supersedes the +# security property value defined here. +# +# The default value for this property is false. +# +jdk.io.permissionsUseCanonicalPath=false + + +# +# Policies for the proxy_impersonator Kerberos ccache configuration entry +# +# The proxy_impersonator ccache configuration entry indicates that the ccache +# is a synthetic delegated credential for use with S4U2Proxy by an intermediate +# server. The ccache file should also contain the TGT of this server and +# an evidence ticket from the default principal of the ccache to this server. +# +# This security property determines how Java uses this configuration entry. +# There are 3 possible values: +# +# no-impersonate - Ignore this configuration entry, and always act as +# the owner of the TGT (if it exists). +# +# try-impersonate - Try impersonation when this configuration entry exists. +# If no matching TGT or evidence ticket is found, +# fallback to no-impersonate. +# +# always-impersonate - Always impersonate when this configuration entry exists. +# If no matching TGT or evidence ticket is found, +# no initial credential is read from the ccache. +# +# The default value is "always-impersonate". +# +# If a system property of the same name is also specified, it supersedes the +# security property value defined here. +# +#jdk.security.krb5.default.initiate.credential=always-impersonate + +# +# Trust Anchor Certificates - CA Basic Constraint check +# +# X.509 v3 certificates used as Trust Anchors (to validate signed code or TLS +# connections) must have the cA Basic Constraint field set to 'true'. Also, if +# they include a Key Usage extension, the keyCertSign bit must be set. These +# checks, enabled by default, can be disabled for backward-compatibility +# purposes with the jdk.security.allowNonCaAnchor System and Security +# properties. In the case that both properties are simultaneously set, the +# System value prevails. The default value of the property is "false". +# +#jdk.security.allowNonCaAnchor=true + +# JNDI Object Factories Filter +# +# This filter is used by the JNDI runtime to control the set of object factory classes +# which will be allowed to instantiate objects from object references returned by +# naming/directory systems. The factory class named by the reference instance will be +# matched against this filter. The filter property supports pattern-based filter syntax +# with the same format as jdk.serialFilter. +# +# Each pattern is matched against the factory class name to allow or disallow it's +# instantiation. The access to a factory class is allowed unless the filter returns +# REJECTED. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# If the system property jdk.jndi.object.factoriesFilter is also specified, it supersedes +# the security property value defined here. The default value of the property is "*". +# +# The default pattern value allows any object factory class specified by the reference +# instance to recreate the referenced object. +#jdk.jndi.object.factoriesFilter=* + +# +# The default Character set name (java.nio.charset.Charset.forName()) +# for converting TLS ALPN values between byte arrays and Strings. +# Prior versions of the JDK may use UTF-8 as the default charset. If +# you experience interoperability issues, setting this property to UTF-8 +# may help. +# +# jdk.tls.alpnCharset=UTF-8 +jdk.tls.alpnCharset=ISO_8859_1 diff --git a/.local/bin/IPMIView/jre/conf/security/nss.cfg b/.local/bin/IPMIView/jre/conf/security/nss.cfg new file mode 100755 index 0000000..6aa09f2 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/nss.cfg @@ -0,0 +1,5 @@ +name = NSS +nssLibraryDirectory = /usr/lib64 +nssDbMode = noDb +attributes = compatibility +handleStartupErrors = ignoreMultipleInitialisation diff --git a/.local/bin/IPMIView/jre/conf/security/nss.fips.cfg b/.local/bin/IPMIView/jre/conf/security/nss.fips.cfg new file mode 100755 index 0000000..51085b9 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/nss.fips.cfg @@ -0,0 +1,8 @@ +name = NSS-FIPS +nssLibraryDirectory = /usr/lib64 +nssSecmodDirectory = sql:/etc/pki/nssdb +nssDbMode = readOnly +nssModule = fips + +attributes(*,CKO_SECRET_KEY,CKK_GENERIC_SECRET)={ CKA_SIGN=true } + diff --git a/.local/bin/IPMIView/jre/conf/security/policy/README.txt b/.local/bin/IPMIView/jre/conf/security/policy/README.txt new file mode 100755 index 0000000..fdf77d3 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/README.txt @@ -0,0 +1,54 @@ + + Java(TM) Cryptography Extension Policy Files + for the Java(TM) Platform, Standard Edition Runtime Environment + + README +------------------------------------------------------------------------ + +Import and export control rules on cryptographic software vary from +country to country. The Java Cryptography Extension (JCE) architecture +allows flexible cryptographic key strength to be configured via the +jurisdiction policy files which are referenced by the "crypto.policy" +security property in the /conf/security/java.security file. + +By default, Java provides two different sets of cryptographic policy +files: + + unlimited: These policy files contain no restrictions on cryptographic + strengths or algorithms + + limited: These policy files contain more restricted cryptographic + strengths + +These files reside in /conf/security/policy in the "unlimited" +or "limited" subdirectories respectively. + +Each subdirectory contains a complete policy configuration, +and subdirectories can be added/edited/removed to reflect your +import or export control product requirements. + +Within a subdirectory, the effective policy is the combined minimum +permissions of the grant statements in the file(s) matching the filename +pattern "default_*.policy". At least one grant is required. For example: + + limited = Export (all) + Import (limited) = Limited + unlimited = Export (all) + Import (all) = Unlimited + +The effective exemption policy is the combined minimum permissions +of the grant statements in the file(s) matching the filename pattern +"exempt_*.policy". Exemption grants are optional. For example: + + limited = grants exemption permissions, by which the + effective policy can be circumvented. + e.g. KeyRecovery/KeyEscrow/KeyWeakening. + +Please see the Java Cryptography Architecture (JCA) documentation for +additional information on these files and formats. + +YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +TO DETERMINE THE EXACT REQUIREMENTS. + +Please note that the JCE for Java SE, including the JCE framework, +cryptographic policy files, and standard JCE providers provided with +the Java SE, have been reviewed and approved for export as mass market +encryption item by the US Bureau of Industry and Security. diff --git a/.local/bin/IPMIView/jre/conf/security/policy/limited/default_US_export.policy b/.local/bin/IPMIView/jre/conf/security/policy/limited/default_US_export.policy new file mode 100755 index 0000000..1f38934 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/limited/default_US_export.policy @@ -0,0 +1,6 @@ +// Default US Export policy file. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff --git a/.local/bin/IPMIView/jre/conf/security/policy/limited/default_local.policy b/.local/bin/IPMIView/jre/conf/security/policy/limited/default_local.policy new file mode 100755 index 0000000..2a6d513 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/limited/default_local.policy @@ -0,0 +1,14 @@ +// Some countries have import limits on crypto strength. This policy file +// is worldwide importable. + +grant { + permission javax.crypto.CryptoPermission "DES", 64; + permission javax.crypto.CryptoPermission "DESede", *; + permission javax.crypto.CryptoPermission "RC2", 128, + "javax.crypto.spec.RC2ParameterSpec", 128; + permission javax.crypto.CryptoPermission "RC4", 128; + permission javax.crypto.CryptoPermission "RC5", 128, + "javax.crypto.spec.RC5ParameterSpec", *, 12, *; + permission javax.crypto.CryptoPermission "RSA", *; + permission javax.crypto.CryptoPermission *, 128; +}; diff --git a/.local/bin/IPMIView/jre/conf/security/policy/limited/exempt_local.policy b/.local/bin/IPMIView/jre/conf/security/policy/limited/exempt_local.policy new file mode 100755 index 0000000..9dd5b91 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/limited/exempt_local.policy @@ -0,0 +1,13 @@ +// Some countries have import limits on crypto strength, but may allow for +// these exemptions if the exemption mechanism is used. + +grant { + // There is no restriction to any algorithms if KeyRecovery is enforced. + permission javax.crypto.CryptoPermission *, "KeyRecovery"; + + // There is no restriction to any algorithms if KeyEscrow is enforced. + permission javax.crypto.CryptoPermission *, "KeyEscrow"; + + // There is no restriction to any algorithms if KeyWeakening is enforced. + permission javax.crypto.CryptoPermission *, "KeyWeakening"; +}; diff --git a/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_US_export.policy b/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_US_export.policy new file mode 100755 index 0000000..1f38934 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_US_export.policy @@ -0,0 +1,6 @@ +// Default US Export policy file. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff --git a/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_local.policy b/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_local.policy new file mode 100755 index 0000000..2b907e2 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/security/policy/unlimited/default_local.policy @@ -0,0 +1,6 @@ +// Country-specific policy file for countries with no limits on crypto strength. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff --git a/.local/bin/IPMIView/jre/conf/sound.properties b/.local/bin/IPMIView/jre/conf/sound.properties new file mode 100755 index 0000000..68309d1 --- /dev/null +++ b/.local/bin/IPMIView/jre/conf/sound.properties @@ -0,0 +1,39 @@ +############################################################ +# Sound Configuration File +############################################################ +# +# This properties file is used to specify default service +# providers for javax.sound.midi.MidiSystem and +# javax.sound.sampled.AudioSystem. +# +# The following keys are recognized by MidiSystem methods: +# +# javax.sound.midi.Receiver +# javax.sound.midi.Sequencer +# javax.sound.midi.Synthesizer +# javax.sound.midi.Transmitter +# +# The following keys are recognized by AudioSystem methods: +# +# javax.sound.sampled.Clip +# javax.sound.sampled.Port +# javax.sound.sampled.SourceDataLine +# javax.sound.sampled.TargetDataLine +# +# The values specify the full class name of the service +# provider, or the device name. +# +# See the class descriptions for details. +# +# Example 1: +# Use MyDeviceProvider as default for SourceDataLines: +# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider +# +# Example 2: +# Specify the default Synthesizer by its name "InternalSynth". +# javax.sound.midi.Synthesizer=#InternalSynth +# +# Example 3: +# Specify the default Receiver by provider and name: +# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 +# diff --git a/.local/bin/IPMIView/jre/legal/java.base/ADDITIONAL_LICENSE_INFO b/.local/bin/IPMIView/jre/legal/java.base/ADDITIONAL_LICENSE_INFO new file mode 100755 index 0000000..ff700cd --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/ADDITIONAL_LICENSE_INFO @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff --git a/.local/bin/IPMIView/jre/legal/java.base/ASSEMBLY_EXCEPTION b/.local/bin/IPMIView/jre/legal/java.base/ASSEMBLY_EXCEPTION new file mode 100755 index 0000000..065b8d9 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/.local/bin/IPMIView/jre/legal/java.base/LICENSE b/.local/bin/IPMIView/jre/legal/java.base/LICENSE new file mode 100755 index 0000000..8b400c7 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/.local/bin/IPMIView/jre/legal/java.base/aes.md b/.local/bin/IPMIView/jre/legal/java.base/aes.md new file mode 100755 index 0000000..6d0ee2e --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/aes.md @@ -0,0 +1,36 @@ +## Cryptix AES v3.2.0 + +### Cryptix General License +
+
+Cryptix General License
+
+Copyright (c) 1995-2005 The Cryptix Foundation Limited.
+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 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 CRYPTIX FOUNDATION LIMITED 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 CRYPTIX FOUNDATION LIMITED 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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.base/asm.md b/.local/bin/IPMIView/jre/legal/java.base/asm.md new file mode 100755 index 0000000..351e45a --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/asm.md @@ -0,0 +1,36 @@ +## ASM Bytecode Manipulation Framework v6.0 + +### ASM License +
+
+Copyright (c) 2000-2011 France Télé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.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.base/c-libutl.md b/.local/bin/IPMIView/jre/legal/java.base/c-libutl.md new file mode 100755 index 0000000..8bc9880 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/c-libutl.md @@ -0,0 +1,35 @@ +## c-libutl 20160225 + +### c-libutl License +``` + +This software is distributed under the terms of the BSD license. + +== BSD LICENSE =============================================================== + + (C) 2009 by Remo Dentato (rdentato@gmail.com) + + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + +http://opensource.org/licenses/bsd-license.php + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.base/cldr.md b/.local/bin/IPMIView/jre/legal/java.base/cldr.md new file mode 100755 index 0000000..f6141ee --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/cldr.md @@ -0,0 +1,66 @@ +## Unicode Common Local Data Repository (CLDR) v33 + +### CLDR License + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.base/icu.md b/.local/bin/IPMIView/jre/legal/java.base/icu.md new file mode 100755 index 0000000..9bf02a6 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/icu.md @@ -0,0 +1,66 @@ +## International Components for Unicode (ICU4J) v60.2 + +### ICU4J License + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.base/public_suffix.md b/.local/bin/IPMIView/jre/legal/java.base/public_suffix.md new file mode 100755 index 0000000..61d9607 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/public_suffix.md @@ -0,0 +1,399 @@ +## Mozilla Public Suffix List + +### Public Suffix Notice +``` +You are receiving a copy of the Mozilla Public Suffix List in the following +file: /lib/security/public_suffix_list.dat. The terms of the +Oracle license do NOT apply to this file; it is licensed under the +Mozilla Public License 2.0, separately from the Oracle programs you receive. +If you do not wish to use the Public Suffix List, you may remove the +/lib/security/public_suffix_list.dat file. + +The Source Code of this file is available under the +Mozilla Public License, v. 2.0 and is located at +https://raw.githubusercontent.com/publicsuffix/list/3c213aab32b3c014f171b1673d4ce9b5cd72bf1c/public_suffix_list.dat. +If a copy of the MPL was not distributed with this file, you can obtain one +at https://mozilla.org/MPL/2.0/. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. +``` + +### MPL v2.0 +``` +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.base/unicode.md b/.local/bin/IPMIView/jre/legal/java.base/unicode.md new file mode 100755 index 0000000..87ee4fa --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/unicode.md @@ -0,0 +1,66 @@ +## The Unicode Standard, Unicode Character Database, Version 10.0.0 + +### Unicode Character Database + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.base/zlib.md b/.local/bin/IPMIView/jre/legal/java.base/zlib.md new file mode 100755 index 0000000..d856af6 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.base/zlib.md @@ -0,0 +1,27 @@ +## zlib v1.2.13 + +### zlib License +
+
+Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Jean-loup Gailly        Mark Adler
+jloup@gzip.org          madler@alumni.caltech.edu
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/colorimaging.md b/.local/bin/IPMIView/jre/legal/java.desktop/colorimaging.md new file mode 100755 index 0000000..eeb9932 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/colorimaging.md @@ -0,0 +1,7 @@ +## Eastman Kodak Company: Portions of color management and imaging software + +### Eastman Kodak Notice +
+Portions Copyright Eastman Kodak Company 1991-2003
+
+ diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/freetype.md b/.local/bin/IPMIView/jre/legal/java.desktop/freetype.md new file mode 100755 index 0000000..e74da88 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/freetype.md @@ -0,0 +1,650 @@ +## The FreeType Project: Freetype v2.12.1 + + +### FreeType Notice + +``` +FreeType comes with two licenses from which you can choose the one +which fits your needs best. + + The FreeType License (FTL) is the most commonly used one. It is + a BSD-style license with a credit clause and thus compatible with + the GNU Public License (GPL) version 3, but not with the + GPL version 2. + + The GNU General Public License (GPL), version 2. Use it for all + projects which use the GPLv2 also, or which need a license + compatible to the GPLv2. + +``` + +### FreeType License +``` + +Copyright (C) 1996-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. +Copyright (C) 2007-2022 by Dereg Clegg and Michael Toftdal. +Copyright (C) 1996-2022 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. +Copyright (C) 2004-2022 by Masatake YAMATO and Redhat K.K. +Copyright (C) 2007-2022 by Derek Clegg and Michael Toftdal. +Copyright (C) 2007-2022 by David Turner. +Copyright (C) 2022 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. +Copyright (C) 2007-2022 by Rahul Bhalerao , . +Copyright (C) 2008-2022 by David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. +Copyright (C) 2019-2022 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. +Copyright (C) 2009-2022 by Oran Agra and Mickey Gabel. +Copyright (C) 2004-2022 by David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. +Copyright (C) 2004-2022 by Masatake YAMATO, Red Hat K.K., +Copyright (C) 2003-2022 by Masatake YAMATO, Redhat K.K., +Copyright (C) 2013-2022 by Google, Inc. +Copyright (C) 2018-2022 by David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg. +Copyright (C) 2005-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. +Copyright 2013 by Google, Inc. + + + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + http://www.freetype.org + +``` + +### GPL v2 + +``` + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +``` + +### Additional Freetype Attributions +``` + +--------------------------------- +The below license applies to the following files: +libfreetype/src/psaux/psarrst.c +libfreetype/src/psaux/psarrst.h +libfreetype/src/psaux/psblues.c +libfreetype/src/psaux/psblues.h +libfreetype/src/psaux/pserror.c +libfreetype/src/psaux/pserror.h +libfreetype/src/psaux/psfixed.h +libfreetype/src/psaux/psfont.c +libfreetype/src/psaux/psfont.h +libfreetype/src/psaux/psft.c +libfreetype/src/psaux/psft.h +libfreetype/src/psaux/psglue.h +libfreetype/src/psaux/pshints.c +libfreetype/src/psaux/pshints.h +libfreetype/src/psaux/psintrp.c +libfreetype/src/psaux/psintrp.h +libfreetype/src/psaux/psread.c +libfreetype/src/psaux/psread.h +libfreetype/src/psaux/psstack.c +libfreetype/src/psaux/psstack.h +libfreetype/src/psaux/pstypes.h + +Copyright 2006-2014 Adobe Systems Incorporated. + +This software, and all works of authorship, whether in source or +object code form as indicated by the copyright notice(s) included +herein (collectively, the "Work") is made available, and may only be +used, modified, and distributed under the FreeType Project License, +LICENSE.TXT. Additionally, subject to the terms and conditions of the +FreeType Project License, each contributor to the Work hereby grants +to any individual or legal entity exercising permissions granted by +the FreeType Project License and this section (hereafter, "You" or +"Your") a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those +patent claims licensable by such contributor that are necessarily +infringed by their contribution(s) alone or by combination of their +contribution(s) with the Work to which such contribution(s) was +submitted. If You institute patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that +the Work or a contribution incorporated within the Work constitutes +direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of +the date such litigation is filed. + +By using, modifying, or distributing the Work you indicate that you +have read and understood the terms and conditions of the +FreeType Project License as well as those provided in this section, +and you accept them fully. + + +``` + +### MIT License +``` + +--------------------------------- +The below license applies to the following files: +libfreetype/include/freetype/internal/fthash.h +libfreetype/src/base/fthash.c + +Copyright 2000 Computing Research Labs, New Mexico State University +Copyright 2001-2015 + + Francesco Zappa Nardelli + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/giflib.md b/.local/bin/IPMIView/jre/legal/java.desktop/giflib.md new file mode 100755 index 0000000..0be4fb8 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/giflib.md @@ -0,0 +1,30 @@ +## GIFLIB v5.2.1 + +### GIFLIB License +``` + +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +https://sourceforge.net/p/giflib/code/ci/master/tree/openbsd-reallocarray.c + +Copyright (c) 2008 Otto Moerbeek +SPDX-License-Identifier: MIT diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/harfbuzz.md b/.local/bin/IPMIView/jre/legal/java.desktop/harfbuzz.md new file mode 100755 index 0000000..9037354 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/harfbuzz.md @@ -0,0 +1,74 @@ +## Harfbuzz v4.4.1 + +### Harfbuzz License + +https://github.com/harfbuzz/harfbuzz/blob/4.4.1/COPYING + +
+
+HarfBuzz is licensed under the so-called "Old MIT" license.  Details follow.
+For parts of HarfBuzz that are licensed under different licenses see individual
+files names COPYING in subdirectories where applicable.
+
+Copyright © 2010-2022  Google, Inc.
+Copyright © 2018-2020  Ebrahim Byagowi
+Copyright © 2019-2020  Facebook, Inc.
+Copyright © 2012-2015  Mozilla Foundation.
+Copyright © 2011  Codethink Limited
+Copyright © 2008-2010  Nokia Corporation and/or its subsidiary(-ies)
+Copyright © 2009  Keith Stribley
+Copyright © 2009  Martin Hosken and SIL International
+Copyright © 2007  Chris Wilson
+Copyright © 2005-2022 Behdad Esfahbod
+Copyright © 2005  David Turner
+Copyright © 2004-2013  Red Hat, Inc.
+Copyright © 1998-2004  David Turner and Werner Lemberg
+Copyright © 2016  Elie Roux 
+Copyright © 2018-2019 Adobe Inc.
+Copyright © 2018  Khaled Hosny
+Copyright © 2016  Igalia S.L.
+
+For full copyright notices consult the individual files in the package.
+
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+All source code, except for one section, is licensed as above. The one
+exception is licensed with a slightly different MIT variant:
+The contents of this directory are licensed under the following terms:
+
+---------------------------------
+The below license applies to the following files:
+libharfbuzz/hb-ucd.cc
+
+Copyright (C) 2012 Grigori Goronzy 
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/jpeg.md b/.local/bin/IPMIView/jre/legal/java.desktop/jpeg.md new file mode 100755 index 0000000..da64b2f --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/jpeg.md @@ -0,0 +1,83 @@ +## Independent JPEG Group: JPEG release 6b + +### JPEG License +
+
+Must reproduce following license in documentation and/or other materials
+provided with distribution:
+
+The authors make NO WARRANTY or representation, either express or implied,
+with respect to this software, its quality, accuracy, merchantability, or
+fitness for a particular purpose.  This software is provided "AS IS",
+and you, its user, assume the entire risk as to its quality and accuracy.
+
+This software is copyright (C) 1991-1998, Thomas G. Lane.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute
+this software (or portions thereof) for any purpose, without fee,
+subject to these conditions:
+
+(1) If any part of the source code for this software is distributed,
+then this README file must be included, with this copyright and no-warranty
+notice unaltered; and any additions, deletions, or changes to the original
+files must be clearly indicated in accompanying documentation.
+
+(2) If only executable code is distributed, then the accompanying documentation
+must state that "this software is based in part on the work of the
+Independent JPEG Group".
+
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library.  If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived
+from it.  This software may be referred to only as "the Independent JPEG
+Group's software".
+
+We specifically permit and encourage the use of this software as the basis
+of commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+
+ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
+sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
+ansi2knr.c is NOT covered by the above copyright and conditions, but instead
+by the usual distribution terms of the Free Software Foundation; principally,
+that you must include source code if you redistribute it.
+(See the file ansi2knr.c for full details.)  However, since ansi2knr.c is
+not needed as part of any program generated from the IJG code, this does not
+limit you more than the foregoing paragraphs do.
+
+The Unix configuration script "configure" was produced with GNU Autoconf.
+It is copyright by the Free Software Foundation but is freely distributable.
+The same holds for its supporting scripts (config.guess, config.sub,
+ltconfig, ltmain.sh).  Another support script, install-sh, is copyright
+by M.I.T. but is also freely distributable.
+
+It appears that the arithmetic coding option of the JPEG spec is covered
+by patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding
+cannot legally be used without obtaining one or more licenses.  For this
+reason, support for arithmetic coding has been removed from the free
+JPEG software. (Since arithmetic coding provides only a marginal gain
+over the unpatented Huffman mode, it is unlikely that very many
+implementations will support it.) So far as we are aware, there are
+no patent restrictions on the remaining code.
+
+The IJG distribution formerly included code to read and write GIF files.
+To avoid entanglement with the Unisys LZW patent, GIF reading support
+has been removed altogether, and the GIF writer has been simplified to
+produce "uncompressed GIFs".  This technique does not use the LZW algorithm;
+the resulting GIF files are larger than usual, but are readable by all
+standard GIF decoders.
+
+We are required to state that "The Graphics Interchange Format(c) is
+the Copyright property of CompuServe Incorporated.  GIF(sm) is a
+Service Mark property of CompuServe Incorporated."
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/lcms.md b/.local/bin/IPMIView/jre/legal/java.desktop/lcms.md new file mode 100755 index 0000000..1576edb --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/lcms.md @@ -0,0 +1,107 @@ +## Little Color Management System (LCMS) v2.14 + +### LCMS License +
+
+README.1ST file information
+
+LittleCMS core is released under MIT License
+
+---------------------------------
+
+Little CMS
+Copyright (c) 1998-2022 Marti Maria Saguer
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject
+to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---------------------------------
+
+The below license applies to the following files:
+liblcms/cmssm.c
+
+Copyright 2001, softSurfer (www.softsurfer.com)
+
+This code may be freely used and modified for any purpose
+providing that this copyright notice is included with it.
+SoftSurfer makes no warranty for this code, and cannot be held
+liable for any real or imagined damage resulting from its use.
+Users of this code must verify correctness for their application.
+
+
+
+ +### AUTHORS File Information +``` + +Main Author +------------ +Marti Maria + + +Contributors +------------ +Bob Friesenhahn +Kai-Uwe Behrmann +Stuart Nixon +Jordi Vilar +Richard Hughes +Auke Nauta +Chris Evans (Google) +Lorenzo Ridolfi +Robin Watts (Artifex) +Shawn Pedersen +Andrew Brygin +Samuli Suominen +Florian Hˆch +Aurelien Jarno +Claudiu Cebuc +Michael Vhrel (Artifex) +Michal Cihar +Daniel Kaneider +Mateusz Jurczyk (Google) +Paul Miller +SÈbastien LÈon +Christian Schmitz +XhmikosR +Stanislav Brabec (SuSe) +Leonhard Gruenschloss (Google) +Patrick Noffke +Christopher James Halse Rogers +John Hein +Thomas Weber (Debian) +Mark Allen +Noel Carboni +Sergei Trofimovic +Philipp Knechtges + +Special Thanks +-------------- +Artifex software +AlienSkin software +Jan Morovic +Jos Vernon (WebSupergoo) +Harald Schneider (Maxon) +Christian Albrecht +Dimitrios Anastassakis +Lemke Software +Tim Zaman + + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/libpng.md b/.local/bin/IPMIView/jre/legal/java.desktop/libpng.md new file mode 100755 index 0000000..4f69da5 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/libpng.md @@ -0,0 +1,203 @@ +## libpng v1.6.38 + +### libpng License +
+
+COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
+=========================================
+
+PNG Reference Library License version 2
+---------------------------------------
+
+Copyright (c) 1995-2022 The PNG Reference Library Authors.
+Copyright (c) 2018-2022 Cosmin Truta
+Copyright (c) 1998-2018 Glenn Randers-Pehrson
+Copyright (c) 1996-1997 Andreas Dilger
+Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+The software is supplied "as is", without warranty of any kind,
+express or implied, including, without limitation, the warranties
+of merchantability, fitness for a particular purpose, title, and
+non-infringement.  In no event shall the Copyright owners, or
+anyone distributing the software, be liable for any damages or
+other liability, whether in contract, tort or otherwise, arising
+from, out of, or in connection with the software, or the use or
+other dealings in the software, even if advised of the possibility
+of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute
+this software, or portions hereof, for any purpose, without fee,
+subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you
+    must not claim that you wrote the original software.  If you
+    use this software in a product, an acknowledgment in the product
+    documentation would be appreciated, but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must
+    not be misrepresented as being the original software.
+
+ 3. This Copyright notice may not be removed or altered from any
+    source or altered source distribution.
+
+
+PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)
+-----------------------------------------------------------------------
+
+libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are
+Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
+derived from libpng-1.0.6, and are distributed according to the same
+disclaimer and license as libpng-1.0.6 with the following individuals
+added to the list of Contributing Authors:
+
+    Simon-Pierre Cadieux
+    Eric S. Raymond
+    Mans Rullgard
+    Cosmin Truta
+    Gilles Vollant
+    James Yu
+    Mandar Sahastrabuddhe
+    Google Inc.
+    Vadim Barkov
+
+and with the following additions to the disclaimer:
+
+    There is no warranty against interference with your enjoyment of
+    the library or against infringement.  There is no warranty that our
+    efforts or the library will fulfill any of your particular purposes
+    or needs.  This library is provided with all faults, and the entire
+    risk of satisfactory quality, performance, accuracy, and effort is
+    with the user.
+
+Some files in the "contrib" directory and some configure-generated
+files that are distributed with libpng have other copyright owners, and
+are released under other open source licenses.
+
+libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
+libpng-0.96, and are distributed according to the same disclaimer and
+license as libpng-0.96, with the following individuals added to the
+list of Contributing Authors:
+
+    Tom Lane
+    Glenn Randers-Pehrson
+    Willem van Schaik
+
+libpng versions 0.89, June 1996, through 0.96, May 1997, are
+Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
+and are distributed according to the same disclaimer and license as
+libpng-0.88, with the following individuals added to the list of
+Contributing Authors:
+
+    John Bowler
+    Kevin Bracey
+    Sam Bushell
+    Magnus Holmgren
+    Greg Roelofs
+    Tom Tanner
+
+Some files in the "scripts" directory have other copyright owners,
+but are released under this license.
+
+libpng versions 0.5, May 1995, through 0.88, January 1996, are
+Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+For the purposes of this copyright and license, "Contributing Authors"
+is defined as the following set of individuals:
+
+    Andreas Dilger
+    Dave Martindale
+    Guy Eric Schalnat
+    Paul Schmidt
+    Tim Wegner
+
+The PNG Reference Library is supplied "AS IS".  The Contributing
+Authors and Group 42, Inc. disclaim all warranties, expressed or
+implied, including, without limitation, the warranties of
+merchantability and of fitness for any purpose.  The Contributing
+Authors and Group 42, Inc. assume no liability for direct, indirect,
+incidental, special, exemplary, or consequential damages, which may
+result from the use of the PNG Reference Library, even if advised of
+the possibility of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+source code, or portions hereof, for any purpose, without fee, subject
+to the following restrictions:
+
+ 1. The origin of this source code must not be misrepresented.
+
+ 2. Altered versions must be plainly marked as such and must not
+    be misrepresented as being the original source.
+
+ 3. This Copyright notice may not be removed or altered from any
+    source or altered source distribution.
+
+The Contributing Authors and Group 42, Inc. specifically permit,
+without fee, and encourage the use of this source code as a component
+to supporting the PNG file format in commercial products.  If you use
+this source code in a product, acknowledgment is not required but would
+be appreciated.
+
+TRADEMARK
+=========
+
+The name "libpng" has not been registered by the Copyright owners
+as a trademark in any jurisdiction.  However, because libpng has
+been distributed and maintained world-wide, continually since 1995,
+the Copyright owners claim "common-law trademark protection" in any
+jurisdiction where common-law trademark is recognized.
+
+
+ +### AUTHORS File Information +``` +PNG REFERENCE LIBRARY AUTHORS +============================= + +This is the list of PNG Reference Library ("libpng") Contributing +Authors, for copyright and licensing purposes. + + * Andreas Dilger + * Cosmin Truta + * Dave Martindale + * Eric S. Raymond + * Gilles Vollant + * Glenn Randers-Pehrson + * Greg Roelofs + * Guy Eric Schalnat + * James Yu + * John Bowler + * Kevin Bracey + * Magnus Holmgren + * Mandar Sahastrabuddhe + * Mans Rullgard + * Matt Sarett + * Mike Klein + * Pascal Massimino + * Paul Schmidt + * Qiang Zhou + * Sam Bushell + * Samuel Williams + * Simon-Pierre Cadieux + * Tim Wegner + * Tom Lane + * Tom Tanner + * Vadim Barkov + * Willem van Schaik + * Zhijie Liang + * Arm Holdings + - Richard Townsend + * Google Inc. + - Matt Sarett + - Mike Klein + - Dan Field + - Sami Boukortt + +The build projects, the build scripts, the test scripts, and other +files in the "ci", "projects", "scripts" and "tests" directories, have +other copyright owners, but are released under the libpng license. + +Some files in the "contrib" directory, and some tools-generated files +that are distributed with libpng, have other copyright owners, and are +released under other open source licenses. +``` diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/mesa3d.md b/.local/bin/IPMIView/jre/legal/java.desktop/mesa3d.md new file mode 100755 index 0000000..cdaa1ac --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/mesa3d.md @@ -0,0 +1,134 @@ +## Mesa 3-D Graphics Library v21.0.3 + +### Mesa License + +``` +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Attention, Contributors + +When contributing to the Mesa project you must agree to the licensing terms +of the component to which you're contributing. +The following section lists the primary components of the Mesa distribution +and their respective licenses. +Mesa Component Licenses + + + +Component Location License +------------------------------------------------------------------ +Main Mesa code src/mesa/ MIT +Device drivers src/mesa/drivers/* MIT, generally + +Gallium code src/gallium/ MIT + +Ext headers GL/glext.h Khronos + GL/glxext.h Khronos + GL/wglext.h Khronos + KHR/khrplatform.h Khronos + +***************************************************************************** + +---- +include/GL/gl.h : + + + Mesa 3-D graphics library + + Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + Copyright (C) 2009 VMware, Inc. All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + ***************************************************************************** + +---- +include/GL/glext.h +include/GL/glxext.h +include/GL/wglxext.h : + + + Copyright (c) 2013 - 2018 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + + ***************************************************************************** + +---- +include/KHR/khrplatform.h : + + Copyright (c) 2008 - 2018 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and/or associated documentation files (the + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + + ***************************************************************************** + +``` diff --git a/.local/bin/IPMIView/jre/legal/java.desktop/xwd.md b/.local/bin/IPMIView/jre/legal/java.desktop/xwd.md new file mode 100755 index 0000000..f3c5327 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.desktop/xwd.md @@ -0,0 +1,34 @@ +## xwd v1.0.7 + +### xwd utility +
+
+This is the copyright for the files in src/java.desktop/unix/native/libawt_xawt:
+list.h, multiVis.h, wsutils.h, list.c, multiVis.c
+
+Copyright 1994 Hewlett-Packard Co.
+Copyright 1996, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.smartcardio/pcsclite.md b/.local/bin/IPMIView/jre/legal/java.smartcardio/pcsclite.md new file mode 100755 index 0000000..4efc081 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.smartcardio/pcsclite.md @@ -0,0 +1,24 @@ +## PC/SC Lite v1.9.5 + +### PC/SC Lite License +
+
+The main parts of the code are using the BSD-like licence bellow:
+
+Copyright (c) 1999-2003 David Corcoran 
+Copyright (c) 2001-2011 Ludovic Rousseau 
+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.
+    3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+Changes to this license can be made only by the copyright author with explicit written consent.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
+
+Some source code files are using other licences. See the [COPYING](https://salsa.debian.org/rousseau/PCSC/-/blob/master/COPYING) file for details.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.xml.crypto/santuario.md b/.local/bin/IPMIView/jre/legal/java.xml.crypto/santuario.md new file mode 100755 index 0000000..fa87128 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml.crypto/santuario.md @@ -0,0 +1,225 @@ +## Apache Santuario v2.3.0 + +### Apache Santuario Notice +
+
+  Apache Santuario - XML Security for Java
+  Copyright 1999-2021 The Apache Software Foundation
+
+  This product includes software developed at
+  The Apache Software Foundation (http://www.apache.org/).
+
+  It was originally based on software copyright (c) 2001, Institute for
+  Data Communications Systems, .
+
+  The development of this software was partly funded by the European
+  Commission in the  project in the ISIS Programme.
+
+
+ +### Apache 2.0 License +
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.xml/bcel.md b/.local/bin/IPMIView/jre/legal/java.xml/bcel.md new file mode 100755 index 0000000..6dffd07 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml/bcel.md @@ -0,0 +1,219 @@ +## Apache Commons Byte Code Engineering Library (BCEL) Version 6.5.0 + +### Apache Commons BCEL Notice +
+
+    Apache Commons BCEL
+    Copyright 2004-2020 The Apache Software Foundation
+
+    This product includes software developed at
+    The Apache Software Foundation (https://www.apache.org/).
+
+
+ +### Apache 2.0 License +
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.xml/dom.md b/.local/bin/IPMIView/jre/legal/java.xml/dom.md new file mode 100755 index 0000000..4fe8093 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml/dom.md @@ -0,0 +1,77 @@ +## DOM Level 3 Core Specification v1.0 + +### W3C Software Notice +
+Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,
+European Research Consortium for Informatics and Mathematics, Keio University).
+All Rights Reserved.
+
+The DOM bindings are published under the W3C Software Copyright Notice and License.
+The software license requires "Notice of any changes or modifications to the W3C
+files, including the date changes were made." Consequently, modified versions of
+the DOM bindings must document that they do not conform to the W3C standard; in the
+case of the IDL definitions, the pragma prefix can no longer be 'w3c.org'; in the
+case of the Java language binding, the package names can no longer be in the
+'org.w3c' package.
+
+ +### W3C License +
+
+W3C SOFTWARE NOTICE AND LICENSE
+
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license. By obtaining, using and/or copying this work, you (the licensee)
+agree that you have read, understood, and will comply with the following terms
+and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications:
+
+   1.The full text of this NOTICE in a location viewable to users of the
+   redistributed or derivative work.
+
+   2.Any pre-existing intellectual property disclaimers, notices, or terms and
+   conditions. If none exist, the W3C Software Short Notice should be included
+   (hypertext is preferred, text is permitted) within the body of any
+   redistributed or derivative code.
+
+   3.Notice of any changes or modifications to the files, including the date
+   changes were made. (We recommend you provide URIs to the location from
+   which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
+THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+DOCUMENTATION.  The name and trademarks of copyright holders may NOT be used
+in advertising or publicity pertaining to the software without specific,
+written prior permission. Title to copyright in this software and any
+associated documentation will at all times remain with copyright holders.
+
+____________________________________
+
+This formulation of W3C's notice and license became active on December 31
+2002. This version removes the copyright ownership notice such that this
+license can be used with materials other than those owned by the W3C, reflects
+that ERCIM is now a host of the W3C, includes references to this specific
+dated version of the license, and removes the ambiguous grant of "use".
+Otherwise, this version is the same as the previous version and is written so
+as to preserve the Free Software Foundation's assessment of GPL compatibility
+and OSI's certification under the Open Source Definition. Please see our
+Copyright FAQ for common questions about using materials from our site,
+including specific terms and conditions for packages like libwww, Amaya, and
+Jigsaw. Other questions about this notice can be directed to
+site-policy@w3.org.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.xml/jcup.md b/.local/bin/IPMIView/jre/legal/java.xml/jcup.md new file mode 100755 index 0000000..bc566b7 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml/jcup.md @@ -0,0 +1,31 @@ +## CUP Parser Generator for Java v 0.11b + +### CUP Parser Generator License + +``` +Copyright 1996-2015 by Scott Hudson, Frank Flannery, C. Scott Ananian, Michael Petter + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both +the copyright notice and this permission notice and warranty disclaimer +appear in supporting documentation, and that the names of the authors or +their employers not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to +this software, including all implied warranties of merchantability and +fitness. In no event shall the authors or their employers be liable for +any special, indirect or consequential damages or any damages whatsoever +resulting from loss of use, data or profits, whether in an action of +contract, negligence or other tortious action, arising out of or in +connection with the use or performance of this software. +``` +--- +``` +This is an open source license. It is also GPL-Compatible (see entry for +"Standard ML of New Jersey"). The portions of CUP output which are hard-coded +into the CUP source code are (naturally) covered by this same license, as is +the CUP runtime code linked with the generated parser. +``` + diff --git a/.local/bin/IPMIView/jre/legal/java.xml/xalan.md b/.local/bin/IPMIView/jre/legal/java.xml/xalan.md new file mode 100755 index 0000000..924bce8 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml/xalan.md @@ -0,0 +1,255 @@ +## Apache Xalan v2.7.2 + +### Apache Xalan Notice +
+
+    ======================================================================================
+    ==  NOTICE file corresponding to the section 4d of the Apache License, Version 2.0, ==
+    ==  in this case for the Apache Xalan distribution.                                 ==
+    ======================================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Specifically, we only include the XSLTC portion of the source from the Xalan distribution. 
+   The Xalan project has two processors: an interpretive one (Xalan Interpretive) and a 
+   compiled one (The XSLT Compiler (XSLTC)). We *only* use the XSLTC part of Xalan; We use
+   the source from the packages that are part of the XSLTC sources.
+
+   Portions of this software was originally based on the following:
+
+     - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
+     - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com.
+     - software copyright (c) 2003, IBM Corporation., http://www.ibm.com.
+     - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the
+       Apache Software Foundation and was originally developed at Hewlett Packard Company.
+
+
+ +### Apache 2.0 License +
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
+Permission to use, copy, modify, and distribute this software and 
+its documentation for any purpose and without fee is hereby granted, 
+provided that the above copyright notice appear in all copies and that 
+both the copyright notice and this permission notice and warranty 
+disclaimer appear in supporting documentation, and that the name of 
+the authors or their employers not be used in advertising or publicity 
+pertaining to distribution of the software without specific, written 
+prior permission.
+The authors and their employers disclaim all warranties with regard to 
+this software, including all implied warranties of merchantability and 
+fitness. In no event shall the authors or their employers be liable for 
+any special, indirect or consequential damages or any damages whatsoever 
+resulting from loss of use, data or profits, whether in an action of 
+contract, negligence or other tortious action, arising out of or in 
+connection with the use or performance of this software.The portions of 
+JLex output which are hard-coded into the JLex source code are (naturally) 
+covered by this same license.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/java.xml/xerces.md b/.local/bin/IPMIView/jre/legal/java.xml/xerces.md new file mode 100755 index 0000000..3790b7a --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/java.xml/xerces.md @@ -0,0 +1,229 @@ +## Apache Xerces v2.12.2 + +### Apache Xerces Notice +
+    =========================================================================
+    == NOTICE file corresponding to section 4(d) of the Apache License,    ==
+    == Version 2.0, in this case for the Apache Xerces Java distribution.  ==
+    =========================================================================
+    
+    Apache Xerces Java
+    Copyright 1999-2022 The Apache Software Foundation
+
+    This product includes software developed at
+    The Apache Software Foundation (http://www.apache.org/).
+
+    Portions of this software were originally based on the following:
+    - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
+    - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
+    - voluntary contributions made by Paul Eng on behalf of the
+    Apache Software Foundation that were originally developed at iClick, Inc.,
+    software copyright (c) 1999.
+
+ +### Apache 2.0 License +
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md b/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md new file mode 100755 index 0000000..08d1e3c --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md @@ -0,0 +1,72 @@ +## OASIS PKCS #11 Cryptographic Token Interface v3.0 + +### OASIS PKCS #11 Cryptographic Token Interface License +
+
+Copyright © OASIS Open 2020. All Rights Reserved.
+
+    All capitalized terms in the following text have the meanings
+assigned to them in the OASIS Intellectual Property Rights Policy (the
+"OASIS IPR Policy"). The full Policy may be found at the OASIS website:
+[http://www.oasis-open.org/policies-guidelines/ipr]
+
+    This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it or
+assist in its implementation may be prepared, copied, published, and
+distributed, in whole or in part, without restriction of any kind,
+provided that the above copyright notice and this section are included
+on all such copies and derivative works. However, this document itself
+may not be modified in any way, including by removing the copyright
+notice or references to OASIS, except as needed for the purpose of
+developing any document or deliverable produced by an OASIS Technical
+Committee (in which case the rules applicable to copyrights, as set
+forth in the OASIS IPR Policy, must be followed) or as required to
+translate it into languages other than English.
+
+    The limited permissions granted above are perpetual and will not be
+revoked by OASIS or its successors or assigns.
+
+    This document and the information contained herein is provided on an
+"AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. OASIS
+AND ITS MEMBERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THIS DOCUMENT OR ANY
+PART THEREOF.
+
+    [OASIS requests that any OASIS Party or any other party that
+believes it has patent claims that would necessarily be infringed by
+implementations of this OASIS Standards Final Deliverable, to notify
+OASIS TC Administrator and provide an indication of its willingness to
+grant patent licenses to such patent claims in a manner consistent with
+the IPR Mode of the OASIS Technical Committee that produced this
+deliverable.]
+
+    [OASIS invites any party to contact the OASIS TC Administrator if it
+is aware of a claim of ownership of any patent claims that would
+necessarily be infringed by implementations of this OASIS Standards
+Final Deliverable by a patent holder that is not willing to provide a
+license to such patent claims in a manner consistent with the IPR Mode
+of the OASIS Technical Committee that produced this OASIS Standards
+Final Deliverable. OASIS may include such claims on its website, but
+disclaims any obligation to do so.]
+
+    [OASIS takes no position regarding the validity or scope of any
+intellectual property or other rights that might be claimed to pertain
+to the implementation or use of the technology described in this OASIS
+Standards Final Deliverable or the extent to which any license under
+such rights might or might not be available; neither does it represent
+that it has made any effort to identify any such rights. Information on
+OASIS' procedures with respect to rights in any document or deliverable
+produced by an OASIS Technical Committee can be found on the OASIS
+website. Copies of claims of rights made available for publication and
+any assurances of licenses to be made available, or the result of an
+attempt made to obtain a general license or permission for the use of
+such proprietary rights by implementers or users of this OASIS Standards
+Final Deliverable, can be obtained from the OASIS TC Administrator.
+OASIS makes no representation that any information or list of
+intellectual property rights will at any time be complete, or that any
+claims in such list are, in fact, Essential Claims.]
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11wrapper.md b/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11wrapper.md new file mode 100755 index 0000000..9eb453b --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.crypto.cryptoki/pkcs11wrapper.md @@ -0,0 +1,46 @@ +## IAIK (Institute for Applied Information Processing and Communication) PKCS#11 wrapper files v1 + +### IAIK License +
+
+Copyright (c) 2002 Graz University of Technology. 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.
+
+3. The end-user documentation included with the redistribution, if any, must
+   include the following acknowledgment:
+
+   "This product includes software developed by IAIK of Graz University of
+    Technology."
+
+   Alternately, this acknowledgment may appear in the software itself, if and
+   wherever such third-party acknowledgments normally appear.
+
+4. The names "Graz University of Technology" and "IAIK of Graz University of
+   Technology" must not be used to endorse or promote products derived from this
+   software without prior written permission.
+
+5. Products derived from this software may not be called "IAIK PKCS Wrapper",
+   nor may "IAIK" appear in their name, without prior written permission of
+   Graz University of Technology.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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
+LICENSOR 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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.crypto.ec/ecc.md b/.local/bin/IPMIView/jre/legal/jdk.crypto.ec/ecc.md new file mode 100755 index 0000000..a054b86 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.crypto.ec/ecc.md @@ -0,0 +1,578 @@ +## Mozilla Elliptic Curve Cryptography (ECC) + +### Mozilla ECC Notice + +This notice is provided with respect to Elliptic Curve Cryptography, +which is included with JRE, JDK, and OpenJDK. + +You are receiving a [copy](http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.crypto.ec/share/native/libsunec/impl) +of the Elliptic Curve Cryptography library in source +form with the JDK and OpenJDK source distributions, and as object code in +the JRE & JDK runtimes. +
+In the case of the JRE & JDK runtimes, the terms of the Oracle license do
+NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
+following license, separately from Oracle's JDK & JRE.  If you do not wish to
+install the Elliptic Curve Cryptography library, you may delete the
+Elliptic Curve Cryptography library:
+   - On Solaris and Linux systems: delete $(JAVA_HOME)/lib/libsunec.so
+   - On Mac OSX systems: delete $(JAVA_HOME)/lib/libsunec.dylib
+   - On Windows systems: delete $(JAVA_HOME)\bin\sunec.dll
+
+
+ +### Written Offer for Source Code +
+
+For third party technology that you receive from Oracle in binary form 
+which is licensed under an open source license that gives you the right
+to receive the source code for that binary, you can obtain a copy of 
+the applicable source code from this page:
+    http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.crypto.ec/share/native/libsunec/impl
+
+If the source code for the technology was not provided to you with the 
+binary, you can also receive a copy of the source code on physical 
+media by submitting a written request to:
+
+   Oracle America, Inc.
+   Attn: Associate General Counsel,
+   Development and Engineering Legal
+   500 Oracle Parkway, 10th Floor
+   Redwood Shores, CA 94065
+
+Or, you may send an email to Oracle using the form at:
+
+http://www.oracle.com/goto/opensourcecode/request
+
+Your request should include:
+
+  - The name of the component or binary file(s) for which you are requesting the source code
+
+  - The name and version number of the Oracle product containing the binary
+
+  - The date you received the Oracle product
+
+  - Your name
+
+  - Your company name (if applicable)
+
+  - Your return mailing address and email and
+
+  - A telephone number in the event we need to reach you.
+
+We may charge you a fee to cover the cost of physical media and processing. 
+Your request must be sent (i) within three (3) years of the date you 
+received the Oracle product that included the component or binary 
+file(s) that are the subject of your request, or (ii) in the case of 
+code licensed under the GPL v3, for as long as Oracle offers spare 
+parts or customer support for that product model.
+
+
+ +### LGPL 2.1 +
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    
+    Copyright (C)   
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  , 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.dynalink/dynalink.md b/.local/bin/IPMIView/jre/legal/jdk.dynalink/dynalink.md new file mode 100755 index 0000000..309efc7 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.dynalink/dynalink.md @@ -0,0 +1,32 @@ +## Dynalink v.5 + +### Dynalink License +
+
+Copyright (c) 2009-2013, Attila Szegedi
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+* 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.
+* Neither the name of the copyright holder nor the names of
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER
+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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.internal.le/jline.md b/.local/bin/IPMIView/jre/legal/jdk.internal.le/jline.md new file mode 100755 index 0000000..69e8ab7 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.internal.le/jline.md @@ -0,0 +1,41 @@ +## JLine v3.20.0 + +### JLine License +
+
+Copyright (c) 2002-2018, the original author or authors.
+All rights reserved.
+
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+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.
+
+Neither the name of JLine nor the names of its contributors
+may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.localedata/thaidict.md b/.local/bin/IPMIView/jre/legal/jdk.localedata/thaidict.md new file mode 100755 index 0000000..f8b1133 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.localedata/thaidict.md @@ -0,0 +1,31 @@ +## Thai Dictionary + +### Thai Dictionary License +
+
+Copyright (C) 1982 The Royal Institute, Thai Royal Government.
+
+Copyright (C) 1998 National Electronics and Computer Technology Center,
+National Science and Technology Development Agency,
+Ministry of Science Technology and Environment,
+Thai Royal Government.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/double-conversion.md b/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/double-conversion.md new file mode 100755 index 0000000..b662346 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/double-conversion.md @@ -0,0 +1,36 @@ +## Double-conversion v1.1.5 + +### Double-conversion License + +https://raw.githubusercontent.com/google/double-conversion/master/LICENSE + +
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+* 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.
+* Neither the name of Google Inc. nor the names of its
+  contributors may be used to endorse or promote products derived
+  from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
+OWNER 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.
+
+
diff --git a/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/joni.md b/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/joni.md new file mode 100755 index 0000000..2c639a7 --- /dev/null +++ b/.local/bin/IPMIView/jre/legal/jdk.scripting.nashorn/joni.md @@ -0,0 +1,26 @@ +## JRuby Joni v2.1.16 + +### MIT License +
+
+Copyright (c) 2017 JRuby Team
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
diff --git a/.local/bin/IPMIView/jre/lib/classlist b/.local/bin/IPMIView/jre/lib/classlist new file mode 100755 index 0000000..93e2e5f --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/classlist @@ -0,0 +1,1144 @@ +java/lang/Object +java/lang/String +java/io/Serializable +java/lang/Comparable +java/lang/CharSequence +java/lang/Class +java/lang/reflect/GenericDeclaration +java/lang/reflect/AnnotatedElement +java/lang/reflect/Type +java/lang/Cloneable +java/lang/ClassLoader +java/lang/System +java/lang/Throwable +java/lang/Error +java/lang/ThreadDeath +java/lang/Exception +java/lang/RuntimeException +java/lang/SecurityManager +java/security/ProtectionDomain +java/security/AccessControlContext +java/security/SecureClassLoader +java/lang/ClassNotFoundException +java/lang/ReflectiveOperationException +java/lang/NoClassDefFoundError +java/lang/LinkageError +java/lang/ClassCastException +java/lang/ArrayStoreException +java/lang/VirtualMachineError +java/lang/OutOfMemoryError +java/lang/StackOverflowError +java/lang/IllegalMonitorStateException +java/lang/ref/Reference +java/lang/ref/SoftReference +java/lang/ref/WeakReference +java/lang/ref/FinalReference +java/lang/ref/PhantomReference +java/lang/ref/Finalizer +java/lang/Thread +java/lang/Runnable +java/lang/ThreadGroup +java/lang/Thread$UncaughtExceptionHandler +java/util/Properties +java/util/Hashtable +java/util/Map +java/util/Dictionary +java/lang/Module +java/lang/reflect/AccessibleObject +java/lang/reflect/Field +java/lang/reflect/Member +java/lang/reflect/Parameter +java/lang/reflect/Method +java/lang/reflect/Executable +java/lang/reflect/Constructor +jdk/internal/reflect/MagicAccessorImpl +jdk/internal/reflect/MethodAccessorImpl +jdk/internal/reflect/MethodAccessor +jdk/internal/reflect/ConstructorAccessorImpl +jdk/internal/reflect/ConstructorAccessor +jdk/internal/reflect/DelegatingClassLoader +jdk/internal/reflect/ConstantPool +jdk/internal/reflect/UnsafeStaticFieldAccessorImpl +jdk/internal/reflect/UnsafeFieldAccessorImpl +jdk/internal/reflect/FieldAccessorImpl +jdk/internal/reflect/FieldAccessor +jdk/internal/reflect/CallerSensitive +java/lang/annotation/Annotation +java/lang/invoke/DirectMethodHandle +java/lang/invoke/MethodHandle +java/lang/invoke/VarHandle +java/lang/invoke/MemberName +java/lang/invoke/ResolvedMethodName +java/lang/invoke/MethodHandleNatives +java/lang/invoke/LambdaForm +java/lang/invoke/MethodType +java/lang/BootstrapMethodError +java/lang/invoke/CallSite +java/lang/invoke/MethodHandleNatives$CallSiteContext +java/lang/invoke/ConstantCallSite +java/lang/invoke/MutableCallSite +java/lang/invoke/VolatileCallSite +java/lang/AssertionStatusDirectives +java/lang/StringBuffer +java/lang/AbstractStringBuilder +java/lang/Appendable +java/lang/StringBuilder +jdk/internal/misc/Unsafe +jdk/internal/module/Modules +java/io/ByteArrayInputStream +java/io/InputStream +java/io/Closeable +java/lang/AutoCloseable +java/net/URL +java/util/jar/Manifest +jdk/internal/loader/ClassLoaders +jdk/internal/loader/ClassLoaders$AppClassLoader +jdk/internal/loader/BuiltinClassLoader +jdk/internal/loader/ClassLoaders$PlatformClassLoader +java/security/CodeSource +java/lang/StackTraceElement +java/nio/Buffer +java/lang/StackWalker +java/lang/StackStreamFactory$AbstractStackWalker +java/lang/StackFrameInfo +java/lang/StackWalker$StackFrame +java/lang/LiveStackFrameInfo +java/lang/LiveStackFrame +java/util/concurrent/locks/AbstractOwnableSynchronizer +java/lang/Boolean +java/lang/Character +java/lang/Float +java/lang/Number +java/lang/Double +java/lang/Byte +java/lang/Short +java/lang/Integer +java/lang/Long +java/util/Iterator +java/lang/NullPointerException +java/lang/ArithmeticException +java/io/ObjectStreamField +java/lang/String$CaseInsensitiveComparator +java/util/Comparator +java/security/AccessController +java/util/Set +java/util/Collection +java/lang/Iterable +java/util/ImmutableCollections$Set12 +java/util/ImmutableCollections$AbstractImmutableSet +java/util/ImmutableCollections$AbstractImmutableCollection +java/util/AbstractCollection +java/util/Objects +jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction +java/security/PrivilegedAction +java/security/cert/Certificate +java/util/HashSet +java/util/AbstractSet +java/util/HashMap +java/util/AbstractMap +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentMap +java/lang/Runtime +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/Lock +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$Node +java/util/Map$Entry +java/util/concurrent/locks/LockSupport +java/util/concurrent/ConcurrentHashMap$ReservationNode +jdk/internal/reflect/ReflectionFactory +java/lang/ref/Reference$ReferenceHandler +jdk/internal/ref/Cleaner +java/lang/ref/ReferenceQueue +java/lang/ref/ReferenceQueue$Null +java/lang/ref/ReferenceQueue$Lock +java/lang/ref/Reference$1 +jdk/internal/misc/JavaLangRefAccess +jdk/internal/misc/SharedSecrets +java/lang/ref/Finalizer$FinalizerThread +jdk/internal/misc/VM +java/lang/StringLatin1 +java/nio/charset/Charset +sun/nio/cs/StandardCharsets +java/nio/charset/spi/CharsetProvider +java/lang/ThreadLocal +java/util/concurrent/atomic/AtomicInteger +java/util/Arrays +java/lang/Math +sun/nio/cs/StandardCharsets$Aliases +sun/util/PreHashedMap +sun/nio/cs/StandardCharsets$Cache +sun/nio/cs/UTF_8 +sun/nio/cs/Unicode +sun/nio/cs/HistoricallyNamedCharset +sun/nio/cs/ISO_8859_1 +sun/nio/cs/US_ASCII +java/nio/charset/StandardCharsets +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_16 +java/lang/StringCoding +java/lang/StringCoding$1 +java/lang/ThreadLocal$ThreadLocalMap +java/lang/ThreadLocal$ThreadLocalMap$Entry +jdk/internal/misc/TerminatingThreadLocal +java/lang/StringCoding$Result +java/util/Properties$EntrySet +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/Collections +java/util/Collections$EmptySet +java/util/Collections$EmptyList +java/util/RandomAccess +java/util/AbstractList +java/util/List +java/util/Collections$EmptyMap +java/util/Collections$SynchronizedSet +java/util/Collections$SynchronizedCollection +java/lang/reflect/Array +java/util/concurrent/ConcurrentHashMap$EntryIterator +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$MapEntry +java/util/ImmutableCollections$MapN +java/util/ImmutableCollections$AbstractImmutableMap +jdk/internal/util/StaticProperty +java/lang/VersionProps +java/io/FileInputStream +java/io/FileDescriptor +java/io/FileDescriptor$1 +jdk/internal/misc/JavaIOFileDescriptorAccess +java/io/FileOutputStream +java/io/OutputStream +java/io/Flushable +java/io/BufferedInputStream +java/io/FilterInputStream +java/io/PrintStream +java/io/FilterOutputStream +java/io/BufferedOutputStream +java/io/OutputStreamWriter +java/io/Writer +sun/security/action/GetPropertyAction +sun/nio/cs/StreamEncoder +sun/nio/cs/US_ASCII$Encoder +java/nio/charset/CharsetEncoder +java/nio/charset/CodingErrorAction +sun/nio/cs/Surrogate$Parser +sun/nio/cs/Surrogate +java/nio/charset/CoderResult +java/nio/ByteBuffer +java/nio/Buffer$1 +jdk/internal/misc/JavaNioAccess +java/nio/HeapByteBuffer +java/nio/ByteOrder +java/io/BufferedWriter +java/lang/Terminator +java/lang/Terminator$1 +jdk/internal/misc/Signal$Handler +jdk/internal/misc/Signal +java/util/Hashtable$Entry +jdk/internal/misc/Signal$NativeHandler +java/lang/Integer$IntegerCache +jdk/internal/misc/OSEnvironment +java/lang/System$2 +jdk/internal/misc/JavaLangAccess +java/io/File +java/io/DefaultFileSystem +java/io/UnixFileSystem +java/io/FileSystem +java/io/ExpiringCache +java/io/ExpiringCache$1 +java/util/LinkedHashMap +java/lang/IllegalArgumentException +java/lang/invoke/MethodHandleStatics +java/lang/CharacterData +java/lang/CharacterDataLatin1 +jdk/internal/module/ModuleBootstrap +java/lang/module/ModuleDescriptor +java/lang/module/ModuleDescriptor$1 +jdk/internal/misc/JavaLangModuleAccess +java/util/ImmutableCollections +jdk/internal/module/ModulePatcher +java/util/ImmutableCollections$SetN +jdk/internal/module/ArchivedModuleGraph +jdk/internal/module/SystemModuleFinders +java/net/URI +java/net/URI$1 +jdk/internal/misc/JavaNetUriAccess +jdk/internal/module/SystemModulesMap +jdk/internal/module/SystemModules$all +jdk/internal/module/SystemModules +jdk/internal/module/Builder +java/lang/module/ModuleDescriptor$Requires +java/lang/module/ModuleDescriptor$Exports +java/lang/module/ModuleDescriptor$Opens +java/lang/module/ModuleDescriptor$Provides +java/util/ImmutableCollections$List12 +java/util/ImmutableCollections$AbstractImmutableList +java/lang/module/ModuleDescriptor$Version +java/util/ArrayList +java/lang/module/ModuleDescriptor$Modifier +java/lang/Enum +java/lang/module/ModuleDescriptor$Requires$Modifier +jdk/internal/module/ModuleTarget +jdk/internal/module/ModuleHashes +jdk/internal/module/ModuleResolution +java/lang/module/ModuleReference +jdk/internal/module/SystemModuleFinders$2 +java/util/function/Supplier +jdk/internal/module/ModuleReferenceImpl +java/util/KeyValueHolder +jdk/internal/module/SystemModuleFinders$SystemModuleFinder +java/lang/module/ModuleFinder +jdk/internal/module/ModuleBootstrap$Counters +java/util/Optional +jdk/internal/loader/BootLoader +jdk/internal/module/ServicesCatalog +jdk/internal/loader/ClassLoaderValue +jdk/internal/loader/AbstractClassLoaderValue +jdk/internal/loader/ClassLoaders$BootClassLoader +jdk/internal/reflect/Reflection +java/util/HashMap$Node +java/lang/ClassLoader$ParallelLoaders +java/util/WeakHashMap +java/util/WeakHashMap$Entry +java/util/Collections$SetFromMap +java/util/WeakHashMap$KeySet +java/util/Vector +java/security/ProtectionDomain$JavaSecurityAccessImpl +jdk/internal/misc/JavaSecurityAccess +java/security/ProtectionDomain$Key +java/security/Principal +jdk/internal/loader/URLClassPath +java/net/URL$DefaultFactory +java/net/URLStreamHandlerFactory +java/net/URL$3 +jdk/internal/misc/JavaNetURLAccess +java/io/File$PathStatus +java/io/ExpiringCache$Entry +java/util/LinkedHashMap$Entry +sun/net/www/ParseUtil +sun/net/www/protocol/file/Handler +java/net/URLStreamHandler +java/lang/Class$ReflectionData +java/lang/Class$Atomic +java/lang/reflect/Modifier +java/lang/reflect/ReflectAccess +jdk/internal/reflect/LangReflectAccess +java/lang/Class$1 +jdk/internal/reflect/NativeConstructorAccessorImpl +jdk/internal/reflect/DelegatingConstructorAccessorImpl +sun/net/util/IPAddressUtil +java/util/ArrayDeque +java/util/Deque +java/util/Queue +jdk/internal/util/Preconditions +jdk/internal/loader/BuiltinClassLoader$LoadedModule +sun/net/www/protocol/jrt/Handler +java/util/ImmutableCollections$SetN$SetNIterator +java/lang/module/Configuration +java/util/ImmutableCollections$ListN +java/lang/module/ResolvedModule +java/util/AbstractMap$1 +java/util/AbstractMap$1$1 +java/util/ImmutableCollections$MapN$1 +java/util/ImmutableCollections$MapN$MapNIterator +java/util/ImmutableCollections$Set12$1 +jdk/internal/module/ModuleLoaderMap +java/util/HashMap$TreeNode +jdk/internal/module/ModuleLoaderMap$Mapper +java/util/function/Function +java/lang/ModuleLayer +java/util/ImmutableCollections$ListItr +java/util/ListIterator +java/util/ArrayList$Itr +java/util/Collections$UnmodifiableSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/concurrent/CopyOnWriteArrayList +jdk/internal/module/ServicesCatalog$ServiceProvider +java/util/HashMap$KeySet +java/util/HashMap$KeyIterator +java/util/HashMap$HashIterator +java/lang/ModuleLayer$Controller +jdk/internal/module/IllegalAccessLogger$Mode +jdk/internal/module/IllegalAccessLogger$Builder +java/util/HashMap$Values +java/util/HashMap$ValueIterator +jdk/internal/module/ModuleBootstrap$2 +java/util/Collections$UnmodifiableMap +jdk/internal/module/IllegalAccessLogger +sun/launcher/LauncherHelper +sun/net/util/URLUtil +java/util/Locale +java/util/Locale$Cache +sun/util/locale/LocaleObjectCache +sun/util/locale/BaseLocale +sun/util/locale/BaseLocale$Cache +sun/util/locale/BaseLocale$Key +sun/util/locale/LocaleObjectCache$CacheEntry +sun/util/locale/LocaleUtils +sun/util/locale/InternalLocaleBuilder +sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +jdk/internal/loader/URLClassPath$3 +java/security/PrivilegedExceptionAction +jdk/internal/loader/URLClassPath$JarLoader +jdk/internal/loader/URLClassPath$Loader +java/util/zip/ZipFile +java/util/zip/ZipConstants +java/util/zip/ZipFile$1 +jdk/internal/misc/JavaUtilZipFileAccess +sun/net/www/protocol/jar/Handler +jdk/internal/loader/URLClassPath$JarLoader$1 +jdk/internal/loader/FileURLMapper +java/util/jar/JarFile +java/util/jar/JavaUtilJarAccessImpl +jdk/internal/misc/JavaUtilJarAccess +java/lang/Runtime$Version +java/util/zip/ZipCoder +java/util/zip/ZipCoder$UTF8 +java/util/zip/ZipFile$CleanableResource +jdk/internal/ref/CleanerFactory +jdk/internal/ref/CleanerFactory$1 +java/util/concurrent/ThreadFactory +java/lang/ref/Cleaner +java/lang/ref/Cleaner$1 +jdk/internal/ref/CleanerImpl +jdk/internal/ref/CleanerImpl$PhantomCleanableRef +jdk/internal/ref/PhantomCleanable +java/lang/ref/Cleaner$Cleanable +jdk/internal/ref/CleanerImpl$WeakCleanableRef +jdk/internal/ref/WeakCleanable +jdk/internal/ref/CleanerImpl$SoftCleanableRef +jdk/internal/ref/SoftCleanable +jdk/internal/ref/CleanerImpl$CleanerCleanable +jdk/internal/misc/InnocuousThread +java/util/zip/ZipFile$Source +java/util/zip/ZipFile$Source$Key +java/nio/file/FileSystems +java/nio/file/FileSystems$DefaultFileSystemHolder +java/nio/file/FileSystems$DefaultFileSystemHolder$1 +sun/nio/fs/DefaultFileSystemProvider +sun/nio/fs/LinuxFileSystemProvider +sun/nio/fs/UnixFileSystemProvider +sun/nio/fs/AbstractFileSystemProvider +java/nio/file/spi/FileSystemProvider +java/nio/file/StandardOpenOption +java/nio/file/OpenOption +sun/nio/fs/LinuxFileSystem +sun/nio/fs/UnixFileSystem +java/nio/file/FileSystem +sun/nio/fs/UnixPath +java/nio/file/Path +java/nio/file/Watchable +sun/nio/fs/Util +sun/nio/fs/UnixNativeDispatcher +sun/nio/fs/UnixNativeDispatcher$1 +java/lang/ClassLoader$2 +java/lang/ClassLoader$NativeLibrary +java/lang/ClassLoaderHelper +java/util/ArrayDeque$DeqIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/Enumeration +sun/nio/fs/UnixFileAttributes +java/nio/file/attribute/PosixFileAttributes +java/nio/file/attribute/BasicFileAttributes +sun/nio/fs/UnixFileStoreAttributes +sun/nio/fs/UnixMountEntry +java/nio/CharBuffer +java/lang/Readable +java/nio/HeapCharBuffer +java/net/URI$Parser +java/nio/file/LinkOption +java/nio/file/CopyOption +java/nio/file/Files +java/nio/file/attribute/DosFileAttributes +java/nio/file/attribute/BasicFileAttributeView +java/nio/file/attribute/FileAttributeView +java/nio/file/attribute/AttributeView +java/nio/file/attribute/DosFileAttributeView +java/nio/file/attribute/UserDefinedFileAttributeView +sun/nio/fs/UnixFileAttributeViews +sun/nio/fs/UnixFileAttributeViews$Basic +sun/nio/fs/AbstractBasicFileAttributeView +sun/nio/fs/DynamicFileAttributeView +sun/nio/fs/NativeBuffers +sun/nio/fs/NativeBuffers$1 +jdk/internal/misc/TerminatingThreadLocal$1 +java/util/IdentityHashMap +java/util/IdentityHashMap$KeySet +sun/nio/fs/NativeBuffer +sun/nio/fs/NativeBuffer$Deallocator +sun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes +java/util/concurrent/TimeUnit +java/nio/file/attribute/FileTime +java/io/RandomAccessFile +java/io/DataOutput +java/io/DataInput +java/io/RandomAccessFile$2 +jdk/internal/misc/JavaIORandomAccessFileAccess +java/util/concurrent/atomic/AtomicBoolean +java/lang/invoke/MethodHandles +java/lang/invoke/MemberName$Factory +java/lang/reflect/ReflectPermission +java/security/BasicPermission +java/security/Permission +java/security/Guard +java/lang/invoke/MethodHandles$Lookup +sun/invoke/util/VerifyAccess +java/lang/NoSuchFieldException +java/lang/invoke/VarHandles +java/lang/invoke/VarHandleInts$FieldInstanceReadWrite +java/lang/invoke/VarHandleInts$FieldInstanceReadOnly +java/lang/invoke/VarHandle$1 +jdk/internal/util/Preconditions$1 +java/util/function/BiFunction +java/lang/invoke/VarHandleGuards +java/lang/invoke/VarForm +java/lang/invoke/VarHandle$AccessType +java/lang/Void +java/lang/invoke/VarHandle$AccessMode +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +sun/invoke/util/Wrapper +sun/invoke/util/Wrapper$Format +java/io/FileCleanable +java/util/zip/ZipFile$Source$End +java/util/zip/ZipUtils +jdk/internal/perf/PerfCounter +jdk/internal/perf/Perf$GetPerfAction +jdk/internal/perf/Perf +jdk/internal/perf/PerfCounter$CoreCounters +sun/nio/ch/DirectBuffer +java/nio/DirectByteBuffer +java/nio/MappedByteBuffer +java/nio/Bits +java/util/concurrent/atomic/AtomicLong +java/nio/Bits$1 +jdk/internal/misc/JavaNioAccess$BufferPool +java/nio/DirectLongBufferU +java/nio/LongBuffer +jdk/internal/util/jar/JarIndex +java/util/jar/JarFile$1 +java/util/jar/JarFile$JarFileEntry +java/util/jar/JarEntry +java/util/zip/ZipEntry +java/util/zip/ZipFile$ZipFileInputStream +java/util/zip/ZipFile$ZipFileInflaterInputStream +java/util/zip/InflaterInputStream +java/util/zip/Inflater +java/util/zip/Inflater$InflaterZStreamRef +java/util/zip/ZipFile$InflaterCleanupAction +jdk/internal/loader/URLClassPath$JarLoader$2 +jdk/internal/loader/Resource +java/util/jar/Attributes +java/util/jar/Manifest$FastInputStream +java/io/ByteArrayOutputStream +java/util/jar/Attributes$Name +java/lang/Package +java/lang/NamedPackage +java/lang/Package$VersionInfo +sun/nio/ByteBuffered +java/util/zip/CRC32 +java/util/zip/Checksum +java/util/zip/Checksum$1 +java/security/SecureClassLoader$CodeSourceKey +java/security/SecureClassLoader$1 +sun/security/util/LazyCodeSourcePermissionCollection +java/security/PermissionCollection +java/security/Permissions +java/lang/RuntimePermission +java/security/Permissions$1 +java/security/BasicPermissionCollection +java/security/AllPermission +java/security/UnresolvedPermission +java/security/SecureClassLoader$DebugHolder +sun/security/util/Debug +java/time/temporal/TemporalAccessor +java/lang/PublicMethods$MethodList +java/lang/PublicMethods$Key +java/util/logging/Logger +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/Logger$LoggerBundle +java/util/logging/Logger$ConfigurationData +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LogNode +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/lang/invoke/VarHandleObjects$FieldInstanceReadWrite +java/lang/invoke/VarHandleObjects$FieldInstanceReadOnly +java/util/Collections$SynchronizedMap +java/util/logging/LogManager$Cleaner +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/Shutdown +java/lang/Shutdown$Lock +java/util/logging/LoggingPermission +java/util/logging/LogManager$LoggingProviderAccess +sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess +java/security/AccessController$1 +sun/security/util/SecurityConstants +java/net/NetPermission +java/security/SecurityPermission +java/net/SocketPermission +sun/security/action/GetBooleanAction +java/security/AllPermissionCollection +sun/security/util/FilePermCompat +sun/security/util/SecurityProperties +java/security/Security +java/security/Security$1 +jdk/internal/misc/JavaSecuritySystemConfiguratorAccess +java/security/Security$2 +java/util/Properties$LineReader +java/lang/StringUTF16 +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/io/FileInputStream$1 +java/io/FilePermission +sun/util/logging/internal/LoggingProviderImpl +jdk/internal/logger/DefaultLoggerFinder +java/lang/System$LoggerFinder +java/lang/invoke/VarHandle$AccessDescriptor +java/util/logging/LogManager$2 +java/util/logging/LogManager$RootLogger +java/nio/file/Paths +java/util/logging/LogManager$LoggerWeakRef +java/lang/invoke/StringConcatFactory +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/DirectMethodHandle$Holder +sun/invoke/util/ValueConversions +java/lang/invoke/MethodHandleImpl +java/lang/invoke/Invokers +java/lang/invoke/StringConcatFactory$Strategy +java/lang/invoke/LambdaForm$Kind +java/lang/NoSuchMethodException +java/lang/invoke/LambdaForm$BasicType +java/lang/invoke/LambdaForm$Name +java/lang/invoke/LambdaForm$Holder +java/lang/invoke/MethodHandleImpl$Intrinsic +java/lang/invoke/InvokerBytecodeGenerator +java/lang/invoke/InvokerBytecodeGenerator$2 +jdk/internal/org/objectweb/asm/ClassWriter +jdk/internal/org/objectweb/asm/ClassVisitor +jdk/internal/org/objectweb/asm/ByteVector +jdk/internal/org/objectweb/asm/Item +sun/invoke/util/BytecodeDescriptor +jdk/internal/org/objectweb/asm/MethodWriter +jdk/internal/org/objectweb/asm/MethodVisitor +jdk/internal/org/objectweb/asm/Type +jdk/internal/org/objectweb/asm/Label +jdk/internal/org/objectweb/asm/Frame +jdk/internal/org/objectweb/asm/AnnotationWriter +jdk/internal/org/objectweb/asm/AnnotationVisitor +java/lang/invoke/InvokerBytecodeGenerator$CpPatch +sun/invoke/util/VerifyType +sun/invoke/empty/Empty +sun/reflect/misc/ReflectUtil +java/lang/invoke/MethodHandleImpl$1 +jdk/internal/misc/JavaLangInvokeAccess +java/lang/invoke/MethodHandleImpl$AsVarargsCollector +java/lang/invoke/DelegatingMethodHandle +java/lang/invoke/DelegatingMethodHandle$Holder +java/lang/invoke/SimpleMethodHandle +java/lang/invoke/BoundMethodHandle +java/lang/invoke/Invokers$Holder +java/lang/NoSuchMethodError +java/lang/IncompatibleClassChangeError +java/lang/invoke/BootstrapMethodInvoker +java/lang/invoke/StringConcatFactory$1 +java/lang/invoke/StringConcatFactory$Mode +java/lang/invoke/StringConcatFactory$Recipe +java/lang/invoke/StringConcatFactory$RecipeElement +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$1 +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$2 +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$3 +java/lang/StringConcatHelper +java/lang/invoke/StringConcatFactory$Stringifiers +java/lang/invoke/StringConcatFactory$Stringifiers$StringifierMost +java/lang/ClassValue +java/lang/ClassValue$Entry +java/lang/ClassValue$Identity +java/lang/ClassValue$Version +java/lang/invoke/StringConcatFactory$Stringifiers$StringifierAny +java/lang/ClassValue$ClassValueMap +java/util/Arrays$ArrayList +java/lang/invoke/BoundMethodHandle$Specializer +java/lang/invoke/ClassSpecializer +java/lang/invoke/ClassSpecializer$1 +java/lang/invoke/BoundMethodHandle$SpeciesData +java/lang/invoke/ClassSpecializer$SpeciesData +java/util/ImmutableCollections$SubList +java/lang/invoke/BoundMethodHandle$Specializer$Factory +java/lang/invoke/ClassSpecializer$Factory +java/lang/invoke/BoundMethodHandle$Species_L +java/lang/invoke/DirectMethodHandle$1 +java/lang/invoke/DirectMethodHandle$Accessor +java/util/Arrays$ArrayItr +java/lang/invoke/LambdaFormEditor +java/lang/invoke/LambdaFormEditor$Transform +java/lang/invoke/LambdaFormBuffer +jdk/internal/org/objectweb/asm/FieldWriter +jdk/internal/org/objectweb/asm/FieldVisitor +java/lang/invoke/ClassSpecializer$Factory$1Var +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableList +java/lang/Byte$ByteCache +java/lang/invoke/MethodHandles$1 +sun/invoke/util/ValueConversions$WrapperCache +java/util/logging/LogManager$VisitedLoggers +java/util/function/Predicate +java/util/logging/LogManager$LoggerContext$1 +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/Collections$3 +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/Hashtable$Enumerator +java/lang/invoke/LambdaMetafactory +java/lang/invoke/InnerClassLambdaMetafactory +java/lang/invoke/AbstractValidatingLambdaMetafactory +java/lang/invoke/InfoFromMemberName +java/lang/invoke/MethodHandleInfo +java/lang/invoke/InnerClassLambdaMetafactory$ForwardingMethodGenerator +java/lang/invoke/TypeConvertingMethodAdapter +java/lang/invoke/InnerClassLambdaMetafactory$1 +sun/invoke/util/Wrapper$1 +java/lang/invoke/MethodHandleImpl$IntrinsicMethodHandle +java/util/ArrayList$ArrayListSpliterator +java/util/Spliterator +java/util/stream/StreamSupport +java/util/stream/ReferencePipeline$Head +java/util/stream/ReferencePipeline +java/util/stream/Stream +java/util/stream/BaseStream +java/util/stream/AbstractPipeline +java/util/stream/PipelineHelper +java/util/stream/StreamOpFlag +java/util/stream/StreamOpFlag$Type +java/util/stream/StreamOpFlag$MaskBuilder +java/util/EnumMap +java/util/EnumMap$1 +java/lang/Class$3 +java/util/HashMap$EntrySet +java/util/HashMap$EntryIterator +sun/reflect/annotation/AnnotationParser +jdk/internal/reflect/NativeMethodAccessorImpl +jdk/internal/reflect/DelegatingMethodAccessorImpl +java/util/stream/ReferencePipeline$3 +java/util/stream/ReferencePipeline$StatelessOp +java/util/stream/StreamShape +java/util/stream/ReferencePipeline$7 +java/util/stream/FindOps +java/util/stream/FindOps$FindSink$OfRef +java/util/stream/FindOps$FindSink +java/util/stream/TerminalSink +java/util/stream/Sink +java/util/function/Consumer +java/util/stream/FindOps$FindOp +java/util/stream/TerminalOp +java/lang/invoke/DirectMethodHandle$Constructor +java/util/stream/ReferencePipeline$7$1 +java/util/stream/Sink$ChainedReference +java/util/stream/ReferencePipeline$3$1 +java/util/stream/Streams$StreamBuilderImpl +java/util/stream/Stream$Builder +java/util/stream/Streams$AbstractStreamBuilderImpl +java/util/stream/Streams +java/util/IdentityHashMap$Values +jdk/internal/logger/BootstrapLogger +java/lang/System$Logger +sun/util/logging/PlatformLogger$Bridge +sun/util/logging/PlatformLogger$ConfigurableBridge +jdk/internal/logger/BootstrapLogger$DetectBackend +jdk/internal/logger/BootstrapLogger$DetectBackend$1 +java/util/ServiceLoader +java/util/ServiceLoader$ModuleServicesLookupIterator +java/util/Spliterators +java/util/Spliterators$EmptySpliterator$OfRef +java/util/Spliterators$EmptySpliterator +java/util/Spliterators$EmptySpliterator$OfInt +java/util/Spliterator$OfInt +java/util/Spliterator$OfPrimitive +java/util/Spliterators$EmptySpliterator$OfLong +java/util/Spliterator$OfLong +java/util/Spliterators$EmptySpliterator$OfDouble +java/util/Spliterator$OfDouble +java/util/Spliterators$1Adapter +java/util/ServiceLoader$LazyClassPathLookupIterator +java/util/ServiceLoader$2 +java/util/ServiceLoader$3 +jdk/internal/loader/AbstractClassLoaderValue$Memoizer +jdk/internal/module/Resources +jdk/internal/loader/BuiltinClassLoader$2 +jdk/internal/loader/BuiltinClassLoader$5 +jdk/internal/module/SystemModuleFinders$SystemModuleReader +java/lang/module/ModuleReader +jdk/internal/module/SystemModuleFinders$SystemImage +jdk/internal/jimage/ImageReaderFactory +jdk/internal/jimage/ImageReaderFactory$1 +jdk/internal/jimage/ImageReader +jdk/internal/jimage/ImageReader$SharedImageReader +jdk/internal/jimage/BasicImageReader +jdk/internal/jimage/BasicImageReader$1 +jdk/internal/jimage/NativeImageBuffer +jdk/internal/jimage/NativeImageBuffer$1 +jdk/internal/jimage/ImageHeader +java/nio/DirectIntBufferU +java/nio/IntBuffer +java/nio/DirectByteBufferR +java/nio/DirectIntBufferRU +jdk/internal/jimage/ImageStringsReader +jdk/internal/jimage/ImageStrings +jdk/internal/jimage/decompressor/Decompressor +jdk/internal/jimage/ImageLocation +java/util/Collections$EmptyIterator +java/util/Collections$EmptyEnumeration +jdk/internal/loader/BuiltinClassLoader$1 +java/lang/CompoundEnumeration +jdk/internal/loader/URLClassPath$1 +java/util/concurrent/CopyOnWriteArrayList$COWIterator +java/util/ServiceLoader$1 +java/util/ServiceLoader$ProviderImpl +java/util/ServiceLoader$Provider +jdk/internal/logger/BootstrapLogger$LoggingBackend +jdk/internal/logger/BootstrapLogger$RedirectedLoggers +jdk/internal/logger/BootstrapLogger$BootstrapExecutors +java/util/logging/LogManager$4 +java/util/logging/Logger$SystemLoggerHelper +java/util/logging/Logger$SystemLoggerHelper$1 +jdk/internal/logger/DefaultLoggerFinder$1 +java/net/InetAddress +java/net/InetAddress$1 +java/net/InetAddress$2 +jdk/internal/misc/JavaNetInetAddressAccess +java/net/InetAddress$InetAddressHolder +java/util/concurrent/ConcurrentSkipListSet +java/util/NavigableSet +java/util/SortedSet +java/util/concurrent/ConcurrentSkipListMap +java/util/concurrent/ConcurrentNavigableMap +java/util/NavigableMap +java/util/SortedMap +java/util/concurrent/ConcurrentSkipListMap$Index +java/util/concurrent/atomic/LongAdder +java/util/concurrent/atomic/Striped64 +java/util/concurrent/ConcurrentSkipListMap$Node +java/net/InetAddressImplFactory +java/net/Inet6AddressImpl +java/net/InetAddressImpl +java/net/InetAddress$PlatformNameService +java/net/InetAddress$NameService +java/net/Inet4AddressImpl +java/net/Inet4Address +java/util/Spliterators$ArraySpliterator +java/util/stream/Collectors +java/util/stream/Collector$Characteristics +java/util/EnumSet +java/util/RegularEnumSet +java/util/stream/Collectors$CollectorImpl +java/util/stream/Collector +java/util/StringJoiner +java/util/function/BiConsumer +java/util/function/BinaryOperator +java/util/stream/ReduceOps +java/util/stream/ReduceOps$3 +java/util/stream/ReduceOps$ReduceOp +java/util/stream/ReduceOps$ReduceTask +java/util/stream/AbstractTask +java/util/concurrent/CountedCompleter +java/util/concurrent/ForkJoinTask +java/util/concurrent/Future +java/util/concurrent/ForkJoinTask$ExceptionNode +java/util/concurrent/ForkJoinPool +java/util/concurrent/AbstractExecutorService +java/util/concurrent/ExecutorService +java/util/concurrent/Executor +java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite +java/lang/invoke/VarHandleLongs$FieldInstanceReadOnly +java/lang/invoke/VarHandleObjects$Array +java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory +java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory +java/util/concurrent/ForkJoinPool$1 +java/util/concurrent/ForkJoinPool$WorkQueue +java/util/concurrent/ForkJoinWorkerThread +java/util/concurrent/ThreadLocalRandom +java/util/Random +java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory$1 +java/util/stream/ReduceOps$3ReducingSink +java/util/stream/ReduceOps$AccumulatingSink +java/util/stream/ReduceOps$Box +java/util/ArrayList$SubList +java/time/format/DateTimeFormatter +java/time/format/DateTimeFormatterBuilder +java/time/ZoneId +java/time/temporal/TemporalQuery +java/lang/Character$CharacterCache +java/time/temporal/ChronoField +java/time/temporal/TemporalField +java/time/temporal/ChronoUnit +java/time/temporal/TemporalUnit +java/time/Duration +java/time/temporal/TemporalAmount +java/math/BigInteger +java/time/temporal/ValueRange +java/time/temporal/IsoFields +java/time/temporal/IsoFields$Field +java/time/temporal/IsoFields$Field$1 +java/time/temporal/IsoFields$Field$2 +java/time/temporal/IsoFields$Field$3 +java/time/temporal/IsoFields$Field$4 +java/time/temporal/IsoFields$Unit +java/time/temporal/JulianFields +java/time/temporal/JulianFields$Field +java/time/format/DateTimeFormatterBuilder$2 +java/time/format/SignStyle +java/time/format/DateTimeFormatterBuilder$NumberPrinterParser +java/time/format/DateTimeFormatterBuilder$DateTimePrinterParser +java/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser +java/time/format/ResolverStyle +java/time/chrono/IsoChronology +java/time/chrono/AbstractChronology +java/time/chrono/Chronology +java/util/Locale$Category +java/util/Locale$1 +java/time/format/DateTimeFormatterBuilder$CompositePrinterParser +java/time/format/DecimalStyle +java/time/format/DateTimeFormatterBuilder$SettingsParser +java/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser +java/time/format/DateTimeFormatterBuilder$FractionPrinterParser +java/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser +java/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser +java/time/format/DateTimeFormatterBuilder$InstantPrinterParser +java/lang/Long$LongCache +java/time/format/TextStyle +java/util/Collections$SingletonMap +java/time/format/DateTimeTextProvider$LocaleStore +java/util/AbstractMap$SimpleImmutableEntry +java/util/Collections$SingletonSet +java/util/Collections$1 +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedHashIterator +java/time/format/DateTimeTextProvider +java/time/format/DateTimeTextProvider$1 +java/util/Arrays$LegacyMergeSort +java/util/TimSort +java/time/format/DateTimeFormatterBuilder$1 +java/time/format/DateTimeFormatterBuilder$TextPrinterParser +java/time/Period +java/time/chrono/ChronoPeriod +java/time/ZoneOffset +java/time/temporal/TemporalAdjuster +java/time/ZoneRegion +java/time/zone/ZoneRules +java/time/zone/ZoneOffsetTransitionRule +java/time/LocalDateTime +java/time/temporal/Temporal +java/time/chrono/ChronoLocalDateTime +java/time/LocalDate +java/time/chrono/ChronoLocalDate +java/time/LocalTime +java/time/Clock +java/time/Clock$SystemClock +java/time/Instant +java/time/format/DateTimePrintContext +java/time/temporal/TemporalQueries +java/time/temporal/TemporalQueries$1 +java/time/temporal/TemporalQueries$2 +java/time/temporal/TemporalQueries$3 +java/time/temporal/TemporalQueries$4 +java/time/temporal/TemporalQueries$5 +java/time/temporal/TemporalQueries$6 +java/time/temporal/TemporalQueries$7 +java/time/LocalDate$1 +java/time/format/DateTimeFormatterBuilder$3 +java/time/LocalTime$1 +java/math/BigDecimal +java/math/BigDecimal$1 +java/math/RoundingMode +java/text/DateFormat +java/text/Format +java/text/spi/DateFormatProvider +java/util/spi/LocaleServiceProvider +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleProviderAdapter$NonExistentAdapter +sun/util/locale/provider/FallbackLocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/LanguageTag +sun/util/locale/provider/LocaleResources +sun/util/resources/LocaleData +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/cldr/CLDRLocaleProviderAdapter +sun/util/cldr/CLDRBaseLocaleDataMetaInfo +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/ParseStatus +sun/util/locale/StringTokenIterator +sun/util/cldr/CLDRLocaleProviderAdapter$1 +java/lang/invoke/DirectMethodHandle$Special +sun/util/locale/provider/DateFormatProviderImpl +sun/util/locale/provider/AvailableLanguageTags +java/util/StringTokenizer +sun/util/locale/provider/CalendarDataUtility +java/text/SimpleDateFormat +java/text/DateFormat$Field +java/text/Format$Field +java/text/AttributedCharacterIterator$Attribute +java/util/Calendar +java/util/TimeZone +sun/util/calendar/ZoneInfo +sun/util/calendar/ZoneInfoFile +sun/util/calendar/ZoneInfoFile$1 +java/io/DataInputStream +sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +sun/util/spi/CalendarProvider +sun/util/locale/provider/CalendarProviderImpl +java/util/Calendar$Builder +java/util/GregorianCalendar +sun/util/calendar/CalendarSystem +sun/util/calendar/CalendarSystem$GregorianHolder +sun/util/calendar/Gregorian +sun/util/calendar/BaseCalendar +sun/util/calendar/AbstractCalendar +java/util/spi/CalendarDataProvider +sun/util/locale/provider/LocaleServiceProviderPool +java/text/spi/BreakIteratorProvider +java/text/spi/CollatorProvider +java/text/spi/DateFormatSymbolsProvider +java/text/spi/DecimalFormatSymbolsProvider +java/text/spi/NumberFormatProvider +java/util/spi/CurrencyNameProvider +java/util/spi/LocaleNameProvider +java/util/spi/TimeZoneNameProvider +sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +java/util/ResourceBundle$NoFallbackControl +java/util/ResourceBundle$SingleFormatControl +java/util/LinkedList +java/util/AbstractSequentialList +java/util/LinkedList$Node +sun/util/cldr/CLDRCalendarDataProviderImpl +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataStrategy +sun/util/resources/Bundles$Strategy +sun/util/resources/Bundles +sun/util/resources/Bundles$1 +java/util/ResourceBundle$1 +jdk/internal/misc/JavaUtilResourceBundleAccess +java/util/ResourceBundle$2 +sun/util/resources/Bundles$CacheKey +sun/util/resources/cldr/CalendarData +java/util/ListResourceBundle +java/util/ResourceBundle$ResourceBundleProviderHelper +sun/util/resources/Bundles$BundleReference +sun/util/resources/Bundles$CacheKeyReference +sun/util/locale/provider/LocaleResources$ResourceReference +sun/util/calendar/Gregorian$Date +sun/util/calendar/BaseCalendar$Date +sun/util/calendar/CalendarDate +sun/util/calendar/CalendarUtils +java/text/DateFormatSymbols +sun/util/locale/provider/DateFormatSymbolsProviderImpl +sun/text/resources/cldr/FormatData +java/text/NumberFormat +sun/util/locale/provider/NumberFormatProviderImpl +java/text/DecimalFormatSymbols +sun/util/locale/provider/DecimalFormatSymbolsProviderImpl +java/text/DecimalFormat +java/text/FieldPosition +java/text/DigitList +java/util/Date +java/text/DontCareFieldPosition +java/text/DontCareFieldPosition$1 +java/text/Format$FieldDelegate +java/text/NumberFormat$Field +java/util/Formatter +java/util/regex/Pattern +java/util/regex/Pattern$1 +java/util/regex/Pattern$Node +java/util/regex/Pattern$LastNode +java/util/regex/Pattern$GroupHead +java/util/regex/Pattern$BmpCharPredicate +java/util/regex/Pattern$CharPredicate +java/util/regex/Pattern$BmpCharProperty +java/util/regex/Pattern$CharProperty +java/util/regex/Pattern$GroupTail +java/util/regex/CharPredicates +java/util/regex/Pattern$BmpCharPropertyGreedy +java/util/regex/Pattern$CharPropertyGreedy +java/util/regex/Pattern$Ques +java/util/regex/Pattern$Qtype +java/util/regex/Pattern$BranchConn +java/util/regex/Pattern$Branch +java/util/regex/Pattern$BitClass +java/util/regex/Pattern$Slice +java/util/regex/Pattern$SliceNode +java/util/regex/Pattern$Begin +java/util/regex/Pattern$First +java/util/regex/Pattern$Start +java/util/regex/Pattern$TreeInfo +java/util/regex/Matcher +java/util/regex/MatchResult +java/util/regex/IntHashSet +java/util/regex/ASCII +java/util/Formatter$FormatSpecifier +java/util/Formatter$FormatString +java/util/Formatter$Flags +java/util/Formatter$Conversion +java/util/Formattable +java/util/logging/LogRecord +java/util/logging/ConsoleHandler +java/util/logging/StreamHandler +java/util/logging/SimpleFormatter +java/util/logging/Formatter +jdk/internal/logger/SurrogateLogger +jdk/internal/logger/SimpleConsoleLogger +sun/util/logging/PlatformLogger$ConfigurableBridge$LoggerConfiguration +java/lang/System$Logger$Level +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$Level +jdk/internal/logger/SimpleConsoleLogger$Formatting +java/util/logging/ErrorManager +java/util/logging/Handler$1 +java/util/logging/StreamHandler$1 +java/util/logging/LogManager$CloseOnReset +java/time/ZonedDateTime +java/time/chrono/ChronoZonedDateTime +java/util/logging/LogRecord$CallerFinder +java/lang/StackWalker$Option +java/lang/StackStreamFactory +java/lang/StackWalker$ExtendedOption +java/lang/StackStreamFactory$StackFrameTraverser +java/lang/StackStreamFactory$WalkerState +java/lang/StackStreamFactory$1 +java/lang/StackStreamFactory$StackFrameTraverser$StackFrameBuffer +java/lang/StackStreamFactory$FrameBuffer +java/util/stream/ReferencePipeline$2 +java/util/stream/ReferencePipeline$2$1 +java/util/logging/Level$RbAccess +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$KeyElementReference +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$3 +sun/util/logging/resources/logging +java/util/ResourceBundle$BundleReference +jdk/internal/module/Checks +java/util/Formatter$DateTime +java/util/Formatter$FixedString +java/time/ZonedDateTime$1 +sun/text/resources/cldr/FormatData_en +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$IdentityHashMapIterator diff --git a/.local/bin/IPMIView/jre/lib/jexec b/.local/bin/IPMIView/jre/lib/jexec new file mode 100755 index 0000000..3446397 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/jexec differ diff --git a/.local/bin/IPMIView/jre/lib/jfr/default.jfc b/.local/bin/IPMIView/jre/lib/jfr/default.jfc new file mode 100755 index 0000000..0a2838d --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/jfr/default.jfc @@ -0,0 +1,895 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + true + + + + true + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + 20 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 20 ms + + + + true + 20 ms + + + + true + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + true + 10 ms + + + + true + true + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + + + + false + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + false + everyChunk + + + + false + + + + true + false + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 1000 ms + + + + true + 60 s + + + + false + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + false + true + + + + false + true + + + + true + everyChunk + + + + true + endChunk + + + + true + endChunk + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + true + 10 ms + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 ms + + 20 ms + + 20 ms + + false + + + + diff --git a/.local/bin/IPMIView/jre/lib/jfr/profile.jfc b/.local/bin/IPMIView/jre/lib/jfr/profile.jfc new file mode 100755 index 0000000..140aeda --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/jfr/profile.jfc @@ -0,0 +1,896 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + true + + + + true + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 ms + + + + true + 20 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + true + + + + true + 60 s + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + false + everyChunk + + + + false + + + + true + true + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 100 ms + + + + true + 10 s + + + + true + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + true + true + + + + true + true + + + + true + everyChunk + + + + true + endChunk + + + + true + endChunk + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + 10 ms + true + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 ms + + 10 ms + + 10 ms + + false + + + + diff --git a/.local/bin/IPMIView/jre/lib/jli/libjli.so b/.local/bin/IPMIView/jre/lib/jli/libjli.so new file mode 100755 index 0000000..9d22bd0 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/jli/libjli.so differ diff --git a/.local/bin/IPMIView/jre/lib/jrt-fs.jar b/.local/bin/IPMIView/jre/lib/jrt-fs.jar new file mode 100755 index 0000000..2232a3a Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/jrt-fs.jar differ diff --git a/.local/bin/IPMIView/jre/lib/jspawnhelper b/.local/bin/IPMIView/jre/lib/jspawnhelper new file mode 100755 index 0000000..4e2756f Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/jspawnhelper differ diff --git a/.local/bin/IPMIView/jre/lib/jvm.cfg b/.local/bin/IPMIView/jre/lib/jvm.cfg new file mode 100755 index 0000000..97225c8 --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/jvm.cfg @@ -0,0 +1,2 @@ +-server KNOWN +-client IGNORE diff --git a/.local/bin/IPMIView/jre/lib/libawt.so b/.local/bin/IPMIView/jre/lib/libawt.so new file mode 100755 index 0000000..5ab336f Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libawt.so differ diff --git a/.local/bin/IPMIView/jre/lib/libawt_headless.so b/.local/bin/IPMIView/jre/lib/libawt_headless.so new file mode 100755 index 0000000..bfb64bf Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libawt_headless.so differ diff --git a/.local/bin/IPMIView/jre/lib/libawt_xawt.so b/.local/bin/IPMIView/jre/lib/libawt_xawt.so new file mode 100755 index 0000000..c3c4c13 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libawt_xawt.so differ diff --git a/.local/bin/IPMIView/jre/lib/libdt_socket.so b/.local/bin/IPMIView/jre/lib/libdt_socket.so new file mode 100755 index 0000000..009c521 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libdt_socket.so differ diff --git a/.local/bin/IPMIView/jre/lib/libextnet.so b/.local/bin/IPMIView/jre/lib/libextnet.so new file mode 100755 index 0000000..1b0e025 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libextnet.so differ diff --git a/.local/bin/IPMIView/jre/lib/libfontmanager.so b/.local/bin/IPMIView/jre/lib/libfontmanager.so new file mode 100755 index 0000000..130bbac Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libfontmanager.so differ diff --git a/.local/bin/IPMIView/jre/lib/libfreetype.so b/.local/bin/IPMIView/jre/lib/libfreetype.so new file mode 100755 index 0000000..7a9bd3b Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libfreetype.so differ diff --git a/.local/bin/IPMIView/jre/lib/libinstrument.so b/.local/bin/IPMIView/jre/lib/libinstrument.so new file mode 100755 index 0000000..6e6ade5 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libinstrument.so differ diff --git a/.local/bin/IPMIView/jre/lib/libj2gss.so b/.local/bin/IPMIView/jre/lib/libj2gss.so new file mode 100755 index 0000000..64daff4 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libj2gss.so differ diff --git a/.local/bin/IPMIView/jre/lib/libj2pcsc.so b/.local/bin/IPMIView/jre/lib/libj2pcsc.so new file mode 100755 index 0000000..0d77a60 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libj2pcsc.so differ diff --git a/.local/bin/IPMIView/jre/lib/libj2pkcs11.so b/.local/bin/IPMIView/jre/lib/libj2pkcs11.so new file mode 100755 index 0000000..ac4eaf7 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libj2pkcs11.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjaas.so b/.local/bin/IPMIView/jre/lib/libjaas.so new file mode 100755 index 0000000..a9f5cda Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjaas.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjava.so b/.local/bin/IPMIView/jre/lib/libjava.so new file mode 100755 index 0000000..6a71c4b Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjava.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjavajpeg.so b/.local/bin/IPMIView/jre/lib/libjavajpeg.so new file mode 100755 index 0000000..712b235 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjavajpeg.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjawt.so b/.local/bin/IPMIView/jre/lib/libjawt.so new file mode 100755 index 0000000..2bf92ea Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjawt.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjdwp.so b/.local/bin/IPMIView/jre/lib/libjdwp.so new file mode 100755 index 0000000..4ba467f Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjdwp.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjimage.so b/.local/bin/IPMIView/jre/lib/libjimage.so new file mode 100755 index 0000000..948fda4 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjimage.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjsig.so b/.local/bin/IPMIView/jre/lib/libjsig.so new file mode 100755 index 0000000..06295c1 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjsig.so differ diff --git a/.local/bin/IPMIView/jre/lib/libjsound.so b/.local/bin/IPMIView/jre/lib/libjsound.so new file mode 100755 index 0000000..65a43b8 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libjsound.so differ diff --git a/.local/bin/IPMIView/jre/lib/liblcms.so b/.local/bin/IPMIView/jre/lib/liblcms.so new file mode 100755 index 0000000..68e7deb Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/liblcms.so differ diff --git a/.local/bin/IPMIView/jre/lib/libmanagement.so b/.local/bin/IPMIView/jre/lib/libmanagement.so new file mode 100755 index 0000000..acd8b10 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libmanagement.so differ diff --git a/.local/bin/IPMIView/jre/lib/libmanagement_agent.so b/.local/bin/IPMIView/jre/lib/libmanagement_agent.so new file mode 100755 index 0000000..2407f1b Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libmanagement_agent.so differ diff --git a/.local/bin/IPMIView/jre/lib/libmanagement_ext.so b/.local/bin/IPMIView/jre/lib/libmanagement_ext.so new file mode 100755 index 0000000..fe21676 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libmanagement_ext.so differ diff --git a/.local/bin/IPMIView/jre/lib/libmlib_image.so b/.local/bin/IPMIView/jre/lib/libmlib_image.so new file mode 100755 index 0000000..e68f8cd Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libmlib_image.so differ diff --git a/.local/bin/IPMIView/jre/lib/libnet.so b/.local/bin/IPMIView/jre/lib/libnet.so new file mode 100755 index 0000000..c5fa3cd Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libnet.so differ diff --git a/.local/bin/IPMIView/jre/lib/libnio.so b/.local/bin/IPMIView/jre/lib/libnio.so new file mode 100755 index 0000000..0b52e30 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libnio.so differ diff --git a/.local/bin/IPMIView/jre/lib/libprefs.so b/.local/bin/IPMIView/jre/lib/libprefs.so new file mode 100755 index 0000000..314f67c Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libprefs.so differ diff --git a/.local/bin/IPMIView/jre/lib/librmi.so b/.local/bin/IPMIView/jre/lib/librmi.so new file mode 100755 index 0000000..40cd614 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/librmi.so differ diff --git a/.local/bin/IPMIView/jre/lib/libsctp.so b/.local/bin/IPMIView/jre/lib/libsctp.so new file mode 100755 index 0000000..0f522de Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libsctp.so differ diff --git a/.local/bin/IPMIView/jre/lib/libsplashscreen.so b/.local/bin/IPMIView/jre/lib/libsplashscreen.so new file mode 100755 index 0000000..2ce3441 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libsplashscreen.so differ diff --git a/.local/bin/IPMIView/jre/lib/libsunec.so b/.local/bin/IPMIView/jre/lib/libsunec.so new file mode 100755 index 0000000..3e7169c Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libsunec.so differ diff --git a/.local/bin/IPMIView/jre/lib/libsystemconf.so b/.local/bin/IPMIView/jre/lib/libsystemconf.so new file mode 100755 index 0000000..e868c68 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libsystemconf.so differ diff --git a/.local/bin/IPMIView/jre/lib/libunpack.so b/.local/bin/IPMIView/jre/lib/libunpack.so new file mode 100755 index 0000000..987de1c Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libunpack.so differ diff --git a/.local/bin/IPMIView/jre/lib/libverify.so b/.local/bin/IPMIView/jre/lib/libverify.so new file mode 100755 index 0000000..0aea9ef Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libverify.so differ diff --git a/.local/bin/IPMIView/jre/lib/libzip.so b/.local/bin/IPMIView/jre/lib/libzip.so new file mode 100755 index 0000000..fd7dbfc Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/libzip.so differ diff --git a/.local/bin/IPMIView/jre/lib/modules b/.local/bin/IPMIView/jre/lib/modules new file mode 100755 index 0000000..3d565a8 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/modules differ diff --git a/.local/bin/IPMIView/jre/lib/psfont.properties.ja b/.local/bin/IPMIView/jre/lib/psfont.properties.ja new file mode 100755 index 0000000..d17cf40 --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/psfont.properties.ja @@ -0,0 +1,119 @@ +# +# +# Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# Japanese PostScript printer property file +# +font.num=16 +# +serif=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +monospaced=monospaced +courier=monospaced +dialog=sansserif +dialoginput=monospaced +# +serif.latin1.plain=Times-Roman +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.latin1.bold=Times-Bold +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.latin1.bold=Helvetica-Bold +# +monospaced.latin1.plain=Courier +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.latin1.bold=Courier-Bold +# +serif.x11jis0208.plain=Ryumin-Light-H +serif.x11jis0208.italic=Ryumin-Light-H +serif.x11jis0208.bolditalic=Ryumin-Light-H +serif.x11jis0208.bold=Ryumin-Light-H +# +sansserif.x11jis0208.plain=GothicBBB-Medium-H +sansserif.x11jis0208.italic=GothicBBB-Medium-H +sansserif.x11jis0208.bolditalic=GothicBBB-Medium-H +sansserif.x11jis0208.bold=GothicBBB-Medium-H +# +monospaced.x11jis0208.plain=GothicBBB-Medium-H +monospaced.x11jis0208.italic=GothicBBB-Medium-H +monospaced.x11jis0208.bolditalic=GothicBBB-Medium-H +monospaced.x11jis0208.bold=GothicBBB-Medium-H +# +serif.x11jis0201.plain=Ryumin-Light.Hankaku +serif.x11jis0201.italic=Ryumin-Light.Hankaku +serif.x11jis0201.bolditalic=Ryumin-Light.Hankaku +serif.x11jis0201.bold=Ryumin-Light.Hankaku +# +sansserif.x11jis0201.plain=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.italic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +monospaced.x11jis0201.plain=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.italic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +Helvetica=0 +Helvetica-Bold=1 +Helvetica-Oblique=2 +Helvetica-BoldOblique=3 +Times-Roman=4 +Times-Bold=5 +Times-Italic=6 +Times-BoldItalic=7 +Courier=8 +Courier-Bold=9 +Courier-Oblique=10 +Courier-BoldOblique=11 +GothicBBB-Medium-H=12 +Ryumin-Light-H=13 +GothicBBB-Medium.Hankaku=14 +Ryumin-Light.Hankaku=15 +# +font.0=Helvetica ISOF +font.1=Helvetica-Bold ISOF +font.2=Helvetica-Oblique ISOF +font.3=Helvetica-BoldOblique ISOF +font.4=Times-Roman ISOF +font.5=Times-Bold ISOF +font.6=Times-Italic ISOF +font.7=Times-BoldItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-Oblique ISOF +font.11=Courier-BoldOblique ISOF +font.12=GothicBBB-Medium-H findfont +font.13=Ryumin-Light-H findfont +font.14=GothicBBB-Medium.Hankaku findfont +font.15=Ryumin-Light.Hankaku findfont +# diff --git a/.local/bin/IPMIView/jre/lib/psfontj2d.properties b/.local/bin/IPMIView/jre/lib/psfontj2d.properties new file mode 100755 index 0000000..5eb2c4b --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/psfontj2d.properties @@ -0,0 +1,323 @@ +# +# +# Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. + +# +# PostScript printer property file for Java 2D printing. +# +# WARNING: This is an internal implementation file, not a public file. +# Any customisation or reliance on the existence of this file and its +# contents or syntax is discouraged and unsupported. +# It may be incompatibly changed or removed without any notice. +# +# +font.num=35 +# +# Legacy logical font family names and logical font aliases should all +# map to the primary logical font names. +# +serif=serif +times=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +dialog=sansserif +dialoginput=monospaced +monospaced=monospaced +courier=monospaced +# +# Next, physical fonts which can be safely mapped to standard postscript fonts +# These keys generally map to a value which is the same as the key, so +# the key/value is just a way to say the font has a mapping. +# Sometimes however we map more than one screen font to the same PS font. +# +avantgarde=avantgarde_book +avantgarde_book=avantgarde_book +avantgarde_demi=avantgarde_demi +avantgarde_book_oblique=avantgarde_book_oblique +avantgarde_demi_oblique=avantgarde_demi_oblique +# +itcavantgarde=avantgarde_book +itcavantgarde=avantgarde_book +itcavantgarde_demi=avantgarde_demi +itcavantgarde_oblique=avantgarde_book_oblique +itcavantgarde_demi_oblique=avantgarde_demi_oblique +# +bookman=bookman_light +bookman_light=bookman_light +bookman_demi=bookman_demi +bookman_light_italic=bookman_light_italic +bookman_demi_italic=bookman_demi_italic +# +# Exclude "helvetica" on its own as that's a legacy name for a logical font +helvetica_bold=helvetica_bold +helvetica_oblique=helvetica_oblique +helvetica_bold_oblique=helvetica_bold_oblique +# +itcbookman_light=bookman_light +itcbookman_demi=bookman_demi +itcbookman_light_italic=bookman_light_italic +itcbookman_demi_italic=bookman_demi_italic +# +# Exclude "courier" on its own as that's a legacy name for a logical font +courier_bold=courier_bold +courier_oblique=courier_oblique +courier_bold_oblique=courier_bold_oblique +# +courier_new=courier +courier_new_bold=courier_bold +# +monotype_century_schoolbook=newcenturyschoolbook +monotype_century_schoolbook_bold=newcenturyschoolbook_bold +monotype_century_schoolbook_italic=newcenturyschoolbook_italic +monotype_century_schoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +newcenturyschoolbook=newcenturyschoolbook +newcenturyschoolbook_bold=newcenturyschoolbook_bold +newcenturyschoolbook_italic=newcenturyschoolbook_italic +newcenturyschoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +palatino=palatino +palatino_bold=palatino_bold +palatino_italic=palatino_italic +palatino_bold_italic=palatino_bold_italic +# +# Exclude "times" on its own as that's a legacy name for a logical font +times_bold=times_roman_bold +times_italic=times_roman_italic +times_bold_italic=times_roman_bold_italic +# +times_roman=times_roman +times_roman_bold=times_roman_bold +times_roman_italic=times_roman_italic +times_roman_bold_italic=times_roman_bold_italic +# +times_new_roman=times_roman +times_new_roman_bold=times_roman_bold +times_new_roman_italic=times_roman_italic +times_new_roman_bold_italic=times_roman_bold_italic +# +zapfchancery_italic=zapfchancery_italic +itczapfchancery_italic=zapfchancery_italic +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the logical fonts. +# +serif.latin1.plain=Times-Roman +serif.latin1.bold=Times-Bold +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.symbol.plain=Symbol +serif.dingbats.plain=ZapfDingbats +serif.symbol.bold=Symbol +serif.dingbats.bold=ZapfDingbats +serif.symbol.italic=Symbol +serif.dingbats.italic=ZapfDingbats +serif.symbol.bolditalic=Symbol +serif.dingbats.bolditalic=ZapfDingbats +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.bold=Helvetica-Bold +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.symbol.plain=Symbol +sansserif.dingbats.plain=ZapfDingbats +sansserif.symbol.bold=Symbol +sansserif.dingbats.bold=ZapfDingbats +sansserif.symbol.italic=Symbol +sansserif.dingbats.italic=ZapfDingbats +sansserif.symbol.bolditalic=Symbol +sansserif.dingbats.bolditalic=ZapfDingbats +# +monospaced.latin1.plain=Courier +monospaced.latin1.bold=Courier-Bold +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.symbol.plain=Symbol +monospaced.dingbats.plain=ZapfDingbats +monospaced.symbol.bold=Symbol +monospaced.dingbats.bold=ZapfDingbats +monospaced.symbol.italic=Symbol +monospaced.dingbats.italic=ZapfDingbats +monospaced.symbol.bolditalic=Symbol +monospaced.dingbats.bolditalic=ZapfDingbats +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the physical fonts. Since these always report style as plain, the +# style key is always plain. So we map using the face name to the correct +# style for the postscript font. This is possible since the face names can +# be replied upon to be different for each style. +# However an application may try to create a Font applying a style to an +# physical name. We want to map to the correct Postscript font there too +# if possible but we do not map cases where the application tries to +# augment a style (eg ask for a bold version of a bold font) +# Defer to the 2D package to attempt create an artificially styled version +# +avantgarde_book.latin1.plain=AvantGarde-Book +avantgarde_demi.latin1.plain=AvantGarde-Demi +avantgarde_book_oblique.latin1.plain=AvantGarde-BookOblique +avantgarde_demi_oblique.latin1.plain=AvantGarde-DemiOblique +# +avantgarde_book.latin1.bold=AvantGarde-Demi +avantgarde_book.latin1.italic=AvantGarde-BookOblique +avantgarde_book.latin1.bolditalic=AvantGarde-DemiOblique +avantgarde_demi.latin1.italic=AvantGarde-DemiOblique +avantgarde_book_oblique.latin1.bold=AvantGarde-DemiOblique +# +bookman_light.latin1.plain=Bookman-Light +bookman_demi.latin1.plain=Bookman-Demi +bookman_light_italic.latin1.plain=Bookman-LightItalic +bookman_demi_italic.latin1.plain=Bookman-DemiItalic +# +bookman_light.latin1.bold=Bookman-Demi +bookman_light.latin1.italic=Bookman-LightItalic +bookman_light.latin1.bolditalic=Bookman-DemiItalic +bookman_light_bold.latin1.italic=Bookman-DemiItalic +bookman_light_italic.latin1.bold=Bookman-DemiItalic +# +courier.latin1.plain=Courier +courier_bold.latin1.plain=Courier-Bold +courier_oblique.latin1.plain=Courier-Oblique +courier_bold_oblique.latin1.plain=Courier-BoldOblique +courier.latin1.bold=Courier-Bold +courier.latin1.italic=Courier-Oblique +courier.latin1.bolditalic=Courier-BoldOblique +courier_bold.latin1.italic=Courier-BoldOblique +courier_italic.latin1.bold=Courier-BoldOblique +# +helvetica_bold.latin1.plain=Helvetica-Bold +helvetica_oblique.latin1.plain=Helvetica-Oblique +helvetica_bold_oblique.latin1.plain=Helvetica-BoldOblique +helvetica.latin1.bold=Helvetica-Bold +helvetica.latin1.italic=Helvetica-Oblique +helvetica.latin1.bolditalic=Helvetica-BoldOblique +helvetica_bold.latin1.italic=Helvetica-BoldOblique +helvetica_italic.latin1.bold=Helvetica-BoldOblique +# +newcenturyschoolbook.latin1.plain=NewCenturySchlbk-Roman +newcenturyschoolbook_bold.latin1.plain=NewCenturySchlbk-Bold +newcenturyschoolbook_italic.latin1.plain=NewCenturySchlbk-Italic +newcenturyschoolbook_bold_italic.latin1.plain=NewCenturySchlbk-BoldItalic +newcenturyschoolbook.latin1.bold=NewCenturySchlbk-Bold +newcenturyschoolbook.latin1.italic=NewCenturySchlbk-Italic +newcenturyschoolbook.latin1.bolditalic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_bold.latin1.italic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_italic.latin1.bold=NewCenturySchlbk-BoldItalic +# +palatino.latin1.plain=Palatino-Roman +palatino_bold.latin1.plain=Palatino-Bold +palatino_italic.latin1.plain=Palatino-Italic +palatino_bold_italic.latin1.plain=Palatino-BoldItalic +palatino.latin1.bold=Palatino-Bold +palatino.latin1.italic=Palatino-Italic +palatino.latin1.bolditalic=Palatino-BoldItalic +palatino_bold.latin1.italic=Palatino-BoldItalic +palatino_italic.latin1.bold=Palatino-BoldItalic +# +times_roman.latin1.plain=Times-Roman +times_roman_bold.latin1.plain=Times-Bold +times_roman_italic.latin1.plain=Times-Italic +times_roman_bold_italic.latin1.plain=Times-BoldItalic +times_roman.latin1.bold=Times-Bold +times_roman.latin1.italic=Times-Italic +times_roman.latin1.bolditalic=Times-BoldItalic +times_roman_bold.latin1.italic=Times-BoldItalic +times_roman_italic.latin1.bold=Times-BoldItalic +# +zapfchancery_italic.latin1.plain=ZapfChancery-MediumItalic +# +# Finally the mappings of PS font names to indexes. +# +AvantGarde-Book=0 +AvantGarde-BookOblique=1 +AvantGarde-Demi=2 +AvantGarde-DemiOblique=3 +Bookman-Demi=4 +Bookman-DemiItalic=5 +Bookman-Light=6 +Bookman-LightItalic=7 +Courier=8 +Courier-Bold=9 +Courier-BoldOblique=10 +Courier-Oblique=11 +Helvetica=12 +Helvetica-Bold=13 +Helvetica-BoldOblique=14 +Helvetica-Narrow=15 +Helvetica-Narrow-Bold=16 +Helvetica-Narrow-BoldOblique=17 +Helvetica-Narrow-Oblique=18 +Helvetica-Oblique=19 +NewCenturySchlbk-Bold=20 +NewCenturySchlbk-BoldItalic=21 +NewCenturySchlbk-Italic=22 +NewCenturySchlbk-Roman=23 +Palatino-Bold=24 +Palatino-BoldItalic=25 +Palatino-Italic=26 +Palatino-Roman=27 +Symbol=28 +Times-Bold=29 +Times-BoldItalic=30 +Times-Italic=31 +Times-Roman=32 +ZapfDingbats=33 +ZapfChancery-MediumItalic=34 +# +font.0=AvantGarde-Book ISOF +font.1=AvantGarde-BookOblique ISOF +font.2=AvantGarde-Demi ISOF +font.3=AvantGarde-DemiOblique ISOF +font.4=Bookman-Demi ISOF +font.5=Bookman-DemiItalic ISOF +font.6=Bookman-Light ISOF +font.7=Bookman-LightItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-BoldOblique ISOF +font.11=Courier-Oblique ISOF +font.12=Helvetica ISOF +font.13=Helvetica-Bold ISOF +font.14=Helvetica-BoldOblique ISOF +font.15=Helvetica-Narrow ISOF +font.16=Helvetica-Narrow-Bold ISOF +font.17=Helvetica-Narrow-BoldOblique ISOF +font.18=Helvetica-Narrow-Oblique ISOF +font.19=Helvetica-Oblique ISOF +font.20=NewCenturySchlbk-Bold ISOF +font.21=NewCenturySchlbk-BoldItalic ISOF +font.22=NewCenturySchlbk-Italic ISOF +font.23=NewCenturySchlbk-Roman ISOF +font.24=Palatino-Bold ISOF +font.25=Palatino-BoldItalic ISOF +font.26=Palatino-Italic ISOF +font.27=Palatino-Roman ISOF +font.28=Symbol findfont +font.29=Times-Bold ISOF +font.30=Times-BoldItalic ISOF +font.31=Times-Italic ISOF +font.32=Times-Roman ISOF +font.33=ZapfDingbats findfont +font.34=ZapfChancery-MediumItalic ISOF +# diff --git a/.local/bin/IPMIView/jre/lib/security/blocked.certs b/.local/bin/IPMIView/jre/lib/security/blocked.certs new file mode 100755 index 0000000..beded9e --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/security/blocked.certs @@ -0,0 +1,39 @@ +Algorithm=SHA-256 +03DB9E5E79FE6117177F81C11595AF598CB176AF766290DBCEB2C318B32E39A2 +08C396C006A21055D00826A5781A5CCFCE2C8D053AB3C197637A4A7A5BB9A650 +14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD +1C5E6985ACC09221DBD1A4B7BBC6D3A8C3F8540D19F20763A9537FDD42B4FFE7 +1F6BF8A3F2399AF7FD04516C2719C566CBAD51F412738F66D0457E1E6BDE6F2D +2A464E4113141352C7962FBD1706ED4B88533EF24D7BBA6CCC5D797FD202F1C4 +31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133 +3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66 +3E11CF90719F6FB44D94EAC9A156B89BEBE7B8598F28EC58913F2BFCAF91D0C0 +423279423B9FC8CB06F1BB7C3B247522B948D5F18939F378ECC901126DE40BFB +450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2 +4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE +4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176 +535D04DFCE027C70BD5F8A9E0AD4F218E9AFDCF5BBCF9B6DE0D81E148E2E3172 +568FAF38D9F155F624838E2181B1CEB4D8459305EE652B0F810C97C3611BFE19 +585CFE6B7436CBD4E732763A2137D7F49599BA9B1790E688FCEC799C58EB84A6 +5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B +71CB00749B9130FB2707A2664BFF958D0FCC8E161D9674C7450BA0FC2BEAF9D3 +76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645 +8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF +9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC +9FADCE80D62A959F9930D748488C1E22E821F4E1E4A43584B848C2FC11E04D77 +A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083 +A90132CEA1D4F7185E4F688EFFD16F6AC14DFD78356A807599A5DABBEEF3333E +B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD +C0D1F42B9F4BF7ACC045B7BB5D4805E10737F67B6310CE505248D543D0D5FE07 +D0156949F1381943442C6974E9B5B49EF441BB799EF20477B90A89C3F33620CE +D151962D954970501C60079258EBCFA38502E0A9F03CD640322B08C0A3117FE5 +D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F +D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967 +D6CEAE5D9E047FAF7D797858D229AC991AD44316D1E2A37A21926D763153593A +DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE +E0E740E4B0F8B3548181FF75B5372FAF4C70B99EC995D694ED0FB91B03FF8D21 +EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C +F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7 +FBB12938ABD86C125796EDF4162D291028890A7D6C0C1CCA75FD4B95EBFA7A1A +FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD +FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B diff --git a/.local/bin/IPMIView/jre/lib/security/cacerts b/.local/bin/IPMIView/jre/lib/security/cacerts new file mode 100755 index 0000000..e36e9ad Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/security/cacerts differ diff --git a/.local/bin/IPMIView/jre/lib/security/default.policy b/.local/bin/IPMIView/jre/lib/security/default.policy new file mode 100755 index 0000000..41f5979 --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/security/default.policy @@ -0,0 +1,222 @@ +// +// Permissions required by modules stored in a run-time image and loaded +// by the platform class loader. +// +// NOTE that this file is not intended to be modified. If additional +// permissions need to be granted to the modules in this file, it is +// recommended that they be configured in a separate policy file or +// ${java.home}/conf/security/java.policy. +// + + +grant codeBase "jrt:/java.compiler" { + permission java.security.AllPermission; +}; + + +grant codeBase "jrt:/java.net.http" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.net"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.net.util"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www"; + permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc"; + permission java.net.SocketPermission "*","connect,resolve"; + permission java.net.URLPermission "http:*","*:*"; + permission java.net.URLPermission "https:*","*:*"; + permission java.net.URLPermission "ws:*","*:*"; + permission java.net.URLPermission "wss:*","*:*"; + permission java.net.URLPermission "socket:*","CONNECT"; // proxy + // For request/response body processors, fromFile, asFile + permission java.io.FilePermission "<>","read,write,delete"; + permission java.util.PropertyPermission "*","read"; + permission java.net.NetPermission "getProxySelector"; +}; + +grant codeBase "jrt:/java.scripting" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.security.jgss" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.smartcardio" { + permission javax.smartcardio.CardPermission "*", "*"; + permission java.lang.RuntimePermission "loadLibrary.j2pcsc"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.jca"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.util"; + permission java.util.PropertyPermission + "javax.smartcardio.TerminalFactory.DefaultType", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "sun.arch.data.model", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.library", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t0GetResponse", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t1GetResponse", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t1StripLe", "read"; + // needed for looking up native PC/SC library + permission java.io.FilePermission "<>","read"; + permission java.security.SecurityPermission "putProviderProperty.SunPCSC"; + permission java.security.SecurityPermission + "clearProviderProperties.SunPCSC"; + permission java.security.SecurityPermission + "removeProviderProperty.SunPCSC"; +}; + +grant codeBase "jrt:/java.sql" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.sql.rowset" { + permission java.security.AllPermission; +}; + + +grant codeBase "jrt:/java.xml.crypto" { + permission java.lang.RuntimePermission + "getStackWalkerWithClassReference"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.util"; + permission java.util.PropertyPermission "*", "read"; + permission java.security.SecurityPermission "putProviderProperty.XMLDSig"; + permission java.security.SecurityPermission + "clearProviderProperties.XMLDSig"; + permission java.security.SecurityPermission + "removeProviderProperty.XMLDSig"; + permission java.security.SecurityPermission + "com.sun.org.apache.xml.internal.security.register"; + permission java.security.SecurityPermission + "getProperty.jdk.xml.dsig.secureValidationPolicy"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xml.internal.*"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xpath.internal"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xpath.internal.*"; +}; + + +grant codeBase "jrt:/jdk.accessibility" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.awt"; +}; + +grant codeBase "jrt:/jdk.charsets" { + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "sun.nio.cs.map", "read"; + permission java.lang.RuntimePermission "charsetProvider"; + permission java.lang.RuntimePermission + "accessClassInPackage.jdk.internal.misc"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.cs"; +}; + +grant codeBase "jrt:/jdk.crypto.ec" { + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.*"; + permission java.lang.RuntimePermission "loadLibrary.sunec"; + permission java.security.SecurityPermission "putProviderProperty.SunEC"; + permission java.security.SecurityPermission "clearProviderProperties.SunEC"; + permission java.security.SecurityPermission "removeProviderProperty.SunEC"; +}; + +grant codeBase "jrt:/jdk.crypto.cryptoki" { + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.crypto.provider"; + permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.*"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.lang.RuntimePermission "loadLibrary.j2pkcs11"; + permission java.util.PropertyPermission "sun.security.pkcs11.allowSingleThreadedModules", "read"; + permission java.util.PropertyPermission "sun.security.pkcs11.disableKeyExtraction", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "jdk.crypto.KeyAgreement.legacyKDF", "read"; + permission java.security.SecurityPermission "putProviderProperty.*"; + permission java.security.SecurityPermission "clearProviderProperties.*"; + permission java.security.SecurityPermission "removeProviderProperty.*"; + permission java.security.SecurityPermission + "getProperty.auth.login.defaultCallbackHandler"; + permission java.security.SecurityPermission "authProvider.*"; + // Needed for reading PKCS11 config file and NSS library check + permission java.io.FilePermission "<>", "read"; +}; + +grant codeBase "jrt:/jdk.desktop" { + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.awt"; +}; + +grant codeBase "jrt:/jdk.dynalink" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.httpserver" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.le" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.vm.compiler" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.vm.compiler.management" { + permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.vm.compiler.collections"; + permission java.lang.RuntimePermission "accessClassInPackage.jdk.vm.ci.runtime"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.core.common"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.debug"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.hotspot"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.options"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.phases.common.jmx"; + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.serviceprovider"; +}; + +grant codeBase "jrt:/jdk.jsobject" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.localedata" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.text.*"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.util.*"; +}; + +grant codeBase "jrt:/jdk.naming.dns" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.scripting.nashorn" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.scripting.nashorn.shell" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.security.auth" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.security.jgss" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.zipfs" { + permission java.io.FilePermission "<>", "read,write,delete"; + permission java.lang.RuntimePermission "fileSystemProvider"; + permission java.lang.RuntimePermission "accessUserInformation"; + permission java.util.PropertyPermission "os.name", "read"; +}; + +// permissions needed by applications using java.desktop module +grant { + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans"; + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans.*"; + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.java.swing.plaf.*"; + permission java.lang.RuntimePermission "accessClassInPackage.com.apple.*"; +}; diff --git a/.local/bin/IPMIView/jre/lib/security/public_suffix_list.dat b/.local/bin/IPMIView/jre/lib/security/public_suffix_list.dat new file mode 100755 index 0000000..125db03 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/security/public_suffix_list.dat differ diff --git a/.local/bin/IPMIView/jre/lib/server/Xusage.txt b/.local/bin/IPMIView/jre/lib/server/Xusage.txt new file mode 100755 index 0000000..b1eaf13 --- /dev/null +++ b/.local/bin/IPMIView/jre/lib/server/Xusage.txt @@ -0,0 +1,22 @@ + -Xmixed mixed mode execution (default) + -Xint interpreted mode execution only + -Xbootclasspath: + set search path for bootstrap classes and resources + -Xbootclasspath/a: + append to end of bootstrap class path + -Xbootclasspath/p: + prepend in front of bootstrap class path + -Xnoclassgc disable class garbage collection + -Xlog: control JVM logging, use -Xlog:help for details + -Xbatch disable background compilation + -Xms set initial Java heap size + -Xmx set maximum Java heap size + -Xss set java thread stack size + -Xfuture enable strictest checks, anticipating future default + -Xrs reduce use of OS signals by Java/VM (see documentation) + -Xcheck:jni perform additional checks for JNI functions + -Xshare:off do not attempt to use shared class data + -Xshare:auto use shared class data if possible (default) + -Xshare:on require using shared class data, otherwise fail. + +The -X options are non-standard and subject to change without notice. diff --git a/.local/bin/IPMIView/jre/lib/server/libjsig.so b/.local/bin/IPMIView/jre/lib/server/libjsig.so new file mode 100755 index 0000000..06295c1 Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/server/libjsig.so differ diff --git a/.local/bin/IPMIView/jre/lib/server/libjvm.so b/.local/bin/IPMIView/jre/lib/server/libjvm.so new file mode 100755 index 0000000..687d13c Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/server/libjvm.so differ diff --git a/.local/bin/IPMIView/jre/lib/tzdb.dat b/.local/bin/IPMIView/jre/lib/tzdb.dat new file mode 100755 index 0000000..2fe060b Binary files /dev/null and b/.local/bin/IPMIView/jre/lib/tzdb.dat differ diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/java.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/java.1 new file mode 100755 index 0000000..0650c59 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/java.1 @@ -0,0 +1,2920 @@ +'\" t +.\" Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: java +.\" Language: Japanese +.\" Date: 2015ǯ3·î3Æü +.\" SectDesc: ´ðËܥġ¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "java" "1" "2015ǯ3·î3Æü" "JDK 8" "´ðËܥġ¼¥ë" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +java \- Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òµ¯Æ°¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fIclassname\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fB\-jar\fR \fIfilename\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡£¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fIclassname\fR +.RS 4 +µ¯Æ°¤¹¤ë¥¯¥é¥¹¤Î̾Á°¡£ +.RE +.PP +\fIfilename\fR +.RS 4 +¸Æ¤Ó½Ð¤µ¤ì¤ëJava¥¢¡¼¥«¥¤¥Ö(JAR)¥Õ¥¡¥¤¥ë¤Î̾Á°¡£\fB\-jar\fR¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë¤Î¤ß»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +\fIargs\fR +.RS 4 +¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿\fBmain()\fR¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤ë°ú¿ô¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBjava\fR¥³¥Þ¥ó¥É¤ÏJava¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò³«»Ï¤·¤Þ¤¹¡£Java Runtime Environment (JRE)¤òµ¯Æ°¤·¤¿¸å¡¢»ØÄꤷ¤¿¥¯¥é¥¹¤ò¥í¡¼¥É¤·¡¢¤½¤Î¥¯¥é¥¹¤Î\fBmain()\fR¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤ê¡¢¤³¤ì¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢\fIpublic\fR¤ª¤è¤Ó\fIstatic\fR¤È¤·¤ÆÀë¸À¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢ÃͤÏÊÖ¤»¤Þ¤»¤ó¡£¤µ¤é¤Ë¡¢\fBString\fRÇÛÎó¤ò¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æ»ØÄê¤Ç¤­¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥á¥½¥Ã¥ÉÀë¸À¤Ï¼¡¤Î·Á¼°¤ò´Þ¤ß¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpublic static void main(String[] args)\fR + +.fi +.if n \{\ +.RE +.\} +.PP +\fBjava\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¢\fBmain()\fR¥á¥½¥Ã¥É¤¬¤¢¤ë¤«\fBjavafx\&.application\&.Application\fR¤ò³ÈÄ¥¤¹¤ë¥¯¥é¥¹¤ò¥í¡¼¥É¤¹¤ë¤³¤È¤Ç¡¢JavaFX¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òµ¯Æ°¤Ç¤­¤Þ¤¹¡£¸å¼Ô¤Î¾ì¹ç¡¢µ¯Æ°¥Ä¡¼¥ë¤Ï\fBApplication\fR¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò¹½À®¤·¡¢¤½¤Î\fBinit()\fR¥á¥½¥Ã¥É¤ò¥³¡¼¥ë¤·¡¢\fBstart(javafx\&.stage\&.Stage)\fR¥á¥½¥Ã¥É¤ò¥³¡¼¥ë¤·¤Þ¤¹¡£ +.PP +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\fBjava\fR¥³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤Ê¤¤ºÇ½é¤Î°ú¿ô¤Ï¡¢¸Æ¤Ó½Ð¤µ¤ì¤ë¥¯¥é¥¹¤Î´°Á´½¤¾þ̾¤Ç¤¹¡£\fB\-jar\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î°ú¿ô¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤È¥ê¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ò´Þ¤àJAR¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ë¤Ê¤ê¤Þ¤¹¡£µ¯Æ°¥¯¥é¥¹¤Ï¡¢¥½¡¼¥¹¡¦¥³¡¼¥É¤Î\fBMain\-Class\fR¥Þ¥Ë¥Õ¥§¥¹¥È¡¦¥Ø¥Ã¥À¡¼¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.PP +JRE¤Ï¡¢¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¡¦¥¯¥é¥¹¡¦¥Ñ¥¹¡¢¥¤¥ó¥¹¥È¡¼¥ëºÑ³ÈÄ¥µ¡Ç½¤ª¤è¤Ó¥æ¡¼¥¶¡¼¤Î¥¯¥é¥¹¡¦¥Ñ¥¹¤Î3²Õ½ê¤«¤é¡¢µ¯Æ°¥¯¥é¥¹(¤ª¤è¤Ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¾¤Î¥¯¥é¥¹)¤ò¸¡º÷¤·¤Þ¤¹¡£ +.PP +¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤ÏJAR¥Õ¥¡¥¤¥ë̾¤Î¸å¤Î°ú¿ô¤Ï¡¢\fBmain()\fR¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤Þ¤¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\fBjava\fR¥³¥Þ¥ó¥É¤Ï¡¢¼¡¤Î¥«¥Æ¥´¥ê¤ËʬÎà¤Ç¤­¤ë¹­ÈϤʥª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +ɸ½à¥ª¥×¥·¥ç¥ó +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Èóɸ½à¥ª¥×¥·¥ç¥ó +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¹âÅ٤ʥé¥ó¥¿¥¤¥à¡¦¥ª¥×¥·¥ç¥ó +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¹âÅÙ¤ÊJIT¥³¥ó¥Ñ¥¤¥é¡¦¥ª¥×¥·¥ç¥ó +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¹âÅ٤ʥµ¡¼¥Ó¥¹¥¢¥Ó¥ê¥Æ¥£¡¦¥ª¥×¥·¥ç¥ó +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¹âÅ٤ʥ¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó +.RE +.PP +ɸ½à¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java Virtual Machine (JVM)¤Î¤¹¤Ù¤Æ¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢JRE¤Î¥Ð¡¼¥¸¥ç¥ó¤Î³Îǧ¡¢¥¯¥é¥¹¡¦¥Ñ¥¹¤ÎÀßÄê¡¢¾éĹ¤Ê½ÐÎϤÎÍ­¸ú²½¤Ê¤É¤Î°ìÈÌŪ¤Ê¥¢¥¯¥·¥ç¥ó¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.PP +ɸ½à°Ê³°¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java HotSpot²¾ÁÛ¥Þ¥·¥ó¤Ë¸ÇÍ­¤ÎÈÆÍÑ¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¤¿¤á¡¢¤¹¤Ù¤Æ¤ÎJVM¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤ÏÊݾڤµ¤ì¤º¡¢Êѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-X\fR¤Ç³«»Ï¤·¤Þ¤¹¡£ +.PP +³ÈÄ¥¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉÔÍѰդ˻ÈÍѤ·¤Ê¤¤¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢ÆÃÄê¤Î¥·¥¹¥Æ¥àÍ×·ï¤ò»ý¤Ä¤³¤È¤¬Â¿¤¯¡¢¥·¥¹¥Æ¥à¹½À®¥Ñ¥é¥á¡¼¥¿¤Ø¤ÎÆÃ¸¢¥¢¥¯¥»¥¹¤¬É¬Íפʾì¹ç¤¬¤¢¤ëJava HotSpot²¾ÁÛ¥Þ¥·¥óÁàºî¤ÎÆÃÄê¤ÎÎΰè¤òÄ´À°¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë³«È¯¼Ô¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£¤³¤ì¤é¤Ï¡¢¤¹¤Ù¤Æ¤ÎJVM¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤ÏÊݾڤµ¤ì¤º¡¢Êѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£³ÈÄ¥¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX\fR¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£ +.PP +ºÇ¿·¥ê¥ê¡¼¥¹¤ÇÈó¿ä¾©¤Þ¤¿¤Ïºï½ü¤µ¤ì¤ë¥ª¥×¥·¥ç¥ó¤òÄÉÀפ¹¤ë¤¿¤á¤Ë¡¢¥É¥­¥å¥á¥ó¥È¤ÎºÇ¸å¤ËÈó¿ä¾©¤Çºï½ü¤µ¤ì¤¿¥ª¥×¥·¥ç¥ó¤È¤¤¤¦Ì¾Á°¤Î¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ +.PP +¥Ö¡¼¥ë¡¦¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëµ¡Ç½¤òÍ­¸ú¤Ë¤·¤¿¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ñ¥é¥á¡¼¥¿¤òɬÍפȤ·¤Þ¤»¤ó¡£¥Ö¡¼¥ëÃÍ\fB\-XX\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥é¥¹µ­¹æ(\fB\-XX:+\fR\fIOptionName\fR)¤ò»ÈÍѤ·¤ÆÍ­¸ú¤Ë¤·¡¢¥Þ¥¤¥Ê¥¹µ­¹æ(\fB\-XX:\-\fR\fIOptionName\fR)¤ò»ÈÍѤ·¤ÆÌµ¸ú¤Ë¤·¤Þ¤¹¡£ +.PP +°ú¿ô¤¬É¬Íפʥª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢°ú¿ô¤Ï¡¢¥ª¥×¥·¥ç¥ó̾¤ò¶õÇò¡¢¥³¥í¥ó(:)¤Þ¤¿¤ÏÅù¹æ(=)¤Ç¶èÀڤ俤â¤Î¤Ë¤Ê¤ë¤«¡¢¤¢¤ë¤¤¤Ï°ú¿ô¤¬¥ª¥×¥·¥ç¥ó¤Î¸å¤ËľÀܳ¤¯¾ì¹ç¤â¤¢¤ê¤Þ¤¹(Àµ³Î¤Ê¹½Ê¸¤Ï³Æ¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹)¡£¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¤è¤¦µá¤á¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ÀÜÈø¼­¤ò»ÈÍѤ·¤Ê¤¤¤«¡¢¤¢¤ë¤¤¤Ï¥­¥í¥Ð¥¤¥È(KB)¤Ë¤ÏÀÜÈø¼­\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È(MB)¤Ë¤ÏÀÜÈø¼­\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È(GB)¤Ë¤ÏÀÜÈø¼­\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤ò»ÈÍѤ·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥µ¥¤¥º¤ò8GB¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢\fB8g\fR¡¢\fB8192m\fR¡¢\fB8388608k\fR¤Þ¤¿¤Ï\fB8589934592\fR¤Î¤¤¤º¤ì¤«¤ò°ú¿ô¤È¤·¤Æ»ØÄê¤Ç¤­¤Þ¤¹¡£¥Ñ¡¼¥»¥ó¥È¤Î»ØÄ꤬ɬÍפʾì¹ç¤Ï¡¢0¤«¤é1¤Î¿ôÃͤò»ÈÍѤ·¤Þ¤¹(¤¿¤È¤¨¤Ð¡¢25%¤Î¾ì¹ç¤Ï\fB0\&.25\fR¤ò»ØÄꤷ¤Þ¤¹)¡£ +.SS "ɸ½à¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Ï¡¢JVM¤Î¤¹¤Ù¤Æ¤Î¼ÂÁõ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ëºÇ¤â°ìÈÌŪ¤Ë»ÈÍѤµ¤ì¤ë¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ +.PP +\-agentlib:\fIlibname\fR[=\fIoptions\fR] +.RS 4 +»ØÄꤷ¤¿¥Í¥¤¥Æ¥£¥Ö¡¦¥¨¡¼¥¸¥§¥ó¥È¡¦¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Þ¤¹¡£¥é¥¤¥Ö¥é¥ê̾¤Î¸å¤Ë¡¢¥é¥¤¥Ö¥é¥ê¤Ë¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¤Î¥«¥ó¥Þ¶èÀÚ¤ê¥ê¥¹¥È¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.sp +¥ª¥×¥·¥ç¥ó\fB\-agentlib:foo\fR¤ò»ØÄꤷ¤¿¾ì¹ç¡¢JVM¤Ï¡¢\fBLD_LIBRARY_PATH\fR¥·¥¹¥Æ¥àÊÑ¿ô(OS X¤Ç¤Ï¡¢¤³¤ÎÊÑ¿ô¤Ï\fBDYLD_LIBRARY_PATH\fR¤Ë¤Ê¤ê¤Þ¤¹)¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤Ë\fBlibfoo\&.so\fR¤È¤¤¤¦Ì¾Á°¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤è¤¦¤È¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¹¥¿¥Ã¥¯¤Î¿¼¤µ3¤Ç¡¢20¥ß¥êÉ䴤Ȥ˥ҡ¼¥×¡¦¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡¦¥Ä¡¼¥ë(HPROF)¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Æ¡¢¥µ¥ó¥×¥ë¤ÎCPU¾ðÊó¤ò¼èÆÀ¤¹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:hprof=cpu=samples,interval=20,depth=3\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤ÎÎã¤Ç¤Ï¡¢¥á¥¤¥ó¡¦¥¯¥é¥¹¤Î¥í¡¼¥ÉÁ°¤ËJVM¤ò°ì»þÄä»ß¤·¤Æ¡¢Java¥Ç¥Ð¥Ã¥°¡¦¥ï¥¤¥ä¡¦¥×¥í¥È¥³¥ë(JDWP)¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Æ¡¢¥Ý¡¼¥È8000¤Ç¤Î¥½¥±¥Ã¥ÈÀܳÍѤ˥ꥹ¥Ë¥ó¥°¤¹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:jdwp=transport=dt_socket,server=y,address=8000\fR + +.fi +.if n \{\ +.RE +.\} +¥Í¥¤¥Æ¥£¥Ö¡¦¥¨¡¼¥¸¥§¥ó¥È¡¦¥é¥¤¥Ö¥é¥ê¤Î¾ÜºÙ¤Ï¡¢¼¡¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html¤Ë¤¢¤ë\fBjava\&.lang\&.instrument\fR¥Ñ¥Ã¥±¡¼¥¸¤ÎÀâÌÀ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +http://docs\&.oracle\&.com/javase/8/docs/platform/jvmti/jvmti\&.html#starting¤Ë¤¢¤ëJVM¥Ä¡¼¥ë¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡¦¥¬¥¤¥É¤Î¥¨¡¼¥¸¥§¥ó¥È¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ë¹à +.RE +.RE +.PP +\-agentpath:\fIpathname\fR[=\fIoptions\fR] +.RS 4 +ÀäÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¥Í¥¤¥Æ¥£¥Ö¡¦¥¨¡¼¥¸¥§¥ó¥È¡¦¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-agentlib\fR¤ÈƱÅù¤Ç¤¹¤¬¡¢¥é¥¤¥Ö¥é¥ê¤Î¥Õ¥ë¡¦¥Ñ¥¹¤ª¤è¤Ó¥Õ¥¡¥¤¥ë̾¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +\-client +.RS 4 +Java HotSpot Client VM¤òÁªÂò¤·¤Þ¤¹¡£64¥Ó¥Ã¥È¡¦¥Ð¡¼¥¸¥ç¥ó¤ÎJava SE Development Kit (JDK)¤Ç¤Ï¡¢¸½ºß¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¡¢¤«¤ï¤ê¤ËServer JVM¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤ÎJVMÁªÂò¤Ï¡¢http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html¤Ë¤¢¤ë +¥µ¡¼¥Ð¡¼¥¯¥é¥¹¡¦¥Þ¥·¥ó¤Î¸¡½Ð¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-D\fIproperty\fR=\fIvalue\fR +.RS 4 +¥·¥¹¥Æ¥à¡¦¥×¥í¥Ñ¥Æ¥£¤ÎÃͤòÀßÄꤷ¤Þ¤¹¡£\fIproperty\fRÊÑ¿ô¤Ï¡¢¥×¥í¥Ñ¥Æ¥£¤Î̾Á°¤òɽ¤¹¡¢¶õÇò¤Î¤Ê¤¤Ê¸»úÎó¤Ç¤¹¡£\fIvalue\fRÊÑ¿ô¤Ï¡¢¥×¥í¥Ñ¥Æ¥£¤ÎÃͤòɽ¤¹Ê¸»úÎó¤Ç¤¹¡£\fIvalue\fR¤¬¶õÇò¤ò´Þ¤àʸ»úÎó¤Î¾ì¹ç¡¢¤½¤ì¤ò°úÍÑÉä¤Ç°Ï¤ß¤Þ¤¹(Îã: +\fB\-Dfoo="foo bar"\fR)¡£ +.RE +.PP +\-d32 +.RS 4 +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò32¥Ó¥Ã¥È´Ä¶­¤Ç¼Â¹Ô¤·¤Þ¤¹¡£32¥Ó¥Ã¥È´Ä¶­¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤¬Êó¹ð¤µ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢64¥Ó¥Ã¥È¡¦¥·¥¹¥Æ¥à¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤­¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï32¥Ó¥Ã¥È´Ä¶­¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-d64 +.RS 4 +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò64¥Ó¥Ã¥È´Ä¶­¤Ç¼Â¹Ô¤·¤Þ¤¹¡£64¥Ó¥Ã¥È´Ä¶­¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤¬Êó¹ð¤µ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢64¥Ó¥Ã¥È¡¦¥·¥¹¥Æ¥à¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤­¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï32¥Ó¥Ã¥È´Ä¶­¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +.sp +¸½ºß¤Î¤È¤³¤í¡¢Java HotSpot Server VM¤Î¤ß¤¬64¥Ó¥Ã¥È¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¿¤á¡¢\fB\-d64\fR»ÈÍÑ»þ¤Ë¤Ï\fB\-server\fR¥ª¥×¥·¥ç¥ó¤¬°ÅÌÛŪ¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£\fB\-d64\fR»ÈÍÑ»þ¤Ë¤Ï¡¢\fB\-client\fR¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤³¤Î»ÅÍͤϡ¢¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ç¤ÏÊѹ¹¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-disableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-da[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +¥¢¥µ¡¼¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¢¥µ¡¼¥·¥ç¥ó¤Ï¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥¯¥é¥¹¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ +.sp +°ú¿ô¤Ê¤·¤Î\fB\-disableassertions\fR +(\fB\-da\fR)¤ò»ØÄꤹ¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£\fB\&.\&.\&.\fR¤Ç½ª¤ï¤ë\fIpackagename\fR°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤È¤½¤Î¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£°ú¿ô¤È¤·¤Æ\fB\&.\&.\&.\fR¤Î¤ß¤ò»ØÄꤹ¤ë¤È¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë̾Á°¤Î¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£\fIclassname\fR°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢ÀÚÂØ¤¨¤Ë¤è¤Ã¤Æ¡¢»ØÄꤷ¤¿¥¯¥é¥¹Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +\fB\-disableassertions\fR +(\fB\-da\fR)¥ª¥×¥·¥ç¥ó¤Ï¡¢¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤ª¤è¤Ó¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ËŬÍѤµ¤ì¤Þ¤¹(¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤Ë¤Ï¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤Ï¤¢¤ê¤Þ¤»¤ó)¡£¤³¤Î¥ë¡¼¥ë¤Ë¤Ï1¤ÄÎã³°¤¬¤¢¤ê¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ËŬÍѤµ¤ì¤Þ¤»¤ó¡£¤³¤ì¤Ë¤è¤ê¡¢¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤ò´Êñ¤Ë̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fB\-disablesystemassertions\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ä¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤òÌÀ¼¨Åª¤ËÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-enableassertions\fR +(\fB\-ea\fR)¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£Î¾Êý¤Î¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ÈÍѤǤ­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥Ñ¥Ã¥±¡¼¥¸\fBcom\&.wombat\&.fruitbat\fR +(¤ª¤è¤Ó¤½¤Î¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸)¤Ç¤Ï¥¢¥µ¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Æ¡¢¥¯¥é¥¹\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR¤Ç¤Ï¥¢¥µ¡¼¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤Æ¡¢\fBMyClass\fR¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-disablesystemassertions +.br +\-dsa +.RS 4 +¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-enableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-ea[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +¥¢¥µ¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¢¥µ¡¼¥·¥ç¥ó¤Ï¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥¯¥é¥¹¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ +.sp +°ú¿ô¤Ê¤·¤Î\fB\-enableassertions\fR +(\fB\-ea\fR)¤ò»ØÄꤹ¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£\fB\&.\&.\&.\fR¤Ç½ª¤ï¤ë\fIpackagename\fR°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸¤È¤½¤Î¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£°ú¿ô¤È¤·¤Æ\fB\&.\&.\&.\fR¤Î¤ß¤ò»ØÄꤹ¤ë¤È¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë̾Á°¤Î¤Ê¤¤¥Ñ¥Ã¥±¡¼¥¸Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£\fIclassname\fR°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢ÀÚÂØ¤¨¤Ë¤è¤Ã¤Æ¡¢»ØÄꤷ¤¿¥¯¥é¥¹Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +\fB\-enableassertions\fR +(\fB\-ea\fR)¥ª¥×¥·¥ç¥ó¤Ï¡¢¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤ª¤è¤Ó¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ËŬÍѤµ¤ì¤Þ¤¹(¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤Ë¤Ï¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤Ï¤¢¤ê¤Þ¤»¤ó)¡£¤³¤Î¥ë¡¼¥ë¤Ë¤Ï1¤ÄÎã³°¤¬¤¢¤ê¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ËŬÍѤµ¤ì¤Þ¤»¤ó¡£¤³¤ì¤Ë¤è¤ê¡¢¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤ò´Êñ¤ËÍ­¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fB\-enablesystemassertions\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ëÊ̤Υ¹¥¤¥Ã¥Á¤òÄ󶡤·¤Þ¤¹¡£ +.sp +ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸¤ä¥¯¥é¥¹¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤òÌÀ¼¨Åª¤Ë̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-disableassertions\fR +(\fB\-da\fR)¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£Ã±°ì¥³¥Þ¥ó¥É¤Ë¤³¤ì¤é¤Î¥¹¥¤¥Ã¥Á¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÊ£¿ô»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢»ØÄꤷ¤¿¥¹¥¤¥Ã¥Á¤¬½çÈ֤˽èÍý¤µ¤ì¤Æ¤«¤é¥¯¥é¥¹¤¬¥í¡¼¥É¤µ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥Ñ¥Ã¥±¡¼¥¸\fBcom\&.wombat\&.fruitbat\fR +(¤ª¤è¤Ó¤½¤Î¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸)¤Ç¤Î¤ß¥¢¥µ¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Æ¡¢¥¯¥é¥¹\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR¤Ç¤Ï¥¢¥µ¡¼¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤Æ¡¢\fBMyClass\fR¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-enablesystemassertions +.br +\-esa +.RS 4 +¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¡¦¥¯¥é¥¹Æâ¤Ç¥¢¥µ¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-help +.br +\-? +.RS 4 +¼ÂºÝ¤ËJVM¤ò¼Â¹Ô¤»¤º¤Ë¡¢\fBjava\fR¥³¥Þ¥ó¥É¤Î»ÈÍѾõ¶·¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-jar \fIfilename\fR +.RS 4 +JAR¥Õ¥¡¥¤¥ë¤Ë¥«¥×¥»¥ë²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£\fIfilename\fR°ú¿ô¤Ï¡¢»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«»ÏÅÀ¤È¤·¤Æµ¡Ç½¤¹¤ë\fBpublic static void main(String[] args)\fR¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¢\fBMain\-Class:\fR\fIclassname\fR¤È¤¤¤¦·Á¼°¤Î1¹Ô¤ò´Þ¤à¥Þ¥Ë¥Õ¥§¥¹¥È¤ò»ý¤ÄJAR¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¹¡£ +.sp +\fB\-jar\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢»ØÄꤷ¤¿JAR¥Õ¥¡¥¤¥ë¤¬¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¹¤Î¥½¡¼¥¹¤Ë¤Ê¤ê¡¢¥¯¥é¥¹¡¦¥Ñ¥¹¤Î¾¤ÎÀßÄê¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ +.sp +JAR¥Õ¥¡¥¤¥ë¤Î¾ÜºÙ¤Ï¡¢¼¡¤Î¥ê¥½¡¼¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jar/index\&.html¤Ë¤¢¤ëJava¥¢¡¼¥«¥¤¥Ö(JAR)¥Õ¥¡¥¤¥ë¤Î¥¬¥¤¥É +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.html¤Ë¤¢¤ë +¡Ö¥ì¥Ã¥¹¥ó: JAR¥Õ¥¡¥¤¥ë¤Î¥×¥í¥°¥é¥à¤Î¥Ñ¥Ã¥±¡¼¥¸²½¡× +.RE +.RE +.PP +\-javaagent:\fIjarpath\fR[=\fIoptions\fR] +.RS 4 +»ØÄꤷ¤¿Java¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¥¨¡¼¥¸¥§¥ó¥È¤ò¥í¡¼¥É¤·¤Þ¤¹¡£Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¤¥ó¥¹¥È¥¥¥ë¥á¥ó¥È¤Î¾ÜºÙ¤Ï¡¢http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html¤Ë¤¢¤ëJava API¥É¥­¥å¥á¥ó¥È¤Î\fBjava\&.lang\&.instrument\fR¥Ñ¥Ã¥±¡¼¥¸¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-jre\-restrict\-search +.RS 4 +¥æ¡¼¥¶¡¼¡¦¥×¥é¥¤¥Ù¡¼¥È¤ÊJRE¤ò¥Ð¡¼¥¸¥ç¥ó¸¡º÷¤Ë´Þ¤á¤Þ¤¹¡£ +.RE +.PP +\-no\-jre\-restrict\-search +.RS 4 +¥æ¡¼¥¶¡¼¡¦¥×¥é¥¤¥Ù¡¼¥È¤ÊJRE¤ò¥Ð¡¼¥¸¥ç¥ó¸¡º÷¤«¤é½ü³°¤·¤Þ¤¹¡£ +.RE +.PP +\-server +.RS 4 +Java HotSpot Server VM¤òÁªÂò¤·¤Þ¤¹¡£64¥Ó¥Ã¥È¡¦¥Ð¡¼¥¸¥ç¥ó¤ÎJDK¤Ç¤Ï¡¢Server VM¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¿¤á¡¢¤½¤Î¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°ÅÌÛŪ¤Ç¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤ÎJVMÁªÂò¤Ï¡¢http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html¤Ë¤¢¤ë +¥µ¡¼¥Ð¡¼¥¯¥é¥¹¡¦¥Þ¥·¥ó¤Î¸¡½Ð¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-showversion +.RS 4 +¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô¤ò³¹Ô¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-version\fR¥ª¥×¥·¥ç¥ó¤ÈƱÅù¤Ç¤¹¤¬¡¢\-version¤Ï¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Îɽ¼¨¸å¤ËJVM¤Ë½ªÎ»¤ò»Ø¼¨¤¹¤ëÅÀ¤¬°Û¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-splash:\fIimgname\fR +.RS 4 +\fIimgname\fR¤Ç»ØÄꤵ¤ì¤¿¥¤¥á¡¼¥¸¤ò´Þ¤à¥¹¥×¥é¥Ã¥·¥å²èÌ̤òɽ¼¨¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¯Æ°»þ¤Ë\fBimages\fR¥Ç¥£¥ì¥¯¥È¥ê¤Î\fBsplash\&.gif\fR¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-splash:images/splash\&.gif\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-verbose:class +.RS 4 +¥í¡¼¥É¤µ¤ì¤¿³Æ¥¯¥é¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-verbose:gc +.RS 4 +³Æ¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó(GC)¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-verbose:jni +.RS 4 +¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥½¥Ã¥É¤Î»ÈÍѤª¤è¤Ó¤½¤Î¾¤ÎJava Native Interface (JNI)¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-version +.RS 4 +¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ¤«¤é½ªÎ»¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-showversion\fR¥ª¥×¥·¥ç¥ó¤ÈƱÅù¤Ç¤¹¤¬¡¢\-showversion¤Ï¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Îɽ¼¨¸å¤ËJVM¤Ë½ªÎ»¤ò»Ø¼¨¤·¤Ê¤¤ÅÀ¤¬°Û¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-version:\fIrelease\fR +.RS 4 +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô¤Ë»ÈÍѤ¹¤ë¥ê¥ê¡¼¥¹¡¦¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£¥³¡¼¥ë¤µ¤ì¤¿\fBjava\fR¥³¥Þ¥ó¥É¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¤³¤Î»ØÄêÆâÍÆ¤òËþ¤¿¤µ¤º¡¢¤«¤ÄŬÀڤʼÂÁõ¤¬¥·¥¹¥Æ¥à¾å¤Ç¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ÎŬÀڤʼÂÁõ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +\fIrelease\fR°ú¿ô¤Ï¡¢Àµ³Î¤Ê¥Ð¡¼¥¸¥ç¥óʸ»úÎ󡢤ޤ¿¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤È¥Ð¡¼¥¸¥ç¥óÈϰϤΥꥹ¥È¤ò»ØÄꤷ¤Þ¤¹¡£\fI¥Ð¡¼¥¸¥ç¥óʸ»úÎó\fR¤Ï¡¢¼¡¤Î·Á¼°¤Ç¡¢³«È¯¼Ô¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò»ØÄꤷ¤Þ¤¹: +\fB1\&.\fR\fIx\fR\fB\&.0_\fR\fIu\fR +(\fIx\fR¤Ï¥á¥¸¥ã¡¼¡¦¥Ð¡¼¥¸¥ç¥óÈֹ桢\fIu\fR¤Ï¹¹¿·¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤¹)¡£\fI¥Ð¡¼¥¸¥ç¥óÈϰÏ\fR¤Ï¡¢¤³¤Î¥Ð¡¼¥¸¥ç¥ó°Ê¹ß¤ò»ØÄꤹ¤ë¤Ë¤Ï¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤Î¸å¤Ë¥×¥é¥¹µ­¹æ(\fB+\fR)¤ò³¤±¤¿¤â¤Î¡¢¤Þ¤¿¤Ï°ìÃפ¹¤ëÀÜÆ¬¼­¤ò´Þ¤àǤ°Õ¤Î¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤ò»ØÄꤹ¤ë¤Ë¤Ï°ìÉô¤Î¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤Î¸å¤Ë¥¢¥¹¥¿¥ê¥¹¥¯(\fB*\fR)¤ò³¤±¤¿¤â¤Î¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£ÏÀÍý\fIOR\fR¤ÎÁȹ礻¤Ë¤Ï¶õÇò¡¢2¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤Îʸ»úÎó/ÈϰϤÎÏÀÍý\fIAND\fR¤ÎÁȹ礻¤Ë¤Ï¥¢¥ó¥Ñ¥µ¥ó¥É(\fB&\fR)¤ò»ÈÍѤ·¤Æ¡¢¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤È¥Ð¡¼¥¸¥ç¥óÈϰϤòÁȤ߹礻¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥¯¥é¥¹¤Þ¤¿¤ÏJAR¥Õ¥¡¥¤¥ë¤Î¼Â¹Ô¤ËJRE 6u13 (1\&.6\&.0_13)¤Þ¤¿¤Ï6u10 (1\&.6\&.0_10)°Ê¹ß¤ÎǤ°Õ¤ÎJRE 6¤Î¤¤¤º¤ì¤«¤òɬÍפȤ¹¤ë¾ì¹ç¡¢¼¡¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-version:"1\&.6\&.0_13 1\&.6* & 1\&.6\&.0_10+"\fR + +.fi +.if n \{\ +.RE +.\} +°úÍÑÉ䤬ɬÍפʤΤϡ¢\fIrelease\fR¥Ñ¥é¥á¡¼¥¿¤Ë¶õÇò¤¬¤¢¤ë¾ì¹ç¤Î¤ß¤Ç¤¹¡£ +.sp +JAR¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥óÍ×·ï¤ò¥³¥Þ¥ó¥É¹Ô¤Ë»ØÄꤹ¤ë¤è¤ê¤â¡¢JAR¥Õ¥¡¥¤¥ë¤Î¥Þ¥Ë¥Õ¥§¥¹¥ÈÆâ¤Ë»ØÄꤹ¤ë¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +.RE +.SS "Èóɸ½à¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java HotSpot²¾ÁÛ¥Þ¥·¥ó¤Ë¸ÇÍ­¤ÎÈÆÍÑ¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£ +.PP +\-X +.RS 4 +»ÈÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î\fB\-X\fR¥ª¥×¥·¥ç¥ó¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-Xbatch +.RS 4 +¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥³¥ó¥Ñ¥¤¥ë¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢JVM¤Ç¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥³¥ó¥Ñ¥¤¥ë¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¡¢¥á¥½¥Ã¥É¤ò¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥¿¥¹¥¯¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¡¢¥¤¥ó¥¿¥×¥ê¥¿¡¦¥â¡¼¥É¤Ç¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£\fB\-Xbatch\fR¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥³¥ó¥Ñ¥¤¥ë¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë¤¬´°Î»¤¹¤ë¤Þ¤Ç¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¡¦¥¿¥¹¥¯¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£ +.sp +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX:\-BackgroundCompilation\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-Xbootclasspath:\fIpath\fR +.RS 4 +¥Ö¡¼¥È¡¦¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¢JAR¥Õ¥¡¥¤¥ë¤ª¤è¤ÓZIP¥¢¡¼¥«¥¤¥Ö¤Î¡¢¥³¥í¥ó(:)¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢JDK¤Ë´Þ¤Þ¤ì¤ë¥Ö¡¼¥È¡¦¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤Î¤«¤ï¤ê¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +JRE¥Ð¥¤¥Ê¥ê¡¦¥³¡¼¥É¡¦¥é¥¤¥»¥ó¥¹¤Ë°ãÈ¿¤¹¤ë¤¿¤á¡¢\fBrt\&.jar\fR¤Ç¥¯¥é¥¹¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ëÌÜŪ¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥Ç¥×¥í¥¤¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-Xbootclasspath/a:\fIpath\fR +.RS 4 +¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¡¦¥¯¥é¥¹¡¦¥Ñ¥¹¤ÎºÇ¸å¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¡¢JAR¥Õ¥¡¥¤¥ë¤ª¤è¤ÓZIP¥¢¡¼¥«¥¤¥Ö¤Î¡¢¥³¥í¥ó(:)¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +JRE¥Ð¥¤¥Ê¥ê¡¦¥³¡¼¥É¡¦¥é¥¤¥»¥ó¥¹¤Ë°ãÈ¿¤¹¤ë¤¿¤á¡¢\fBrt\&.jar\fR¤Ç¥¯¥é¥¹¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ëÌÜŪ¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥Ç¥×¥í¥¤¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-Xbootclasspath/p:\fIpath\fR +.RS 4 +¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¡¦¥¯¥é¥¹¡¦¥Ñ¥¹¤ÎÀèÆ¬¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¡¢JAR¥Õ¥¡¥¤¥ë¤ª¤è¤ÓZIP¥¢¡¼¥«¥¤¥Ö¤Î¡¢¥³¥í¥ó(:)¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +JRE¥Ð¥¤¥Ê¥ê¡¦¥³¡¼¥É¡¦¥é¥¤¥»¥ó¥¹¤Ë°ãÈ¿¤¹¤ë¤¿¤á¡¢\fBrt\&.jar\fR¤Ç¥¯¥é¥¹¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ëÌÜŪ¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥Ç¥×¥í¥¤¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-Xcheck:jni +.RS 4 +Java Native Interface (JNI)µ¡Ç½¤ËÂФ·¤ÆÄɲåÁ¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤¹¡£¶ñÂÎŪ¤Ë¤Ï¡¢¤³¤ì¤Ï¡¢JNI¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤¹¤ëÁ°¤Ë¡¢JNI´Ø¿ô¤ËÅϤµ¤ì¤ë¥Ñ¥é¥á¡¼¥¿¤È¼Â¹Ô´Ä¶­¤Î¥Ç¡¼¥¿¤ò¸¡¾Ú¤·¤Þ¤¹¡£Ìµ¸ú¤Ê¥Ç¡¼¥¿¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¡¦¥³¡¼¥É¤ËÌäÂ꤬¤¢¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤ë¤¿¤á¡¢JVM¤Ï¥ê¥«¥Ð¥êÉÔǽ¤Ê¥¨¥é¡¼¤òȯÀ¸¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹Äã²¼¤¬Í½ÁÛ¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-Xcomp +.RS 4 +ºÇ½é¤Î¸Æ½Ð¤·¤Ç¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë¤ò¶¯À©Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥ÈVM(\fB\-client\fR)¤Ï1,000¤Î²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤ò¼Â¹Ô¤·¡¢¥µ¡¼¥Ð¡¼VM(\fB\-server\fR)¤Ï10,000¤Î²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤ò¼Â¹Ô¤·¤Æ¡¢¸úΨŪ¤Ê¥³¥ó¥Ñ¥¤¥ë¤Î¤¿¤á¤Î¾ðÊó¤ò¼ý½¸¤·¤Þ¤¹¡£\fB\-Xcomp\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢¸úΨ¤òµ¾À·¤Ë¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£ +.sp +\fB\-XX:CompileThreshold\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë¤ÎÁ°¤Ë¡¢²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤Î¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-Xdebug +.RS 4 +²¿¤â¹Ô¤¤¤Þ¤»¤ó¡£¸åÊý¸ß´¹À­¤Î¤¿¤á¤ËÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-Xdiag +.RS 4 +ÄɲäοÇÃÇ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +\-Xfuture +.RS 4 +¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë·Á¼°¤Î»ÅÍͤؤνàµò¤ò¶¯²½¤¹¤ë¡¢¸·Ì©¤Ê¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë·Á¼°¤Î¥Á¥§¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¤è¤ê¸·Ì©¤Ê¥Á¥§¥Ã¥¯¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¤¿¤á¡¢¿·¤·¤¤¥³¡¼¥É¤ò³«È¯¤¹¤ë¤È¤­¤Ë¤Ï¡¢³«È¯¼Ô¤Ï¤³¤Î¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£ +.RE +.PP +\-Xint +.RS 4 +¥¤¥ó¥¿¥×¥ê¥¿ÀìÍѥ⡼¥É¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£¥Í¥¤¥Æ¥£¥Ö¡¦¥³¡¼¥É¤Ø¤Î¥³¥ó¥Ñ¥¤¥ë¤Ï̵¸ú¤Ë¤Ê¤ê¡¢¤¹¤Ù¤Æ¤Î¥Ð¥¤¥È¥³¡¼¥É¤¬¥¤¥ó¥¿¥×¥ê¥¿¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¥¸¥ã¥¹¥È¡¦¥¤¥ó¡¦¥¿¥¤¥à(JIT)¥³¥ó¥Ñ¥¤¥é¤¬Ä󶡤¹¤ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¾å¤ÎÍøÅÀ¤Ï¡¢¤³¤Î¥â¡¼¥É¤Ç¤Ï¼Â¸½¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-Xinternalversion +.RS 4 +\fB\-version\fR¥ª¥×¥·¥ç¥ó¤è¤ê¾ÜºÙ¤ÊJVM¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ¤«¤é½ªÎ»¤·¤Þ¤¹¡£ +.RE +.PP +\-Xloggc:\fIfilename\fR +.RS 4 +¾ÜºÙ¤ÊGC¥¤¥Ù¥ó¥È¾ðÊó¤ò¥í¥®¥ó¥°ÍѤ˥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¾ðÊó¤Ï¡¢µ­Ï¿¤µ¤ì¤¿³Æ¥¤¥Ù¥ó¥È¤ÎÁ°¤Ë¹Ô¤ï¤ì¤ëºÇ½é¤ÎGC¥¤¥Ù¥ó¥È°Ê¹ß¤Ë·Ð²á¤·¤¿»þ´Ö¤ò»ØÄꤷ¤¿\fB\-verbose:gc\fR¤Î½ÐÎϤÈÎà»÷¤·¤Æ¤¤¤Þ¤¹¡£\fB\-Xloggc\fR¥ª¥×¥·¥ç¥ó¤Ï\fB\-verbose:gc\fR¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹(¤³¤ì¤é¤ÎξÊý¤¬Æ±¤¸\fBjava\fR¥³¥Þ¥ó¥É¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç)¡£ +.sp +Îã: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xloggc:garbage\-collection\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-Xmaxjitcodesize=\fIsize\fR +.RS 4 +JIT¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤ÎºÇÂ祳¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤ò»ØÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ÎÃͤÏ48MB¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmaxjitcodesize=48m\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX:ReservedCodeCacheSize\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-Xmixed +.RS 4 +¥Í¥¤¥Æ¥£¥Ö¡¦¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Û¥Ã¥È¡¦¥á¥½¥Ã¥É¤ò½ü¤­¡¢¥¤¥ó¥¿¥×¥ê¥¿¤Ë¤è¤Ã¤Æ¤¹¤Ù¤Æ¤Î¥Ð¥¤¥È¥³¡¼¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +.RE +.PP +\-Xmn\fIsize\fR +.RS 4 +¼ã¤¤À¤Âå(¥Ê¡¼¥µ¥ê)¤Î¥Ò¡¼¥×¤Î½é´ü¥µ¥¤¥º¤ª¤è¤ÓºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£ +.sp +¥Ò¡¼¥×¤Î¼ã¤¤À¤Âå¥ê¡¼¥¸¥ç¥ó¤Ï¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£GC¤Ï¡¢Â¾¤Î¥ê¡¼¥¸¥ç¥ó¤è¤ê¤³¤Î¥ê¡¼¥¸¥ç¥ó¤Ç¡¢¤è¤êÉÑÈˤ˼¹Ԥµ¤ì¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥µ¥¤¥º¤¬¾®¤µ¤¹¤®¤ë¾ì¹ç¡¢Â¿¿ô¤Î¥Þ¥¤¥Ê¡¼¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤¬Â礭¤¹¤®¤ë¾ì¹ç¡¢¥Õ¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Î¤ß¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¤¬¡¢´°Î»¤Þ¤Ç¤Ë»þ´Ö¤¬¤«¤«¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥µ¥¤¥º¤Ï¡¢Á´ÂΤΥҡ¼¥×¡¦¥µ¥¤¥º¤ÎȾʬ¤«¤é4ʬ¤Î1¤Î´Ö¤Ë¤·¤Æ¤ª¤¯¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¼ã¤¤À¤Âå¤Î½é´ü¥µ¥¤¥º¤ª¤è¤ÓºÇÂ祵¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ256MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmn256m\fR +\fB\-Xmn262144k\fR +\fB\-Xmn268435456\fR + +.fi +.if n \{\ +.RE +.\} +¼ã¤¤À¤Âå¤Î¥Ò¡¼¥×¤Î½é´ü¥µ¥¤¥º¤ÈºÇÂ祵¥¤¥º¤ÎξÊý¤òÀßÄꤹ¤ë\fB\-Xmn\fR¥ª¥×¥·¥ç¥ó¤Î¤«¤ï¤ê¤Ë¡¢½é´ü¥µ¥¤¥º¤ÎÀßÄê¤Ë¤Ï\fB\-XX:NewSize\fR¤ò¡¢ºÇÂ祵¥¤¥º¤ÎÀßÄê¤Ë¤Ï\fB\-XX:MaxNewSize\fR¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.RE +.PP +\-Xms\fIsize\fR +.RS 4 +¥Ò¡¼¥×¤Î½é´ü¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£»ØÄꤹ¤ëÃͤϡ¢1MB¤è¤êÂ礭¤¤1024¤ÎÇÜ¿ô¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¡¼¤Î¥µ¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ6MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xms6291456\fR +\fB\-Xms6144k\fR +\fB\-Xms6m\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Ê¤¤¾ì¹ç¡¢½é´ü¥µ¥¤¥º¤Ï¡¢¸Å¤¤À¤Âå¤È¼ã¤¤À¤Âå¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥µ¥¤¥º¤Î¹ç·×¤È¤·¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥Ò¡¼¥×¤Î½é´ü¥µ¥¤¥º¤Ï¡¢\fB\-Xmn\fR¥ª¥×¥·¥ç¥ó¤Þ¤¿¤Ï\fB\-XX:NewSize\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-Xmx\fIsize\fR +.RS 4 +¥á¥â¥ê¡¼³äÅö¤Æ¥×¡¼¥ë¤ÎºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤ò»ØÄꤷ¤Þ¤¹¡£»ØÄꤹ¤ëÃͤϡ¢2MB¤è¤êÂ礭¤¤1024¤ÎÇÜ¿ô¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¼Â¹Ô»þ¤Ë¥·¥¹¥Æ¥à¹½À®¤Ë´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤Þ¤¹¡£¥µ¡¼¥Ð¡¼¡¦¥Ç¥×¥í¥¤¥á¥ó¥È¤Ç¤Ï¡¢\fB\-Xms\fR¤ª¤è¤Ó\fB\-Xmx\fR¤ÏÄÌ¾ïÆ±¤¸ÃͤËÀßÄꤵ¤ì¤Þ¤¹¡£http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html¤Î\fIJava SE HotSpot²¾ÁÛ¥Þ¥·¥ó¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¡¦¥Á¥å¡¼¥Ë¥ó¥°¡¦¥¬¥¤¥É\fR¤Î¥¨¥ë¥´¥Î¥ß¥¯¥¹¤Ë´Ø¤¹¤ë¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¡¼¤Îµö²Ä¤µ¤ì¤ëºÇÂ祵¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ80MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmx83886080\fR +\fB\-Xmx81920k\fR +\fB\-Xmx80m\fR + +.fi +.if n \{\ +.RE +.\} +\fB\-Xmx\fR¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX:MaxHeapSize\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-Xnoclassgc +.RS 4 +¥¯¥é¥¹¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó(GC)¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢GC»þ´Ö¤òÀáÌó¤Ç¤­¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼Â¹ÔÃæ¤ÎÃæÃǤ¬Ã»½Ì¤µ¤ì¤Þ¤¹¡£ +.sp +µ¯Æ°»þ¤Ë\fB\-Xnoclassgc\fR¤ò»ØÄꤹ¤ë¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Î¥¯¥é¥¹¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢GC¤Î´Ö¤Ï¤½¤Î¤Þ¤Þ»Ä¤ê¡¢¾ï¤Ë¥é¥¤¥Ö¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤è¤ê¿¤¯¤Î¥á¥â¥ê¡¼¤¬±Êµ×¤ËÀêÍ­¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¡¢Ãí°Õ¤·¤Æ»ÈÍѤ·¤Ê¤¤¤È¡¢¥á¥â¥ê¡¼ÉÔ­¤ÎÎã³°¤¬¥¹¥í¡¼¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-Xprof +.RS 4 +¼Â¹ÔÃæ¤Î¥×¥í¥°¥é¥à¤ò¥×¥í¥Õ¥¡¥¤¥ë¤·¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡¦¥Ç¡¼¥¿¤òɸ½à½ÐÎϤËÁ÷¿®¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥°¥é¥à³«È¯ÍѤΥ桼¥Æ¥£¥ê¥Æ¥£¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£ËÜÈÖ²ÔÆ¯¥·¥¹¥Æ¥à¤Ç¤Î»ÈÍѤòÌÜŪ¤È¤·¤¿¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-Xrs +.RS 4 +JVM¤Ë¤è¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¡¦¥·¥°¥Ê¥ë¤Î»ÈÍѤò¸º¤é¤·¤Þ¤¹¡£ +.sp +¥·¥ã¥Ã¥È¥À¥¦¥ó¡¦¥Õ¥Ã¥¯¤Ï¡¢JVM¤¬ÆÍÁ³½ªÎ»¤·¤¿¾ì¹ç¤Ç¤â¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó»þ¤Ë¥æ¡¼¥¶¡¼¡¦¥¯¥ê¡¼¥ó¥¢¥Ã¥×¡¦¥³¡¼¥É(¥Ç¡¼¥¿¥Ù¡¼¥¹Àܳ¤Î¥¯¥í¡¼¥º¤Ê¤É)¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤ò½çÈÖ¤ËÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.sp +JVM¤Ï¡¢Í½´ü¤·¤Ê¤¤½ªÎ»¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¡¦¥Õ¥Ã¥¯¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¥·¥°¥Ê¥ë¤ò¥­¥ã¥Ã¥Á¤·¤Þ¤¹¡£JVM¤Ï¡¢\fBSIGHUP\fR¡¢\fBSIGINT\fR¤ª¤è¤Ó\fBSIGTERM\fR¤ò»ÈÍѤ·¤Æ¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¡¦¥Õ¥Ã¥¯¤Î¼Â¹Ô¤ò³«»Ï¤·¤Þ¤¹¡£ +.sp +JVM¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ÎÌÜŪ¤Ç¥¹¥ì¥Ã¥É¡¦¥¹¥¿¥Ã¥¯¤ò¥À¥ó¥×¤¹¤ë¤È¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢Æ±ÍͤΥᥫ¥Ë¥º¥à¤ò»ÈÍѤ·¤Þ¤¹¡£JVM¤Ï¡¢¥¹¥ì¥Ã¥É¡¦¥À¥ó¥×¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë\fBSIGQUIT\fR¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +JVM¤òËä¤á¹þ¤ó¤Ç¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢\fBSIGINT\fR¤ä\fBSIGTERM\fR¤Ê¤É¤Î¥·¥°¥Ê¥ë¤òÉÑÈˤ˥ȥé¥Ã¥×¤¹¤ëɬÍפ¬¤¢¤ê¡¢¤½¤Î·ë²Ì¡¢JVM¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤È¾×ÆÍ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£\fB\-Xrs\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¤³¤ÎÌäÂê¤ËÂн褹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤Þ¤¹¡£\fB\-Xrs\fR¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢\fBSIGINT\fR¡¢\fBSIGTERM\fR¡¢\fBSIGHUP\fR¤ª¤è¤Ó\fBSIGQUIT\fR¤Î¥·¥°¥Ê¥ë¡¦¥Þ¥¹¥¯¤ÏJVM¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤º¡¢¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Î¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤»¤ó¡£ +.sp +\fB\-Xrs\fR¤ò»ØÄꤹ¤ë¤È¡¢¼¡¤Î2¤Ä¤Î·ë²Ì¤¬À¸¤¸¤Þ¤¹: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBSIGQUIT\fR¤Ë¤è¤ë¥¹¥ì¥Ã¥É¡¦¥À¥ó¥×¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥·¥ã¥Ã¥È¥À¥¦¥ó¡¦¥Õ¥Ã¥¯½èÍý¤Î¼Â¹Ô¤Ï¡¢JVM¤¬½ªÎ»¤·¤è¤¦¤È¤·¤Æ¤¤¤ë»þÅÀ¤Ç\fBSystem\&.exit()\fR¤ò¸Æ¤Ó½Ð¤¹¤Ê¤É¤·¤Æ¡¢¥æ¡¼¥¶¡¼¡¦¥³¡¼¥É¦¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.RE +.PP +\-Xshare:\fImode\fR +.RS 4 +¥¯¥é¥¹¡¦¥Ç¡¼¥¿¶¦Í­¥â¡¼¥É¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ê\fImode\fR°ú¿ô¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.PP +auto +.RS 4 +²Äǽ¤Ê¾ì¹ç¡¢¶¦Í­¥¯¥é¥¹¤Î¥Ç¡¼¥¿¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤Ï¡¢Java HotSpot 32\-Bit Client VM¤Î¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¹¡£ +.RE +.PP +on +.RS 4 +¥¯¥é¥¹¡¦¥Ç¡¼¥¿¶¦Í­¤Î»ÈÍѤ¬É¬ÍפǤ¹¡£¥¯¥é¥¹¡¦¥Ç¡¼¥¿¶¦Í­¤ò»ÈÍѤǤ­¤Ê¤¤¾ì¹ç¡¢¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤·¤Þ¤¹¡£ +.RE +.PP +off +.RS 4 +¶¦Í­¥¯¥é¥¹¡¦¥Ç¡¼¥¿¤ò»ÈÍѤ·¤Þ¤»¤ó¡£¤³¤ì¤Ï¡¢Java HotSpot 32\-Bit Server VM¡¢Java HotSpot 64\-Bit Client VM¤ª¤è¤ÓJava HotSpot 64\-Bit Server VM¤Î¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¹¡£ +.RE +.PP +dump +.RS 4 +¥¯¥é¥¹¡¦¥Ç¡¼¥¿¶¦Í­¥¢¡¼¥«¥¤¥Ö¤ò¼êư¤ÇÀ¸À®¤·¤Þ¤¹¡£ +.RE +.RE +.PP +\-XshowSettings:\fIcategory\fR +.RS 4 +ÀßÄê¤òɽ¼¨¤·¤ÆÂ³¹Ô¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ê\fIcategory\fR°ú¿ô¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.PP +all +.RS 4 +ÀßÄê¤Î¤¹¤Ù¤Æ¤Î¥«¥Æ¥´¥ê¤òɽ¼¨¤·¤Þ¤¹¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥ÈÃͤǤ¹¡£ +.RE +.PP +locale +.RS 4 +¥í¥±¡¼¥ë¤Ë´ØÏ¢¤¹¤ëÀßÄê¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +properties +.RS 4 +¥·¥¹¥Æ¥à¡¦¥×¥í¥Ñ¥Æ¥£¤Ë´ØÏ¢¤¹¤ëÀßÄê¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.PP +vm +.RS 4 +JVM¤ÎÀßÄê¤òɽ¼¨¤·¤Þ¤¹¡£ +.RE +.RE +.PP +\-Xss\fIsize\fR +.RS 4 +¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£KB¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢MB¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢GB¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϥץé¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Windows: ²¾ÁÛ¥á¥â¥ê¡¼¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.RE +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¡¦¥¹¥¿¥Ã¥¯¡¦¥µ¥¤¥º¤ò°Û¤Ê¤ëñ°Ì¤Ç1024KB¤ËÀßÄꤷ¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xss1m\fR +\fB\-Xss1024k\fR +\fB\-Xss1048576\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX:ThreadStackSize\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-Xusealtsigs +.RS 4 +JVMÆâÉô¥·¥°¥Ê¥ë¤Î\fBSIGUSR1\fR¤ª¤è¤Ó\fBSIGUSR2\fR¤Î¤«¤ï¤ê¤Ë¡¢ÂåÂØ¥·¥°¥Ê¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-XX:+UseAltSigs\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-Xverify:\fImode\fR +.RS 4 +¥Ð¥¤¥È¥³¡¼¥É¡¦¥Ù¥ê¥Õ¥¡¥¤¥¢¤Î¥â¡¼¥É¤òÀßÄꤷ¤Þ¤¹¡£¥Ð¥¤¥È¥³¡¼¥É¤Î¸¡¾Ú¤Ï°ìÉô¤ÎÌäÂê¤Î¥È¥é¥Ö¥ë¥·¥å¡¼¥Æ¥£¥ó¥°¤ËÌòΩ¤Á¤Þ¤¹¤¬¡¢¼Â¹ÔÃæ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ø¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤òÁýÂ礵¤»¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ê\fImode\fR°ú¿ô¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.PP +¤Ê¤· +.RS 4 +¥Ð¥¤¥È¥³¡¼¥É¤ò¸¡¾Ú¤·¤Þ¤»¤ó¡£¤³¤ì¤Ë¤è¤ê¡¢µ¯Æ°»þ´Ö¤¬Ã»½Ì¤µ¤ì¡¢Java¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ëÊݸî¤â·Ú¸º¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +remote +.RS 4 +¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¡¦¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤Ç¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤ì¤é¤Î¥¯¥é¥¹¤ò¸¡¾Ú¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢\fB\-Xverify\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¹¡£ +.RE +.PP +all +.RS 4 +¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤ò¸¡¾Ú¤·¤Þ¤¹¡£ +.RE +.RE +.SS "¹âÅ٤ʥé¥ó¥¿¥¤¥à¡¦¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java HotSpot VM¤Î¼Â¹Ô»þ¤Îưºî¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +\-XX:+DisableAttachMechanism +.RS 4 +JVM¤Ë¥Ä¡¼¥ë¤ò¥¢¥¿¥Ã¥Á¤¹¤ë¥á¥«¥Ë¥º¥à¤ò̵¸ú¤Ë¤¹¤ë¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤ì¤Ï¡¢¥¢¥¿¥Ã¥Á¡¦¥á¥«¥Ë¥º¥à¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢\fBjcmd\fR¡¢\fBjstack\fR¡¢\fBjmap\fR¡¢\fBjinfo\fR¤Ê¤É¤Î¥Ä¡¼¥ë¤ò»ÈÍѤǤ­¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:ErrorFile=\fIfilename\fR +.RS 4 +¥ê¥«¥Ð¥êÉÔǽ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¥¨¥é¡¼¡¦¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ñ¥¹¤ª¤è¤Ó¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¡¢Ì¾Á°¤Ï\fBhs_err_pid\fR\fIpid\fR\fB\&.log\fR +(\fIpid\fR¤Ï¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò)¤Ë¤Ê¤ê¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¡¦¥Õ¥¡¥¤¥ë¤òÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹(¥×¥í¥»¥¹¤Î¼±Ê̻ҤÏ\fB%p\fR¤È¤·¤Æ»ØÄꤵ¤ì¤Þ¤¹)¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=\&./hs_err_pid%p\&.log\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¨¥é¡¼¡¦¥í¥°¤ò\fB/var/log/java/java_error\&.log\fR¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=/var/log/java/java_error\&.log\fR + +.fi +.if n \{\ +.RE +.\} +(ÎΰèÉÔ­¡¢¸¢¸Â¤ÎÌäÂê¤Þ¤¿¤ÏÊ̤ÎÌäÂê¤Ë¤è¤ê)»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Î°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤Ï\fB/tmp\fR¤Ç¤¹¡£ +.RE +.PP +\-XX:+FailOverToOldVerifier +.RS 4 +¿·¤·¤¤¥¿¥¤¥×¡¦¥Á¥§¥Ã¥«¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Î¡¢¸Å¤¤¥Ù¥ê¥Õ¥¡¥¤¥¢¤Ø¤Î¼«Æ°¥Õ¥§¥¤¥ë¥ª¡¼¥Ð¡¼¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ºÇ¶á¤Î¥Ð¥¤¥È¥³¡¼¥É¡¦¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ·¤¿¥¯¥é¥¹¤Ë¤Ï¡¢¤³¤ì¤Ï̵»ë¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê¡¢Ìµ¸ú¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹)¡£¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥Ð¥¤¥È¥³¡¼¥É¤ò»ÈÍѤ·¤¿¥¯¥é¥¹¤Ë¤Ï¡¢¤³¤ì¤òÍ­¸ú²½¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:LargePageSizeInBytes=\fIsize\fR +.RS 4 +Solaris¤Ç¤Ï¡¢Java¥Ò¡¼¥×¤Ë»ÈÍѤµ¤ì¤ë¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ÎºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£\fIsize\fR°ú¿ô¤Ï¡¢2¤ÎÎß¾è(2¡¢4¡¢8¡¢16¡¢\&.\&.\&.)¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥µ¥¤¥º¤Ï0¤ËÀßÄꤵ¤ì¡¢¤³¤ì¤Ï¡¢JVM¤Ç¤Ï¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥µ¥¤¥º¤¬¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥µ¥¤¥º¤ò4¥á¥¬¥Ð¥¤¥È(MB)¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LargePageSizeInBytes=4m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxDirectMemorySize=\fIsize\fR +.RS 4 +¿·µ¬I/O (\fBjava\&.nio\fR¥Ñ¥Ã¥±¡¼¥¸)¤ÎľÀܥХåե¡³äÅö¤Æ¤ÎºÇÂç¹ç·×¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥µ¥¤¥º¤Ï0¤ËÀßÄꤵ¤ì¡¢¤³¤ì¤Ï¡¢JVM¤Ç¤ÏNIO¤ÎľÀܥХåե¡³äÅö¤Æ¤Î¥µ¥¤¥º¤¬¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢NIO¥µ¥¤¥º¤ò°Û¤Ê¤ëñ°Ì¤Ç1024KB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxDirectMemorySize=1m\fR +\fB\-XX:MaxDirectMemorySize=1024k\fR +\fB\-XX:MaxDirectMemorySize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NativeMemoryTracking=\fImode\fR +.RS 4 +JVM¤Î¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼»ÈÍѾõ¶·¤Î¥È¥é¥Ã¥­¥ó¥°¤Î¥â¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ê\fImode\fR°ú¿ô¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.PP +off +.RS 4 +JVM¤Î¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼»ÈÍѾõ¶·¤òÄÉÀפ·¤Þ¤»¤ó¡£¤³¤ì¤Ï¡¢\fB\-XX:NativeMemoryTracking\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¹¡£ +.RE +.PP +summary +.RS 4 +JVM¥µ¥Ö¥·¥¹¥Æ¥à(Java¥Ò¡¼¥×¡¢¥¯¥é¥¹¡¢¥³¡¼¥É¡¢¥¹¥ì¥Ã¥É¤Ê¤É)¤Ë¤è¤ë¥á¥â¥ê¡¼»ÈÍѾõ¶·¤Î¤ßÄÉÀפ·¤Þ¤¹¡£ +.RE +.PP +detail +.RS 4 +JVM¥µ¥Ö¥·¥¹¥Æ¥à¤Ë¤è¤ë¥á¥â¥ê¡¼»ÈÍѾõ¶·¤Î¥È¥é¥Ã¥­¥ó¥°¤Ë²Ã¤¨¤Æ¡¢¸Ä¡¹¤Î\fBCallSite\fR +(¸Ä¡¹¤Î²¾ÁÛ¥á¥â¥ê¡¼¡¦¥ê¡¼¥¸¥ç¥ó¤ª¤è¤Ó¤½¤Î¥³¥ß¥Ã¥ÈºÑ¥ê¡¼¥¸¥ç¥ó)¤Ë¤è¤ë¥á¥â¥ê¡¼»ÈÍѾõ¶·¤òÄÉÀפ·¤Þ¤¹¡£ +.RE +.RE +.PP +\-XX:ObjectAlignmentInBytes=\fIalignment\fR +.RS 4 +Java¥ª¥Ö¥¸¥§¥¯¥È¤Î¥á¥â¥ê¡¼ÇÛÃÖ¤òÀßÄꤷ¤Þ¤¹(¥Ð¥¤¥Èñ°Ì)¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Ãͤ¬8¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Þ¤¹¡£»ØÄꤵ¤ì¤ëÃͤϡ¢2¤ÎÎß¾è¤Ë¤·¤Æ8¤«¤é256(ξü¤ò´Þ¤à)¤ÎÈÏ°ÏÆâ¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢Â礭¤¤Java¥Ò¡¼¥×¡¦¥µ¥¤¥º¤Ç°µ½Ì¥Ý¥¤¥ó¥¿¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.sp +¥Ð¥¤¥Èñ°Ì¤Î¥Ò¡¼¥×¡¦¥µ¥¤¥ºÀ©¸Â¤Ï¼¡¤Î¤è¤¦¤Ë·×»»¤µ¤ì¤Þ¤¹: +.sp +\fB4GB * ObjectAlignmentInBytes\fR +.sp +Ãí°Õ: ÇÛÃÖ¤ÎÃͤ¬Áý¤¨¤ë¤È¡¢¥ª¥Ö¥¸¥§¥¯¥È´Ö¤Î̤»ÈÍѤÎÎΰè¤âÁý¤¨¤Þ¤¹¡£·ë²Ì¤È¤·¤Æ¡¢Â礭¤¤¥Ò¡¼¥×¡¦¥µ¥¤¥º¤Ç°µ½Ì¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ¹¤ë¥á¥ê¥Ã¥È¤¬¤ï¤«¤é¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:OnError=\fIstring\fR +.RS 4 +¥ê¥«¥Ð¥êÉÔǽ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤È¤­¤Ë¼Â¹Ô¤¹¤ë¡¢¥«¥¹¥¿¥à¡¦¥³¥Þ¥ó¥É¤Þ¤¿¤Ï°ìÏ¢¤Î¥»¥ß¥³¥í¥ó¶èÀÚ¤ê¤Î¥³¥Þ¥ó¥É¤òÀßÄꤷ¤Þ¤¹¡£Ê¸»úÎó¤Ë¶õÇò¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢°úÍÑÉä¤Ç°Ï¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢\fB\-XX:OnError\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥¢¡¦¥¤¥á¡¼¥¸¤òºîÀ®¤¹¤ë¤¿¤á¤Ë\fBgcore\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëÊýË¡¡¢¤ª¤è¤Ó¥ê¥«¥Ð¥êÉÔǽ¤Ê¥¨¥é¡¼¤Î¾ì¹ç¤Ë¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤·¤Æ¥×¥í¥»¥¹¤ËÀܳ¤¹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹(\fB%p\fR¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤ò»ØÄꤷ¤Þ¤¹)¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:OnError="gcore %p;dbx \- %p"\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:OnOutOfMemoryError=\fIstring\fR +.RS 4 +\fBOutOfMemoryError\fRÎã³°¤¬ºÇ½é¤Ë¥¹¥í¡¼¤µ¤ì¤¿¤È¤­¤Ë¼Â¹Ô¤¹¤ë¡¢¥«¥¹¥¿¥à¡¦¥³¥Þ¥ó¥É¤Þ¤¿¤Ï°ìÏ¢¤Î¥»¥ß¥³¥í¥ó¶èÀÚ¤ê¤Î¥³¥Þ¥ó¥É¤òÀßÄꤷ¤Þ¤¹¡£Ê¸»úÎó¤Ë¶õÇò¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢°úÍÑÉä¤Ç°Ï¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥Éʸ»úÎó¤ÎÎã¤Ï¡¢\fB\-XX:OnError\fR¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+PerfDataSaveToFile +.RS 4 +Í­¸ú¤Ê¾ì¹ç¡¢Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î½ªÎ»»þ¤Ëjstat(1)¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤òÊݸ¤·¤Þ¤¹¡£¤³¤Î¥Ð¥¤¥Ê¥ê¡¦¥Ç¡¼¥¿¤Ï\fBhsperfdata_\fR\fI\fR¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ËÊݸ¤µ¤ì¤Þ¤¹¡£\fI\fR¤Ï¡¢¼Â¹Ô¤·¤¿Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥×¥í¥»¥¹¼±Ê̻ҤǤ¹¡£¼¡¤Î¤è¤¦¤Ë\fBjstat\fR¤ò»ÈÍѤ·¤Æ¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¡¦¥Ç¡¼¥¿¤òɽ¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjstat \-class file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +\fBjstat \-gc file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintCommandLineFlags +.RS 4 +¥³¥Þ¥ó¥É¹Ô¤Ëɽ¼¨¤µ¤ì¤¿¡¢¿Í´Ö¹©³ØÅª¤ËÁªÂò¤·¤¿JVM¥Õ¥é¥°¤Î°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥Ò¡¼¥×Îΰ襵¥¤¥º¤äÁªÂò¤µ¤ì¤¿¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ê¤É¡¢JVM¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤¿¥¨¥ë¥´¥Î¥ß¥Ã¥¯Ãͤò³Îǧ¤¹¤ë¾ì¹ç¤ËÌòΩ¤Á¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥Õ¥é¥°¤Ï°õºþ¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+PrintNMTStatistics +.RS 4 +¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼¤Î¥È¥é¥Ã¥­¥ó¥°¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¡¢JVM¤Î½ªÎ»»þ¤Ë¼ý½¸¤µ¤ì¤¿¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼¤Î¥È¥é¥Ã¥­¥ó¥°¡¦¥Ç¡¼¥¿¤Î°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹(\fB\-XX:NativeMemoryTracking\fR¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼¤Î¥È¥é¥Ã¥­¥ó¥°¡¦¥Ç¡¼¥¿¤Ï°õºþ¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+RelaxAccessControlCheck +.RS 4 +¥Ù¥ê¥Õ¥¡¥¤¥¢Æâ¤Î¥¢¥¯¥»¥¹À©¸æ¥Á¥§¥Ã¥¯¤ÎÎ̤ò¸º¤é¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ºÇ¶á¤Î¥Ð¥¤¥È¥³¡¼¥É¡¦¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ·¤¿¥¯¥é¥¹¤Ë¤Ï¡¢¤³¤ì¤Ï̵»ë¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê¡¢Ìµ¸ú¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹)¡£¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥Ð¥¤¥È¥³¡¼¥É¤ò»ÈÍѤ·¤¿¥¯¥é¥¹¤Ë¤Ï¡¢¤³¤ì¤òÍ­¸ú²½¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:+ShowMessageBoxOnError +.RS 4 +JVM¤Ç¥ê¥«¥Ð¥êÉÔǽ¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¥À¥¤¥¢¥í¥°¡¦¥Ü¥Ã¥¯¥¹¤Îɽ¼¨¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢JVM¤Ë¥Ç¥Ð¥Ã¥¬¤òÀܳ¤·¤Æ¥¨¥é¡¼¤Î¸¶°ø¤òÄ´ºº¤Ç¤­¤ë¤è¤¦¤Ë¡¢JVM¤ò½ªÎ»¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¡¢¥×¥í¥»¥¹¤ò¥¢¥¯¥Æ¥£¥Ö¤Ê¤Þ¤Þ¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:ThreadStackSize=\fIsize\fR +.RS 4 +¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϥץé¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32¥Ó¥Ã¥È): 320KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64¥Ó¥Ã¥È): 1024KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Windows: ²¾ÁÛ¥á¥â¥ê¡¼¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.RE +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¡¦¥¹¥¿¥Ã¥¯¡¦¥µ¥¤¥º¤ò°Û¤Ê¤ëñ°Ì¤Ç1024KB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ThreadStackSize=1m\fR +\fB\-XX:ThreadStackSize=1024k\fR +\fB\-XX:ThreadStackSize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-Xss\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-XX:+TraceClassLoading +.RS 4 +¥¯¥é¥¹¤¬¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Î¥¯¥é¥¹¤Î¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¯¥é¥¹¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+TraceClassLoadingPreorder +.RS 4 +¥¯¥é¥¹¤¬»²¾È¤µ¤ì¤ë½ç½ø¤Ç¡¢¥í¡¼¥É¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Î¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¯¥é¥¹¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+TraceClassResolution +.RS 4 +Äê¿ô¥×¡¼¥ë¤Î²ò·è¤Î¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢Äê¿ô¥×¡¼¥ë¤Î²ò·è¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+TraceClassUnloading +.RS 4 +¥¯¥é¥¹¤¬¥¢¥ó¥í¡¼¥É¤µ¤ì¤ë¤È¤­¤Î¥¯¥é¥¹¤Î¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¯¥é¥¹¤Ï¥È¥ì¡¼¥¹¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+TraceLoaderConstraints +.RS 4 +¥í¡¼¥À¡¼À©Ìó¤Îµ­Ï¿¤Î¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥í¡¼¥À¡¼À©Ìó¤Îµ­Ï¿¤ÏÄÉÀפµ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+UseAltSigs +.RS 4 +JVMÆâÉô¥·¥°¥Ê¥ë¤Î\fBSIGUSR1\fR¤ª¤è¤Ó\fBSIGUSR2\fR¤Î¤«¤ï¤ê¤Ë¡¢ÂåÂØ¥·¥°¥Ê¥ë¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢ÂåÂØ¥·¥°¥Ê¥ë¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-Xusealtsigs\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-XX:\-UseBiasedLocking +.RS 4 +¥Ð¥¤¥¢¥¹¡¦¥í¥Ã¥¯¤Î»ÈÍѤò̵¸ú¤Ë¤·¤Þ¤¹¡£¤«¤Ê¤ê¤ÎÎ̤ÎÈó¶¥¹ç¤ÎƱ´ü²½¤¬¤¢¤ë°ìÉô¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤ÈÂçÉý¤Ê¹â®²½¤¬¼Â¸½¤·¤Þ¤¹¤¬¡¢ÆÃÄê¤Î¥Ñ¥¿¡¼¥ó¤Î¥í¥Ã¥¯¤¬¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Â®ÅÙ¤¬Äã²¼¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¥Ð¥¤¥¢¥¹¡¦¥í¥Ã¥¯¤ÎÊýË¡¤Î¾ÜºÙ¤Ï¡¢http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5¤Ë¤¢¤ëJava¥Á¥å¡¼¥Ë¥ó¥°¤Î¥Û¥ï¥¤¥È¡¦¥Ú¡¼¥Ñ¡¼¤ÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:\-UseCompressedOops +.RS 4 +°µ½Ì¤µ¤ì¤¿¥Ý¥¤¥ó¥¿¤Î»ÈÍѤò̵¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ç¤¢¤ê¡¢Java¥Ò¡¼¥×¡¦¥µ¥¤¥º¤¬32GB¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ë°µ½Ì¥Ý¥¤¥ó¥¿¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤Ï¡¢64¥Ó¥Ã¥È¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¯32¥Ó¥Ã¥È¤Î¥ª¥Õ¥»¥Ã¥È¤È¤·¤ÆÉ½¤µ¤ì¡¢¤³¤ì¤Ë¤è¤ê¡¢32GB¤è¤ê¾®¤µ¤¤Java¥Ò¡¼¥×¡¦¥µ¥¤¥º¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô»þ¤Ë¡¢Ä̾¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢64¥Ó¥Ã¥È¤ÎJVM¤Ç¤Î¤ßµ¡Ç½¤·¤Þ¤¹¡£ +.sp +Java¥Ò¡¼¥×¡¦¥µ¥¤¥º¤¬32GB¤è¤êÂ礭¤¤¾ì¹ç¤Ë¤â°µ½Ì¥Ý¥¤¥ó¥¿¤ò»ÈÍѤǤ­¤Þ¤¹¡£\fB\-XX:ObjectAlignmentInBytes\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+UseHugeTLBFS +.RS 4 +LinuxÍѤΤ³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢\fB\-XX:+UseLargePages\fR¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤Ç¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥á¥â¥ê¡¼¤ÎͽÌó»þ¤Ë¤¹¤Ù¤Æ¤Î¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò»öÁ°¤Ë³ä¤êÅö¤Æ¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢JVM¤Ï¥é¡¼¥¸¡¦¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼Îΰè¤òưŪ¤Ë³ÈÄ¥¤Þ¤¿¤Ï½Ì¾®¤Ç¤­¤Þ¤»¤ó¡£¤³¤Îưºî¤ò¹Ô¤¦¾ì¹ç¤Ï¡¢\fB\-XX:UseTransparentHugePages\fR¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¾ÜºÙ¤Ï¡¢"¥é¡¼¥¸¡¦¥Ú¡¼¥¸"¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+UseLargePages +.RS 4 +¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥á¥â¥ê¡¼¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥á¥â¥ê¡¼¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£ +.sp +¾ÜºÙ¤Ï¡¢"¥é¡¼¥¸¡¦¥Ú¡¼¥¸"¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+UseMembar +.RS 4 +¥¹¥ì¥Ã¥É¤Î¾õÂÖ¤ÎÁ«°Ü¤Ç¥á¥ó¥Ð¡¼¤Îȯ¹Ô¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëARM¥µ¡¼¥Ð¡¼¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£(ARM¥µ¡¼¥Ð¡¼¤Ç¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤Ê¤¤¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£) +.RE +.PP +\-XX:+UsePerfData +.RS 4 +\fBperfdata\fRµ¡Ç½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢JVM¤Î¥â¥Ë¥¿¥ê¥ó¥°¤ª¤è¤Ó¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¡¦¥Æ¥¹¥È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤ò̵¸ú¤Ë¤¹¤ë¤È¡¢\fBhsperfdata_userid\fR¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¤òÍÞÀ©¤·¤Þ¤¹¡£\fBperfdata\fRµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UsePerfData\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseTransparentHugePages +.RS 4 +Linux¤Ç¤Ï¡¢Æ°Åª¤Ë³ÈÄ¥¤Þ¤¿¤Ï½Ì¾®¤Ç¤­¤ë¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î»ÈÍѤòÍ­¸ú²½¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£OS¤¬Â¾¤Î¥Ú¡¼¥¸¤ò°Üư¤·¤Æ¥Ò¥å¡¼¥¸¡¦¥Ú¡¼¥¸¤òºîÀ®¤¹¤ë¤¿¤á¡¢Æ©²áŪ¥Ò¥å¡¼¥¸¡¦¥Ú¡¼¥¸¤Ç¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎÌäÂ꤬¸¡½Ð¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï»î¸³Åª¤Ë»ÈÍѤǤ­¤Þ¤¹¡£ +.sp +¾ÜºÙ¤Ï¡¢"¥é¡¼¥¸¡¦¥Ú¡¼¥¸"¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+AllowUserSignalHandlers +.RS 4 +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤ë¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤Î¥¤¥ó¥¹¥È¡¼¥ë¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +.RE +.SS "¹âÅÙ¤ÊJIT¥³¥ó¥Ñ¥¤¥é¡¦¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java HotSpot VM¤Ç¼Â¹Ô¤µ¤ì¤ëưŪ¤Êjust\-in\-time (JIT)¥³¥ó¥Ñ¥¤¥é¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +\-XX:+AggressiveOpts +.RS 4 +ÀѶËŪ¤Ê¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ºÇŬ²½µ¡Ç½¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ïº£¸å¤Î¥ê¥ê¡¼¥¹¤Ç¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ëͽÄê¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢»î¸³Åª¤Ê¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹µ¡Ç½¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:AllocateInstancePrefetchLines=\fIlines\fR +.RS 4 +¥¤¥ó¥¹¥¿¥ó¥¹³äÅö¤Æ¥Ý¥¤¥ó¥¿¤ÎÁ°¤Ë¥×¥ê¥Õ¥§¥Ã¥Á¤¹¤ë¹Ô¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥×¥ê¥Õ¥§¥Ã¥Á¤¹¤ë¹Ô¿ô¤Ï1¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocateInstancePrefetchLines=1\fR + +.fi +.if n \{\ +.RE +.\} +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:AllocatePrefetchDistance=\fIsize\fR +.RS 4 +¥ª¥Ö¥¸¥§¥¯¥È³äÅö¤Æ¤Î¥×¥ê¥Õ¥§¥Ã¥Áµ÷Î¥¤Î¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃͤǽñ¤­¹þ¤â¤¦¤È¤¹¤ë¥á¥â¥ê¡¼¤Ï¡¢ºÇ¸å¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤«¤é¡¢¤³¤Îµ÷Î¥¤Þ¤Ç¥×¥ê¥Õ¥§¥Ã¥Á¤µ¤ì¤Þ¤¹¡£³ÆJava¥¹¥ì¥Ã¥É¤Ë¤ÏÆÈ¼«¤Î³äÅö¤Æ¥Ý¥¤¥ó¥È¤¬¤¢¤ê¤Þ¤¹¡£ +.sp +Éé¤ÎÃͤϡ¢¥×¥ê¥Õ¥§¥Ã¥Áµ÷Î¥¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£Àµ¤ÎÃͤϡ¢¥×¥ê¥Õ¥§¥Ã¥Á¤¹¤ë¥Ð¥¤¥È¿ô¤Ç¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤÏ\-1¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥×¥ê¥Õ¥§¥Ã¥Áµ÷Î¥¤ò1024¥Ð¥¤¥È¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchDistance=1024\fR + +.fi +.if n \{\ +.RE +.\} +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:AllocatePrefetchInstr=\fIinstruction\fR +.RS 4 +³äÅö¤Æ¥Ý¥¤¥ó¥¿¤ÎÁ°¤Ë¥×¥ê¥Õ¥§¥Ã¥Á¤¹¤ë¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤òÀßÄꤷ¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£»ÈÍѲÄǽ¤ÊÃͤÏ0¤«¤é3¤Þ¤Ç¤Ç¤¹¡£ÃͤÎÇØ¸å¤Ë¤¢¤ë¼ÂºÝ¤ÎÌ¿Îá¤Ï¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤Ï0¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchInstr=0\fR + +.fi +.if n \{\ +.RE +.\} +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:AllocatePrefetchLines=\fIlines\fR +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤ÇÀ¸À®¤µ¤ì¤ë¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤ò»ÈÍѤ·¤Æ¡¢ºÇ¸å¤Î¥ª¥Ö¥¸¥§¥¯¥È³äÅö¤Æ¸å¤Ë¥í¡¼¥É¤¹¤ë¥­¥ã¥Ã¥·¥å¹Ô¿ô¤òÀßÄꤷ¤Þ¤¹¡£ºÇ¸å¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¤¥ó¥¹¥¿¥ó¥¹¤Î¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤÏ1¤Ë¤Ê¤ê¡¢ÇÛÎó¤Î¾ì¹ç¤Ï3¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥í¡¼¥É¤µ¤ì¤ë¥­¥ã¥Ã¥·¥å¹Ô¿ô¤ò5¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchLines=5\fR + +.fi +.if n \{\ +.RE +.\} +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:AllocatePrefetchStepSize=\fIsize\fR +.RS 4 +½ç¼¡¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤Î¥¹¥Æ¥Ã¥×¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¹¥Æ¥Ã¥×¡¦¥µ¥¤¥º¤Ï16¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchStepSize=16\fR + +.fi +.if n \{\ +.RE +.\} +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:AllocatePrefetchStyle=\fIstyle\fR +.RS 4 +¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤ËÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¡¦¥¹¥¿¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£\fIstyle\fR°ú¿ô¤Ï¡¢0¤«¤é3¤Þ¤Ç¤ÎÀ°¿ô¤Ç¤¹¡£ +.PP +0 +.RS 4 +¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤òÀ¸À®¤·¤Þ¤»¤ó¡£ +.RE +.PP +1 +.RS 4 +³Æ³äÅö¤Æ¤Î¸å¤Ç¡¢¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥é¥á¡¼¥¿¤Ç¤¹¡£ +.RE +.PP +2 +.RS 4 +¥¹¥ì¥Ã¥É¡¦¥í¡¼¥«¥ë¤Ê³äÅö¤Æ¥Ö¥í¥Ã¥¯(TLAB)¥¦¥©¡¼¥¿¡¼¥Þ¡¼¥¯¡¦¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ·¤Æ¡¢¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¥¿¥¤¥ß¥ó¥°¤ò·èÄꤷ¤Þ¤¹¡£ +.RE +.PP +3 +.RS 4 +³äÅö¤Æ¥×¥ê¥Õ¥§¥Ã¥ÁÍѤÎSPARC¤ÇBISÌ¿Îá¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.sp +Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:+BackgroundCompilation +.RS 4 +¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥³¥ó¥Ñ¥¤¥ë¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¡¦¥³¥ó¥Ñ¥¤¥ë¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-BackgroundCompilation\fR¤ò»ØÄꤷ¤Þ¤¹(¤³¤ì¤Ï\fB\-Xbatch\fR¤ò»ØÄꤹ¤ë¤Î¤ÈƱÅù¤Ç¤¹)¡£ +.RE +.PP +\-XX:CICompilerCount=\fIthreads\fR +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤Ë»ÈÍѤ¹¤ë¥³¥ó¥Ñ¥¤¥é¡¦¥¹¥ì¥Ã¥É¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¿ô¤Ï¡¢¥µ¡¼¥Ð¡¼JVM¤Î¾ì¹ç¤Ï2¡¢¥¯¥é¥¤¥¢¥ó¥ÈJVM¤Î¾ì¹ç¤Ï1¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ÁØ¥³¥ó¥Ñ¥¤¥ë¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥³¥¢¿ô¤Ë¹ç¤»¤ÆÁý¸º¤·¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¤Î¿ô¤ò2¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CICompilerCount=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CodeCacheMinimumFreeSpace=\fIsize\fR +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤ËɬÍפʺǾ®¶õ¤­Îΰè(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£ºÇ¾®¶õ¤­Îΰè¤è¤ê¾¯¤Ê¤¤Îΰ褷¤«»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥ë¤ÏÄä»ß¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï500KB¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢ºÇ¾®¶õ¤­Îΰè¤ò1024MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CodeCacheMinimumFreeSpace=1024m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileCommand=\fIcommand\fR,\fImethod\fR[,\fIoption\fR] +.RS 4 +¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥³¥ó¥Ñ¥¤¥ë¸µ¤«¤é\fBString\fR¥¯¥é¥¹¤Î\fBindexOf()\fR¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +¥¹¥é¥Ã¥·¥å(\fB/\fR)¤Ç¶èÀÚ¤é¤ì¤¿¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à¡¢´°Á´¥¯¥é¥¹Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£ÀÚ¼è¤ê¤ÈŽÉÕ¤±¤ÎÁàºî¤òÍÆ°×¤Ë¤¹¤ë¤¿¤á¤Ë¡¢\fB\-XX:+PrintCompilation\fR¥ª¥×¥·¥ç¥ó¤ª¤è¤Ó\fB\-XX:+LogCompilation\fR¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¥á¥½¥Ã¥É̾¤Î·Á¼°¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java\&.lang\&.String::indexOf\fR + +.fi +.if n \{\ +.RE +.\} +½ð̾¤Ê¤·¤Ç¥á¥½¥Ã¥É¤ò»ØÄꤹ¤ë¤È¡¢¥³¥Þ¥ó¥É¤Ï»ØÄꤷ¤¿Ì¾Á°¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤ËŬÍѤµ¤ì¤Þ¤¹¡£¤¿¤À¤·¡¢¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë·Á¼°¤Ç¥á¥½¥Ã¥É¤Î½ð̾¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢°ú¿ô¤ò°úÍÑÉä¤Ç°Ï¤àɬÍפ¬¤¢¤ê¡¢°Ï¤Þ¤Ê¤¤¤È¡¢¥·¥§¥ë¤Ë¤è¤ê¥»¥ß¥³¥í¥ó¤¬¥³¥Þ¥ó¥É¤Î½ªÎ»¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥³¥ó¥Ñ¥¤¥ë¸µ¤«¤é\fBString\fR¥¯¥é¥¹¤Î\fBindexOf(String)\fR¥á¥½¥Ã¥É¤Î¤ß½ü³°¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude,java/lang/String\&.indexOf,(Ljava/lang/String;)I"\fR + +.fi +.if n \{\ +.RE +.\} +¤Þ¤¿¡¢¥¯¥é¥¹Ì¾¤ª¤è¤Ó¥á¥½¥Ã¥É̾¤Ë¥ï¥¤¥ë¥É¥«¡¼¥É¤È¤·¤Æ¥¢¥¹¥¿¥ê¥¹¥¯(*)¤ò»ÈÍѤǤ­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥³¥ó¥Ñ¥¤¥ë¸µ¤«¤é¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Î¤¹¤Ù¤Æ¤Î\fBindexOf()\fR¥á¥½¥Ã¥É¤ò½ü³°¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,*\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +¥«¥ó¥Þ¤È¥Ô¥ê¥ª¥É¤Ï¶õÇò¤ÎÊÌ̾¤Ç¡¢¤³¤ì¤Ë¤è¤ê¡¢¥·¥§¥ë¤ò²ð¤·¤Æ¥³¥ó¥Ñ¥¤¥é¡¦¥³¥Þ¥ó¥É¤òÅϤ¹¤³¤È¤¬Íưפˤʤê¤Þ¤¹¡£°ú¿ô¤ò°úÍÑÉä¤Ç°Ï¤à¤³¤È¤Ç¡¢¶õÇò¤ò¥»¥Ñ¥ì¡¼¥¿¤È¤·¤Æ»ÈÍѤ·¤Æ\fB\-XX:CompileCommand\fR¤Ë°ú¿ô¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude java/lang/String indexOf"\fR + +.fi +.if n \{\ +.RE +.\} +\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥Þ¥ó¥É¹Ô¤ÇÅϤµ¤ì¤¿¥³¥Þ¥ó¥É¤ò²òÀϤ·¤¿¸å¤Ë¡¢JIT¥³¥ó¥Ñ¥¤¥é¤Ï\fB\&.hotspot_compiler\fR¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¥³¥Þ¥ó¥É¤òÄɲ乤뤫¡¢¤Þ¤¿¤Ï\fB\-XX:CompileCommandFile\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤ÆÊ̤Υե¡¥¤¥ë¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +Ê£¿ô¤Î¥³¥Þ¥ó¥É¤òÄɲ乤ë¤Ë¤Ï¡¢\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤òÊ£¿ô²ó»ØÄꤹ¤ë¤«¡¢¤Þ¤¿¤Ï²þ¹Ô¥»¥Ñ¥ì¡¼¥¿(\fB\en\fR)¤ò»ÈÍѤ·¤Æ³Æ°ú¿ô¤ò¶èÀÚ¤ê¤Þ¤¹¡£¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.PP +break +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë¤ÎºÇ½é¤ËÄä»ß¤¹¤ë¤¿¤á¤Ë¡¢JVM¤Î¥Ç¥Ð¥Ã¥°»þ¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ +.RE +.PP +compileonly +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ò½ü¤¤¤¿¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤ò¡¢¥³¥ó¥Ñ¥¤¥ë¤«¤é½ü³°¤·¤Þ¤¹¡£Ê̤ÎÊýË¡¤È¤·¤Æ¡¢\fB\-XX:CompileOnly\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤ÆÊ£¿ô¤Î¥á¥½¥Ã¥É¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +dontinline +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ò¥¤¥ó¥é¥¤¥ó²½¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +exclude +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤«¤é½ü³°¤·¤Þ¤¹¡£ +.RE +.PP +help +.RS 4 +\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤Î¥Ø¥ë¥×¡¦¥á¥Ã¥»¡¼¥¸¤ò°õºþ¤·¤Þ¤¹¡£ +.RE +.PP +inline +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ò¥¤¥ó¥é¥¤¥ó²½¤·¤è¤¦¤È¤·¤Þ¤¹¡£ +.RE +.PP +log +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤ËÂФ·¤Æ¡¢(\fB\-XX:+LogCompilation\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ)¥³¥ó¥Ñ¥¤¥ë¡¦¥í¥®¥ó¥°¤ò½ü³°¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤Ë¥í¥®¥ó¥°¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +option +.RS 4 +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢ºÇ¸å¤Î°ú¿ô(\fIoption\fR)¤Î¤«¤ï¤ê¤Ë¡¢»ØÄꤷ¤¿¥á¥½¥Ã¥É¤ËJIT¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤¿¤á¤Ë»ÈÍѤǤ­¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó¤Ï¡¢¥á¥½¥Ã¥É̾¤Î¸å¤ÎËöÈø¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBStringBuffer\fR¥¯¥é¥¹¤Î\fBappend()\fR¥á¥½¥Ã¥É¤ËÂФ·¤Æ\fBBlockLayoutByFrequency\fR¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=option,java/lang/StringBuffer\&.append,BlockLayoutByFrequency\fR + +.fi +.if n \{\ +.RE +.\} +¥«¥ó¥Þ¤Þ¤¿¤Ï¶õÇò¤Ç¶èÀڤäơ¢Ê£¿ô¤Î¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +print +.RS 4 +»ØÄꤷ¤¿¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë¸å¤ËÀ¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¡¦¥³¡¼¥É¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +quiet +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¡¦¥³¥Þ¥ó¥É¤ò½ÐÎϤ·¤Þ¤»¤ó¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ»ØÄꤷ¤¿¥³¥Þ¥ó¥É¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBString\fR¥¯¥é¥¹¤Î\fBindexOf()\fR¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë¤«¤é½ü³°¤¹¤ë¾ì¹ç¡¢¼¡¤¬É¸½à½ÐÎϤ˽ÐÎϤµ¤ì¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCompilerOracle: exclude java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +¾¤Î\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤ÎÁ°¤Ë\fB\-XX:CompileCommand=quiet\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤ì¤òÍÞÀ©¤Ç¤­¤Þ¤¹¡£ +.RE +.RE +.PP +\-XX:CompileCommandFile=\fIfilename\fR +.RS 4 +JIT¥³¥ó¥Ñ¥¤¥é¡¦¥³¥Þ¥ó¥É¤ÎÆÉ¼è¤ê¸µ¤Î¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢JIT¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥³¥Þ¥ó¥É¤ò³ÊǼ¤¹¤ë¤¿¤á¤Ë¡¢\fB\&.hotspot_compiler\fR¥Õ¥¡¥¤¥ë¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +¥³¥Þ¥ó¥É¡¦¥Õ¥¡¥¤¥ë¤Î³Æ¹Ô¤Ï¡¢¥³¥Þ¥ó¥É¤¬»ÈÍѤµ¤ì¤ë¥³¥Þ¥ó¥É¡¢¥¯¥é¥¹Ì¾¤ª¤è¤Ó¥á¥½¥Ã¥É̾¤òɽ¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¹Ô¤Ï¡¢\fBString\fR¥¯¥é¥¹¤Î\fBtoString()\fR¥á¥½¥Ã¥É¤ËÂФ·¤Æ¥¢¥»¥ó¥Ö¥ê¡¦¥³¡¼¥É¤ò½ÐÎϤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBprint java/lang/String toString\fR + +.fi +.if n \{\ +.RE +.\} +¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤¹¤ëJIT¥³¥ó¥Ñ¥¤¥é¤Î¥³¥Þ¥ó¥É¤Î»ØÄê¤Î¾ÜºÙ¤Ï¡¢\fB\-XX:CompileCommand\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:CompileOnly=\fImethods\fR +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤òÀ©¸Â¤¹¤ë(¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿)¥á¥½¥Ã¥É¤Î¥ê¥¹¥È¤òÀßÄꤷ¤Þ¤¹¡£»ØÄꤷ¤¿¥á¥½¥Ã¥É¤Î¤ß¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£´°Á´¥¯¥é¥¹Ì¾(¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à)¤Ç³Æ¥á¥½¥Ã¥É¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBString\fR¥¯¥é¥¹¤Î\fBlength()\fR¥á¥½¥Ã¥É¤ª¤è¤Ó\fBList\fR¥¯¥é¥¹¤Î\fBsize()\fR¥á¥½¥Ã¥É¤Î¤ß¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\&.length,java/util/List\&.size\fR + +.fi +.if n \{\ +.RE +.\} +¥¹¥é¥Ã¥·¥å(\fB/\fR)¤Ç¶èÀÚ¤é¤ì¤¿¤¹¤Ù¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ª¤è¤Ó¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à¡¢´°Á´¥¯¥é¥¹Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£ÀÚ¼è¤ê¤ÈŽÉÕ¤±¤ÎÁàºî¤òÍÆ°×¤Ë¤¹¤ë¤¿¤á¤Ë¡¢\fB\-XX:+PrintCompilation\fR¥ª¥×¥·¥ç¥ó¤ª¤è¤Ó\fB\-XX:+LogCompilation\fR¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¥á¥½¥Ã¥É̾¤Î·Á¼°¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java\&.lang\&.String::length,java\&.util\&.List::size\fR + +.fi +.if n \{\ +.RE +.\} +¥ï¥¤¥ë¥É¥«¡¼¥É¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¥¯¥é¥¹Ì¾¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸Ì¾¤À¤±¤ò»ØÄꤷ¤Æ¥¯¥é¥¹¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â¡¢¥á¥½¥Ã¥É¤À¤±¤ò»ØÄꤷ¤ÆÇ¤°Õ¤Î¥¯¥é¥¹¤Î¤³¤Î̾Á°¤ò»ý¤Ä¥á¥½¥Ã¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\fR +\fB\-XX:CompileOnly=java/lang\fR +\fB\-XX:CompileOnly=\&.length\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileThreshold=\fIinvocations\fR +.RS 4 +¥³¥ó¥Ñ¥¤¥ëÁ°¤Ë²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥µ¡¼¥Ð¡¼JVM¤Ç¤Ï¡¢JIT¥³¥ó¥Ñ¥¤¥é¤Ï¡¢10,000¤Î²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤ò¼Â¹Ô¤·¤Æ¡¢¸úΨŪ¤Ê¥³¥ó¥Ñ¥¤¥ë¤Î¤¿¤á¤Î¾ðÊó¤ò¼ý½¸¤·¤Þ¤¹¡£¥¯¥é¥¤¥¢¥ó¥ÈJVM¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤Ï1,500¸Æ½Ð¤·¤Ç¤¹¡£ÁØ¥³¥ó¥Ñ¥¤¥ë¤¬Í­¸ú¤Ê¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó\fB\-XX:+TieredCompilation\fR¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¼¡¤ÎÎã¤Ç¤Ï¡¢²ò¼á¤µ¤ì¤¿¥á¥½¥Ã¥É¸Æ½Ð¤·¤Î¿ô¤ò5,000¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileThreshold=5000\fR + +.fi +.if n \{\ +.RE +.\} +\fB\-Xcomp\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë¤ÎÁ°¤Ë¡¢Java¥á¥½¥Ã¥É¤Î²ò¼á¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:+DoEscapeAnalysis +.RS 4 +¥¨¥¹¥±¡¼¥×ʬÀϤλÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥¨¥¹¥±¡¼¥×ʬÀϤλÈÍѤò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-DoEscapeAnalysis\fR¤ò»ØÄꤷ¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:InitialCodeCacheSize=\fIsize\fR +.RS 4 +½é´ü¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤÏ500KB¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£½é´ü¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤ò¥·¥¹¥Æ¥à¤ÎºÇ¾®¥á¥â¥ê¡¼¡¦¥Ú¡¼¥¸¡¦¥µ¥¤¥º¤è¤ê¾®¤µ¤¯¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£¼¡¤ÎÎã¤Ç¤Ï¡¢½é´ü¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤ò32KB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialCodeCacheSize=32k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+Inline +.RS 4 +¥á¥½¥Ã¥É¤Î¥¤¥ó¥é¥¤¥ó²½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥á¥½¥Ã¥É¤Î¥¤¥ó¥é¥¤¥ó²½¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-Inline\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:InlineSmallCode=\fIsize\fR +.RS 4 +¥¤¥ó¥é¥¤¥ó²½¤¬É¬Íפʥ³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥á¥½¥Ã¥É¤ÎºÇÂ祳¡¼¥É¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£»ØÄꤷ¤¿¥µ¥¤¥º¤è¤ê¾®¤µ¤¤¥µ¥¤¥º¤Î¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥á¥½¥Ã¥É¤Î¤ß¤¬¡¢¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ºÇÂ祳¡¼¥É¡¦¥µ¥¤¥º¤Ï1000¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InlineSmallCode=1000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+LogCompilation +.RS 4 +¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë\fBhotspot\&.log\fR¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥³¥ó¥Ñ¥¤¥ë¡¦¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Î¥í¥®¥ó¥°¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£\fB\-XX:LogFile\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢°Û¤Ê¤ë¥í¥°¡¦¥Õ¥¡¥¤¥ë¡¦¥Ñ¥¹¤È̾Á°¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥³¥ó¥Ñ¥¤¥ë¡¦¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤Ïµ­Ï¿¤µ¤ì¤Þ¤»¤ó¡£\fB\-XX:+LogCompilation\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¿ÇÃÇJVM¥ª¥×¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë\fB\-XX:UnlockDiagnosticVMOptions\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fB\-XX:+PrintCompilation\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¥á¥½¥Ã¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤Ó¤Ë¡¢¥³¥ó¥½¡¼¥ë¤Ë½ÐÎϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤ò´Þ¤à¾ÜºÙ¤Ê¿ÇÃǽÐÎϤòÍ­¸ú²½¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:MaxInlineSize=\fIsize\fR +.RS 4 +¥¤¥ó¥é¥¤¥ó²½¤¹¤ë¥á¥½¥Ã¥É¤ÎºÇÂç¥Ð¥¤¥È¥³¡¼¥É¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ºÇÂç¥Ð¥¤¥È¥³¡¼¥É¡¦¥µ¥¤¥º¤Ï35¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxInlineSize=35\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNodeLimit=\fInodes\fR +.RS 4 +ñ°ì¤Î¥á¥½¥Ã¥É¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Ë»ÈÍѤµ¤ì¤ë¥Î¡¼¥É¤ÎºÇÂç¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Î¡¼¥É¤ÎºÇÂç¿ô¤Ï65,000¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxNodeLimit=65000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxTrivialSize=\fIsize\fR +.RS 4 +¥¤¥ó¥é¥¤¥ó²½¤¹¤ëñ½ã¥á¥½¥Ã¥É¤ÎºÇÂç¥Ð¥¤¥È¥³¡¼¥É¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Ã±½ã¥á¥½¥Ã¥É¤ÎºÇÂç¥Ð¥¤¥È¥³¡¼¥É¡¦¥µ¥¤¥º¤Ï6¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTrivialSize=6\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+OptimizeStringConcat +.RS 4 +\fBString\fRÏ¢·ëÁàºî¤ÎºÇŬ²½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\fBString\fRÏ¢·ëÁàºî¤ÎºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-OptimizeStringConcat\fR¤ò»ØÄꤷ¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:+PrintAssembly +.RS 4 +³°Éô¤Î\fBdisassembler\&.so\fR¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Æ¡¢¥Ð¥¤¥È¥³¡¼¥É²½¤µ¤ì¤¿¥Í¥¤¥Æ¥£¥Ö¤Î¥á¥½¥Ã¥É¤Î¥¢¥»¥ó¥Ö¥ê¡¦¥³¡¼¥É¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢À¸À®¤µ¤ì¤¿¥³¡¼¥É¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ÎÌäÂê¤Î¿ÇÃǤËÌòΩ¤Á¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¢¥»¥ó¥Ö¥ê¡¦¥³¡¼¥É¤Ï°õºþ¤µ¤ì¤Þ¤»¤ó¡£\fB\-XX:+PrintAssembly\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¿ÇÃÇJVM¥ª¥×¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë\fB\-XX:UnlockDiagnosticVMOptions\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+PrintCompilation +.RS 4 +¥á¥½¥Ã¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤Ó¤Ë¡¢¥³¥ó¥½¡¼¥ë¤Ë¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢JVM¤«¤é¤Î¾ÜºÙ¤Ê¿ÇÃǽÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¼ÂºÝ¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¿ÇÃǽÐÎϤϰõºþ¤µ¤ì¤Þ¤»¤ó¡£ +.sp +\fB\-XX:+LogCompilation\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë¡¦¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¤ò¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:+PrintInlining +.RS 4 +¥¤¥ó¥é¥¤¥ó²½¤Î·èÄêÆâÍÆ¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥¤¥ó¥é¥¤¥ó²½¾ðÊó¤Ï½ÐÎϤµ¤ì¤Þ¤»¤ó¡£\fB\-XX:+PrintInlining\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¿ÇÃÇJVM¥ª¥×¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë\fB\-XX:+UnlockDiagnosticVMOptions\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:ReservedCodeCacheSize=\fIsize\fR +.RS 4 +JIT¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤ÎºÇÂ祳¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï2GB¤ÎÀ©¸Â¤¬¤¢¤ê¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ºÇÂ祳¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤ò½é´ü¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤è¤ê¾®¤µ¤¯¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\fB\-XX:InitialCodeCacheSize\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\fB\-Xmaxjitcodesize\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-XX:RTMAbortRatio=\fIabort_ratio\fR +.RS 4 +RTMÃæ»ßΨ¤Ï¡¢¤¹¤Ù¤Æ¤Î¼Â¹ÔºÑRTM¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ËÂФ¹¤ë¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸(%)¤È¤·¤Æ»ØÄꤵ¤ì¤Þ¤¹¡£Ãæ»ß¤µ¤ì¤¿¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¿ô¤¬¤³¤ÎΨ¤òͤ¨¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤¬ÈóºÇŬ²½¤µ¤ì¤Þ¤¹¡£¤³¤ÎΨ¤Ï¡¢\fB\-XX:+UseRTMDeopt\fR¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏ50¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¤¹¤Ù¤Æ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î50%¤¬Ãæ»ß¤µ¤ì¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤¬ÈóºÇŬ²½¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:RTMRetryCount=\fInumber_of_retries\fR +.RS 4 +Ãæ»ß¤Þ¤¿¤Ï¥Ó¥¸¡¼¤Î¾ì¹ç¡¢RTM¥í¥Ã¥¯¡¦¥³¡¼¥É¤Ï¡¢É¸½à¤Î¥í¥Ã¥¯¡¦¥á¥«¥Ë¥º¥à¤Ë¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¤¹¤ëÁ°¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿²ó¿ôºÆ»î¹Ô¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏ5¤Ç¤¹¡£\fB\-XX:UseRTMLocking\fR¥ª¥×¥·¥ç¥ó¤òÍ­¸ú²½¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+TieredCompilation +.RS 4 +ÁØ¥³¥ó¥Ñ¥¤¥ë¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseAES +.RS 4 +Intel¡¢AMD¤ª¤è¤ÓSPARC¥Ï¡¼¥É¥¦¥§¥¢¤ËÂФ·¤Æ¡¢¥Ï¡¼¥É¥¦¥§¥¢¥Ù¡¼¥¹¤ÎAESÁȹþ¤ß¤òÍ­¸ú²½¤·¤Þ¤¹¡£Intel Westmere (2010°Ê¹ß)¡¢AMD Bulldozer (2011°Ê¹ß)¤ª¤è¤ÓSPARC (T4°Ê¹ß)¤¬¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤¹¡£UseAES¤Ï¡¢UseAESIntrinsics¤È¤È¤â¤Ë»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseAESIntrinsics +.RS 4 +UseAES¤ÈUseAESIntrinsics¥Õ¥é¥°¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú²½¤µ¤ì¤Æ¤ª¤ê¡¢Java HotSpot Server VM 32¥Ó¥Ã¥È¤ª¤è¤Ó64¥Ó¥Ã¥È¤ËÂФ·¤Æ¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥Ï¡¼¥É¥¦¥§¥¢¥Ù¡¼¥¹¤ÎAESÁȹþ¤ß¤ò̵¸ú²½¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseAES \-XX:\-UseAESIntrinsics\fR¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¥Ï¡¼¥É¥¦¥§¥¢AES¤òÍ­¸ú²½¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥Õ¥é¥°¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:+UseAES \-XX:+UseAESIntrinsics\fR + +.fi +.if n \{\ +.RE +.\} +32¥Ó¥Ã¥È¤ª¤è¤Ó64¥Ó¥Ã¥È¤ËÂФ·¤ÆUseAES¤ª¤è¤ÓUseAESIntrinsics¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤Ë¤Ï¡¢\fB\-server\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤ÆJava HotSpot Server VM¤òÁªÂò¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥ÈVM¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+UseCodeCacheFlushing +.RS 4 +¥³¥ó¥Ñ¥¤¥é¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¤¹¤ëÁ°¤Ë¡¢¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¤Î¥Õ¥é¥Ã¥·¥å¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥³¥ó¥Ñ¥¤¥é¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¤¹¤ëÁ°¤Ë¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å¤Î¥Õ¥é¥Ã¥·¥å¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï\fB\-XX:\-UseCodeCacheFlushing\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseCondCardMark +.RS 4 +¥«¡¼¥Éɽ¤Î¹¹¿·Á°¤Ë¡¢¥«¡¼¥É¤¬¤¹¤Ç¤Ë¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢Ê£¿ô¤Î¥½¥±¥Ã¥È¤ò»ý¤Ä¥Þ¥·¥ó¾å¤Ç¤Î¤ß»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢Æ±»þÁàºî¤Ë¤«¤Ê¤ê°Í¸¤·¤Æ¤¤¤ëJava¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseRTMDeopt +.RS 4 +Ãæ»ßΨ¤Ë±þ¤¸¤Æ¡¢RTM¥í¥Ã¥¯¤ò¼«Æ°Ä´À°¤·¤Þ¤¹¡£¤³¤ÎΨ¤Ï¡¢\fB\-XX:RTMAbortRatio\fR¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤Þ¤¹¡£Ãæ»ß¤µ¤ì¤¿¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¿ô¤¬Ãæ»ßΨ¤òͤ¨¤¿¾ì¹ç¡¢¥í¥Ã¥¯¤ò´Þ¤à¥á¥½¥Ã¥É¤¬¤¹¤Ù¤Æ¤Î¥í¥Ã¥¯¤Çɸ½à¤Î¥í¥Ã¥¯¤È¤·¤ÆÈóºÇŬ²½¤ª¤è¤ÓºÆ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\fB\-XX:+UseRTMLocking\fR¥ª¥×¥·¥ç¥ó¤òÍ­¸ú²½¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseRTMLocking +.RS 4 +¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¡¦¥Ï¥ó¥É¥é¤È¤·¤ÆÉ¸½à¤Î¥í¥Ã¥¯¡¦¥á¥«¥Ë¥º¥à¤ò»ÈÍѤ·¤Æ¡¢Å¸³«¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥í¥Ã¥¯¤ËÂФ·¤ÆRestricted Transactional Memory (RTM)¥í¥Ã¥¯¡¦¥³¡¼¥É¤òÀ¸À®¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£RTM¤Ë´ØÏ¢¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ï¡¢Transactional Synchronization Extensions (TSX)¤ò¥µ¥Ý¡¼¥È¤¹¤ëx86 CPU¾å¤ÎJava HotSpot Server VM¤ËÂФ·¤Æ¤Î¤ß»ÈÍѲÄǽ¤Ç¤¹¡£ +.sp +RTM¤Ï¡¢x86Ì¿Î᥻¥Ã¥È³ÈÄ¥¤Ç¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎºîÀ®¤òÍÆ°×¤Ë¤¹¤ëIntel¤ÎTSX¤Î°ìÉô¤Ç¤¹¡£RTM¤Ç¤Ï¡¢¿·¤·¤¤Ì¿Îá +\fBXBEGIN\fR¡¢\fBXABORT\fR¡¢\fBXEND\fR¤ª¤è¤Ó\fBXTEST\fR¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\fBXBEGIN\fR¤ª¤è¤Ó\fBXEND\fRÌ¿Îá¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤È¤·¤Æ¼Â¹Ô¤¹¤ë¤¿¤á¤ÎÌ¿Î᥻¥Ã¥È¤ò°Ï¤ß¤Þ¤¹¡£¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¼Â¹Ô»þ¤Ë¶¥¹ç¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥á¥â¥ê¡¼¤È¥ì¥¸¥¹¥¿¤ÎÊѹ¹¤¬¡¢\fBXEND\fRÌ¿Îá¤ÇƱ»þ¤Ë¥³¥ß¥Ã¥È¤µ¤ì¤Þ¤¹¡£\fBXABORT\fRÌ¿Îá¤Ç¤Ï¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤òÌÀ¼¨Åª¤ËÃæ»ß¤Ç¤­¡¢\fBXEND\fRÌ¿Îá¤Ç¤ÏÌ¿Î᥻¥Ã¥È¤¬¥È¥é¥ó¥¶¥¯¥·¥ç¥óÆâ¤Ç¼Â¹ÔÃæ¤«¤É¤¦¤«¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£ +.sp +¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥í¥Ã¥¯¤Ï¡¢Ê̤Υ¹¥ì¥Ã¥É¤¬Æ±¤¸¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤·¤è¤¦¤È¤·¤¿¤È¤­¤ËŸ³«¤µ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ø¤Î¥¢¥¯¥»¥¹¤òºÇ½é¤Ë¥ê¥¯¥¨¥¹¥È¤·¤Ê¤«¤Ã¤¿¥¹¥ì¥Ã¥É¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¤Þ¤¹¡£RTM¤Ç¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬Ãæ»ß¤Þ¤¿¤Ï¼ºÇÔ¤·¤¿¾ì¹ç¤Î¤¿¤á¤Ë¡¢¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¤ÎÁàºî¥»¥Ã¥È¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£RTM¥í¥Ã¥¯¤È¤Ï¡¢TSX¤Î¥·¥¹¥Æ¥à¤Ë°Ñ¾ù¤µ¤ì¤Æ¤¤¤ë¥í¥Ã¥¯¤Ç¤¹¡£ +.sp +RTM¤Ë¤è¤ê¡¢½ÅÍפʥ꡼¥¸¥ç¥ó¤Ë¤ª¤¤¤Æ¾×ÆÍ¤¬¾¯¤Ê¤¯¶¥¹çÅ٤ι⤤¥í¥Ã¥¯¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤µ¤ì¤Þ¤¹(¤³¤ì¤Ï¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¤Ë¤è¤Ã¤ÆÆ±»þ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¥³¡¼¥É¤Ç¤¹)¡£¤Þ¤¿¡¢RTM¤Ë¤è¤ê¡¢ÁÆÎ³ÅÙ¥í¥Ã¥¯¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤â¸þ¾å¤µ¤ì¤Þ¤¹¤¬¡¢°ìÈÌŪ¤Ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ï¤è¤¯¤¢¤ê¤Þ¤»¤ó¡£(ÁÆÎ³ÅÙ¥í¥Ã¥¯¤È¤Ï¡¢¥í¥Ã¥¯¤Î¼èÆÀ¤ª¤è¤Ó²òÊü¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤òºÇ¾®²½¤¹¤ë¤¿¤á¤ËŤ¤´ü´Ö¥í¥Ã¥¯¤òÊÝ»ý¤¹¤ëÀïά¤Ç¤¢¤ê¡¢°ìÊý¡¢ºÙγÅÙ¥í¥Ã¥¯¤È¤ÏɬÍפʾì¹ç¤Î¤ß¥í¥Ã¥¯¤·²Äǽ¤Ê¤«¤®¤êÁá´ü¤Ë¥í¥Ã¥¯²ò½ü¤¹¤ë¤³¤È¤ÇºÇÂç¸Â¤ÎʹԽèÍý¤ÎãÀ®¤ò»î¤ß¤ëÀïά¤Ç¤¹¡£)¤µ¤é¤Ë¡¢°Û¤Ê¤ë¥¹¥ì¥Ã¥É¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë·ÚÅ٤ʶ¥¹ç¥í¥Ã¥¯¤Î¾ì¹ç¡¢RTM¤Ë¤è¤ê¡¢¸í¤Ã¤¿¥­¥ã¥Ã¥·¥å¡¦¥é¥¤¥ó¶¦Í­(¥­¥ã¥Ã¥·¥å¡¦¥é¥¤¥ó¡¦¥Ô¥ó¥Ý¥ó¤È¤â¸Æ¤Ð¤ì¤ë)¤òºï¸º¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢°Û¤Ê¤ë¥×¥í¥»¥Ã¥µ¤«¤é¤ÎÊ£¿ô¤Î¥¹¥ì¥Ã¥É¤¬°Û¤Ê¤ë¥ê¥½¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¾ì¹ç¤ËȯÀ¸¤·¤Þ¤¹¤¬¡¢¥ê¥½¡¼¥¹¤ÏƱ¤¸¥­¥ã¥Ã¥·¥å¡¦¥é¥¤¥ó¤ò¶¦Í­¤·¤Þ¤¹¡£·ë²Ì¤È¤·¤Æ¡¢¥×¥í¥»¥Ã¥µ¤Ï¾¤Î¥×¥í¥»¥Ã¥µ¤Î¥­¥ã¥Ã¥·¥å¡¦¥é¥¤¥ó¤ò·«¤êÊÖ¤·Ìµ¸ú¤Ë¤·¡¢¤³¤ì¤Ë¤è¤ê¡¢¥­¥ã¥Ã¥·¥å¤Ç¤Ï¤Ê¤¯¥á¥¤¥ó¡¦¥á¥â¥ê¡¼¤«¤é¤ÎÆÉ¼è¤ê¤¬¶¯À©¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseSHA +.RS 4 +SPARC¥Ï¡¼¥É¥¦¥§¥¢¤ÎSHA°Å¹æ²½¥Ï¥Ã¥·¥å´Ø¿ô¤Î¥Ï¡¼¥É¥¦¥§¥¢¥Ù¡¼¥¹¤ÎÁȹþ¤ß¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£\fBUseSHA\fR¤Ï¡¢\fBUseSHA1Intrinsics\fR¡¢\fBUseSHA256Intrinsics\fR¤ª¤è¤Ó\fBUseSHA512Intrinsics\fR¥ª¥×¥·¥ç¥ó¤ÈÁȤ߹礻¤Æ»ÈÍѤ·¤Þ¤¹¡£ +.sp +\fBUseSHA\fR¤ª¤è¤Ó\fBUseSHA*Intrinsics\fR¥Õ¥é¥°¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¢¤ê¡¢SPARC T4°Ê¾å¤ÎJava HotSpot Server VM 64¥Ó¥Ã¥È¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£ +.sp +SHAÁàºî¤ËÂФ·¤Æ\fBsun\&.security\&.provider\&.Sun\fR¥×¥í¥Ð¥¤¥À¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Î¤ß¡¢¤³¤Îµ¡Ç½¤òŬÍѤǤ­¤Þ¤¹¡£ +.sp +¤¹¤Ù¤Æ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥Ù¡¼¥¹¤ÎSHAÁȹþ¤ß¤ò̵¸ú²½¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseSHA\fR¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ÆÃÄê¤ÎSHAÁȹþ¤ß¤Î¤ß̵¸ú²½¤¹¤ë¤Ë¤Ï¡¢Å¬ÀÚ¤ÊÂбþ¤¹¤ë¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢\fB\-XX:\-UseSHA256Intrinsics\fR¤Ê¤É¤Ç¤¹¡£ +.RE +.PP +\-XX:+UseSHA1Intrinsics +.RS 4 +SHA\-1°Å¹æ²½¥Ï¥Ã¥·¥å´Ø¿ô¤ÎÁȹþ¤ß¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseSHA256Intrinsics +.RS 4 +SHA\-224¤ª¤è¤ÓSHA\-256°Å¹æ²½¥Ï¥Ã¥·¥å´Ø¿ô¤ÎÁȹþ¤ß¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseSHA512Intrinsics +.RS 4 +SHA\-384¤ª¤è¤ÓSHA\-512°Å¹æ²½¥Ï¥Ã¥·¥å´Ø¿ô¤ÎÁȹþ¤ß¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseSuperWord +.RS 4 +¥¹¥«¥é¡¼±é»»¤Î¥¹¡¼¥Ñ¡¼¥ï¡¼¥É±é»»¤Ø¤ÎÊÑ´¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥¹¥«¥é¡¼±é»»¤Î¥¹¡¼¥Ñ¡¼¥ï¡¼¥É±é»»¤Ø¤ÎÊÑ´¹¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseSuperWord\fR¤ò»ØÄꤷ¤Þ¤¹¡£Java HotSpot Server VM¤Î¤ß¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.RE +.SS "¹âÅ٤ʥµ¡¼¥Ó¥¹¥¢¥Ó¥ê¥Æ¥£¡¦¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥·¥¹¥Æ¥à¾ðÊó¤ò¼ý½¸¤·¡¢¾ÜºÙ¤Ê¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤¹¤ëµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +.PP +\-XX:+ExtendedDTraceProbes +.RS 4 +¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë±Æ¶Á¤òÍ¿¤¨¤ëÄɲäÎ\fBdtrace\fR¥Ä¡¼¥ë¡¦¥×¥í¡¼¥Ö¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢\fBdtrace\fR¤Ïɸ½à¥×¥í¡¼¥Ö¤Î¤ß¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:+HeapDumpOnOutOfMemory +.RS 4 +\fBjava\&.lang\&.OutOfMemoryError\fRÎã³°¤¬¥¹¥í¡¼¤µ¤ì¤¿¾ì¹ç¤Ë¡¢¥Ò¡¼¥×¡¦¥×¥í¥Õ¥¡¥¤¥é(HPROF)¤ò»ÈÍѤ·¤Æ¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎJava¥Ò¡¼¥×¤Î¥À¥ó¥×¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£\fB\-XX:HeapDumpPath\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¥Ò¡¼¥×¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ª¤è¤Ó̾Á°¤òÌÀ¼¨Åª¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢\fBOutOfMemoryError\fRÎã³°¤¬¥¹¥í¡¼¤µ¤ì¤¿¾ì¹ç¤Ë¥Ò¡¼¥×¤Ï¥À¥ó¥×¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:HeapDumpPath=\fIpath\fR +.RS 4 +\fB\-XX:+HeapDumpOnOutOfMemoryError\fR¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥Ò¡¼¥×¡¦¥×¥í¥Õ¥¡¥¤¥é(HPROF)¤¬Ä󶡤¹¤ë¥Ò¡¼¥×¡¦¥À¥ó¥×¤ò½ñ¤­¹þ¤à¥Ñ¥¹¤ª¤è¤Ó¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¡¢Ì¾Á°¤Ï\fBjava_pid\fR\fIpid\fR\fB\&.hprof\fR +(\fIpid\fR¤Ï¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò)¤Ë¤Ê¤ê¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥¡¥¤¥ë¤òÌÀ¼¨Åª¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹(\fB%p\fR¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤Î¼±Ê̻Ҥòɽ¤·¤Þ¤¹)¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=\&./java_pid%p\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤ÎÎã¤Ç¤Ï¡¢¥Ò¡¼¥×¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤ò\fB/var/log/java/java_heapdump\&.hprof\fR¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=/var/log/java/java_heapdump\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:LogFile=\fIpath\fR +.RS 4 +¥í¥°¡¦¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ñ¥¹¤ª¤è¤Ó¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¡¢Ì¾Á°¤Ï\fBhotspot\&.log\fR¤Ç¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥í¥°¡¦¥Õ¥¡¥¤¥ë¤ò\fB/var/log/java/hotspot\&.log\fR¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LogFile=/var/log/java/hotspot\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintClassHistogram +.RS 4 +\fB[Control]+[C]\fR¥¤¥Ù¥ó¥È(\fBSIGTERM\fR)¸å¤Ë¥¯¥é¥¹¡¦¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥Ò¥¹¥È¥°¥é¥à¤Î°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.sp +¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢\fBjmap \-histo\fR¥³¥Þ¥ó¥É¡¢¤Þ¤¿¤Ï\fBjcmd \fR\fIpid\fR\fB GC\&.class_histogram\fR¥³¥Þ¥ó¥É(\fIpid\fR¤Ï¸½ºß¤ÎJava¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò)¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+PrintConcurrentLocks +.RS 4 +°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹ ¥í¥Ã¥¯(¼¡¤Î¸å) \- ¥¤¥Ù¥ó¥È¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.sp +\fB[Control]+[C]\fR¥¤¥Ù¥ó¥È(\fBSIGTERM\fR)¸å¤Ë\fBjava\&.util\&.concurrent\fR¥í¥Ã¥¯¤Î°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.sp +¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢\fBjstack \-l\fR¥³¥Þ¥ó¥É¡¢¤Þ¤¿¤Ï\fBjcmd \fR\fIpid\fR\fB Thread\&.print \-l\fR¥³¥Þ¥ó¥É(\fIpid\fR¤Ï¸½ºß¤ÎJava¥×¥í¥»¥¹¤Î¼±ÊÌ»Ò)¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+UnlockDiagnosticVMOptions +.RS 4 +JVM¤Î¿ÇÃǤòÌÜŪ¤È¤·¤¿¥ª¥×¥·¥ç¥ó¤ò¥¢¥ó¥í¥Ã¥¯¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¿ÇÃÇ¥ª¥×¥·¥ç¥ó¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡£ +.RE +.SS "¹âÅ٤ʥ¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¡¦¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó(GC)¤¬Java HotSpot VM¤Ë¤è¤Ã¤Æ¤É¤Î¤è¤¦¤Ë¼Â¹Ô¤µ¤ì¤ë¤«¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +\-XX:+AggressiveHeap +.RS 4 +Java¥Ò¡¼¥×¤ÎºÇŬ²½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥³¥ó¥Ô¥å¡¼¥¿¤Î¹½À®(RAM¤ª¤è¤ÓCPU)¤Ë´ð¤Å¤¤¤Æ¡¢ÍÍ¡¹¤Ê¥Ñ¥é¥á¡¼¥¿¤¬¡¢¥á¥â¥ê¡¼³äÅö¤Æ¤¬½¸Ã椷¤¿Ä¹»þ´Ö¼Â¹Ô¥¸¥ç¥Ö¤ËºÇŬ¤Ë¤Ê¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¢¤ê¡¢¥Ò¡¼¥×¤ÏºÇŬ²½¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+AlwaysPreTouch +.RS 4 +JVM¤Î½é´ü²½Ãæ¤ËJava¥Ò¡¼¥×¾å¤Î¤¹¤Ù¤Æ¤Î¥Ú¡¼¥¸¤Î¥¿¥Ã¥Á¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢\fBmain()\fR¥á¥½¥Ã¥É¤ÎÆþÎÏÁ°¤Ë¡¢¤¹¤Ù¤Æ¤Î¥Ú¡¼¥¸¤¬¥á¥â¥ê¡¼¤Ë¼èÆÀ¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÊªÍý¥á¥â¥ê¡¼¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î²¾ÁÛ¥á¥â¥ê¡¼¤ò´Þ¤àĹ»þ´Ö¼Â¹Ô¤Î¥·¥¹¥Æ¥à¤ò¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¥Æ¥¹¥È¤Ç»ÈÍѤǤ­¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢JVM¥Ò¡¼¥×Îΰ褬¤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥Ú¡¼¥¸¤¬¥³¥ß¥Ã¥È¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:+CMSClassUnloadingEnabled +.RS 4 +ʹԥޡ¼¥¯¥¹¥¤¡¼¥×(CMS)¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¡¢¥¢¥ó¥í¡¼¥É¤¹¤ë¥¯¥é¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£CMS¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Î¥¯¥é¥¹¡¦¥¢¥ó¥í¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-CMSClassUnloadingEnabled\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:CMSExpAvgFactor=\fIpercent\fR +.RS 4 +ʹԥ³¥ì¥¯¥·¥ç¥óÅý·×¤Î»Ø¿ôÊ¿¶Ñ¤ò·×»»¤¹¤ëºÝ¤Ë¡¢¸½ºß¤Î¥µ¥ó¥×¥ë¤ò½Å¤ßÉÕ¤±¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë»þ´Ö¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢»Ø¿ôÊ¿¶Ñ·¸¿ô¤Ï25%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢·¸¿ô¤ò15%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSExpAvgFactor=15\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CMSInitiatingOccupancyFraction=\fIpercent\fR +.RS 4 +CMS¼ý½¸¥µ¥¤¥¯¥ë¤ò³«»Ï¤¹¤ë¸Å¤¤À¤Âå¤ÎÀêͭΨ(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤÏ\-1¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£Éé¤ÎÃÍ(¥Ç¥Õ¥©¥ë¥È¤ò´Þ¤à)¤Ï¡¢\fB\-XX:CMSTriggerRatio\fR¤¬³«»ÏÀêͭΨ¤ÎÃͤòÄêµÁ¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢ÀêͭΨ¤ò20%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSInitiatingOccupancyFraction=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+CMSScavengeBeforeRemark +.RS 4 +CMS¥³¥á¥ó¥È¡¦¥¹¥Æ¥Ã¥×¤ÎÁ°¤Ë¥¹¥«¥Ù¥ó¥¸¤Î»î¹Ô¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:CMSTriggerRatio=\fIpercent\fR +.RS 4 +CMS¼ý½¸¥µ¥¤¥¯¥ë¤¬³«»Ï¤¹¤ëÁ°¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë\fB\-XX:MinHeapFreeRatio\fR¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ëÃͤγä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤÏ80%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢ÀêͭΨ¤ò75%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSTriggerRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:ConcGCThreads=\fIthreads\fR +.RS 4 +ʹÔGC¤Ë»ÈÍѤµ¤ì¤ë¥¹¥ì¥Ã¥É¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢JVM¤Ë»ÈÍѤǤ­¤ëCPU¤Î¿ô¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.sp +¤¿¤È¤¨¤Ð¡¢Ê¹ÔGC¤Î¥¹¥ì¥Ã¥É¿ô¤ò2¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ConcGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+DisableExplicitGC +.RS 4 +\fBSystem\&.gc()\fR¤Î¸Æ½Ð¤·¤Î½èÍý¤ò̵¸ú¤Ë¤¹¤ë¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤ì¤Ï\fBSystem\&.gc()\fR¤Ø¤Î¸Æ½Ð¤·¤¬½èÍý¤µ¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£\fBSystem\&.gc()\fR¤Î¸Æ½Ð¤·¤Î½èÍý¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢JVM¤ÏɬÍפ˱þ¤¸¤ÆGC¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrent +.RS 4 +\fBSystem\&.gc()\fR¥ê¥¯¥¨¥¹¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ê¹ÔGC¤Î¸Æ½Ð¤·¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢\fB\-XX:+UseConcMarkSweepGC\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Î¤ß¡¢Í­¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses +.RS 4 +\fBSystem\&.gc()\fR¥ê¥¯¥¨¥¹¥È¤ò»ÈÍѤ·¡¢Ê¹ÔGC¥µ¥¤¥¯¥ëÃæ¤Ë¥¯¥é¥¹¤ò¥¢¥ó¥í¡¼¥É¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ê¹ÔGC¤Î¸Æ½Ð¤·¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢\fB\-XX:+UseConcMarkSweepGC\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Î¤ß¡¢Í­¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:G1HeapRegionSize=\fIsize\fR +.RS 4 +¥¬¥Ù¡¼¥¸¥Õ¥¡¡¼¥¹¥È(G1)¥³¥ì¥¯¥¿¤ò»ÈÍѤ¹¤ëºÝ¤ËJava¥Ò¡¼¥×¤òºÙʬ²½¤¹¤ë¥ê¡¼¥¸¥ç¥ó¤Î¥µ¥¤¥º¤òÀßÄꤷ¤Þ¤¹¡£Ãͤˤϡ¢1MB¤«¤é32MB¤Þ¤Ç¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥ê¡¼¥¸¥ç¥ó¡¦¥µ¥¤¥º¤Ï¡¢¥Ò¡¼¥×¡¦¥µ¥¤¥º¤Ë´ð¤Å¤¤¤Æ¿Í´Ö¹©³ØÅª¤Ë·èÄꤵ¤ì¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢ºÙʬ²½¤µ¤ì¤¿¥µ¥¤¥º¤ò16MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1HeapRegionSize=16m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+G1PrintHeapRegions +.RS 4 +³ä¤êÅö¤Æ¤é¤ì¤¿¥ê¡¼¥¸¥ç¥ó¤ª¤è¤ÓG1¥³¥ì¥¯¥¿¤Ë¤è¤Ã¤ÆºÆÍ׵ᤵ¤ì¤¿¤â¤Î¤Ë´Ø¤¹¤ë¾ðÊó¤Î°õºþ¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:G1ReservePercent=\fIpercent\fR +.RS 4 +G1¥³¥ì¥¯¥¿¤Î¾º³Ê¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤ò¸º¤é¤¹¤¿¤á¤Îfalse¤Î¾å¸Â¤È¤·¤ÆÍ½Ì󤵤줿¥Ò¡¼¥×¤Î³ä¹ç(0¤«¤é50¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï10%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢Í½Ì󤵤줿¥Ò¡¼¥×¤ò20%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1ReservePercent=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitialHeapSize=\fIsize\fR +.RS 4 +¥á¥â¥ê¡¼³äÅö¤Æ¥×¡¼¥ë¤Î½é´ü¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£»ØÄꤹ¤ëÃͤϡ¢0¡¢¤Þ¤¿¤Ï1MB¤è¤êÂ礭¤¤1024¤ÎÇÜ¿ô¤Î¤¤¤º¤ì¤«¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¼Â¹Ô»þ¤Ë¥·¥¹¥Æ¥à¹½À®¤Ë´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤Þ¤¹¡£http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html¤Î\fIJava SE HotSpot²¾ÁÛ¥Þ¥·¥ó¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¡¦¥Á¥å¡¼¥Ë¥ó¥°¡¦¥¬¥¤¥É\fR¤Î¥¨¥ë¥´¥Î¥ß¥¯¥¹¤Ë´Ø¤¹¤ë¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¡¼¤Î¥µ¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ6MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialHeapSize=6291456\fR +\fB\-XX:InitialHeapSize=6144k\fR +\fB\-XX:InitialHeapSize=6m\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤ò0¤ËÀßÄꤷ¤¿¾ì¹ç¡¢½é´ü¥µ¥¤¥º¤Ï¡¢¸Å¤¤À¤Âå¤È¼ã¤¤À¤Âå¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥µ¥¤¥º¤Î¹ç·×¤È¤·¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥Ò¡¼¥×¤Î¥µ¥¤¥º¤Ï¡¢\fB\-XX:NewSize\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤ÆÀßÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:InitialSurvivorRatio=\fIratio\fR +.RS 4 +¥¹¥ë¡¼¥×¥Ã¥È¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤¬»ÈÍѤ¹¤ë¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´üÈæ¤òÀßÄꤷ¤Þ¤¹(\fB\-XX:+UseParallelGC\fR¤ª¤è¤Ó/¤Þ¤¿¤Ï\fB\-XX:+UseParallelOldGC\fR¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹)¡£\fB\-XX:+UseParallelGC\fR¥ª¥×¥·¥ç¥ó¤ª¤è¤Ó\fB\-XX:+UseParallelOldGC\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¹¥ë¡¼¥×¥Ã¥È¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤ÇŬ±þ¥µ¥¤¥º»ØÄê¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤·¤Þ¤¹¡£½é´üÃͤ«¤é»Ï¤á¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îưºî¤Ë½¾¤Ã¤Æ¡¢¥µ¥Ð¥¤¥ÐÎΰ褬¥µ¥¤¥ºÊѹ¹¤µ¤ì¤Þ¤¹¡£(\fB\-XX:\-UseAdaptiveSizePolicy\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ)Ŭ±þ¥µ¥¤¥º»ØÄê¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¡¢\fB\-XX:SurvivorRatio\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹ÔÁ´ÂΤΥµ¥Ð¥¤¥ÐÎΰè¤Î¥µ¥¤¥º¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¼¡¤Î¼°¤ò»ÈÍѤ·¤Æ¡¢¼ã¤¤À¤Âå¤Î¥µ¥¤¥º(Y)¤ª¤è¤Ó¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´üÈæ(R)¤Ë´ð¤Å¤¤¤Æ¡¢¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´ü¥µ¥¤¥º(S)¤ò·×»»¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBS=Y/(R+2)\fR + +.fi +.if n \{\ +.RE +.\} +Åù¼°Æâ¤Î2¤Ï¡¢2¤Ä¤Î¥µ¥Ð¥¤¥ÐÎΰè¤ò¼¨¤·¤Þ¤¹¡£¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´üÈæ¤Ë»ØÄꤹ¤ëÃͤòÂ礭¤¯¤¹¤ë¤È¡¢¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´ü¥µ¥¤¥º¤Ï¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´üÈæ¤Ï8¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼ã¤¤À¤Âå¤ÎÎΰ襵¥¤¥º¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ(2MB)¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´ü¥µ¥¤¥º¤Ï0\&.2MB¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥µ¥Ð¥¤¥ÐÎΰè¤Î½é´üÈæ¤ò4¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialSurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitiatingHeapOccupancyPercent=\fIpercent\fR +.RS 4 +ʹÔGC¥µ¥¤¥¯¥ë¤ò³«»Ï¤¹¤ë¥Ò¡¼¥×ÀêͭΨ(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¤³¤ì¤Ï¡¢1¤Ä¤ÎÀ¤Âå¤Î¤ß(¤¿¤È¤¨¤ÐG1¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ê¤É)¤Ç¤Ï¤Ê¤¯¡¢¥Ò¡¼¥×Á´ÂΤÎÀêÍ­¤Ë´ð¤Å¤¤¤ÆÊ¹ÔGC¥µ¥¤¥¯¥ë¤ò¥È¥ê¥¬¡¼¤¹¤ë¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢³«»ÏÃͤÏ45%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ÃÍ0¤Ï¡¢GC¥µ¥¤¥¯¥ë¤¬Ää»ß¤·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢³«»Ï¥Ò¡¼¥×ÀêͭΨ¤ò75%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitiatingHeapOccupancyPercent=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxGCPauseMillis=\fItime\fR +.RS 4 +ºÇÂçGCµÙ»ß»þ´Ö(¥ß¥êÉÃñ°Ì)¤Î¥¿¡¼¥²¥Ã¥È¤òÀßÄꤷ¤Þ¤¹¡£¤³¤ì¤Ï¥½¥Õ¥È¡¦¥´¡¼¥ë¤Î¤¿¤á¡¢JVM¤Ï¼Â¸½¤Î¤¿¤á¤ËºÇÁ±¤ÎÅØÎϤò¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢µÙ»ß»þ´Ö¤ÎºÇÂçÃͤϤ¢¤ê¤Þ¤»¤ó¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢ºÇÂ祿¡¼¥²¥Ã¥ÈµÙ»ß»þ´Ö¤ò500¥ß¥êÉäËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxGCPauseMillis=500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxHeapSize=\fIsize\fR +.RS 4 +¥á¥â¥ê¡¼³äÅö¤Æ¥×¡¼¥ë¤ÎºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£»ØÄꤹ¤ëÃͤϡ¢2MB¤è¤êÂ礭¤¤1024¤ÎÇÜ¿ô¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¼Â¹Ô»þ¤Ë¥·¥¹¥Æ¥à¹½À®¤Ë´ð¤Å¤¤¤ÆÁªÂò¤µ¤ì¤Þ¤¹¡£¥µ¡¼¥Ð¡¼¡¦¥Ç¥×¥í¥¤¥á¥ó¥È¤Ç¤Ï¡¢\fB\-XX:InitialHeapSize\fR¤ª¤è¤Ó\fB\-XX:MaxHeapSize\fR¤ÏÄÌ¾ïÆ±¤¸ÃͤËÀßÄꤵ¤ì¤Þ¤¹¡£http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html¤Î\fIJava SE HotSpot²¾ÁÛ¥Þ¥·¥ó¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¡¦¥Á¥å¡¼¥Ë¥ó¥°¡¦¥¬¥¤¥É\fR¤Î¥¨¥ë¥´¥Î¥ß¥¯¥¹¤Ë´Ø¤¹¤ë¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¡¼¤Îµö²Ä¤µ¤ì¤ëºÇÂ祵¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ80MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapSize=83886080\fR +\fB\-XX:MaxHeapSize=81920k\fR +\fB\-XX:MaxHeapSize=80m\fR + +.fi +.if n \{\ +.RE +.\} +Oracle Solaris 7¤ª¤è¤ÓOracle Solaris 8 SPARC¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¤Î¤³¤ÎÃͤξå¸Â¤Ï¡¢¤ª¤è¤½4,000MB¤«¤é¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤ÎÎ̤ò°ú¤¤¤¿¤â¤Î¤Ç¤¹¡£Oracle Solaris 2\&.6¤ª¤è¤Óx86¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¤Î¾å¸Â¤Ï¡¢¤ª¤è¤½2,000MB¤«¤é¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤ÎÎ̤ò°ú¤¤¤¿¤â¤Î¤Ç¤¹¡£Linux¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¤Î¾å¸Â¤Ï¡¢¤ª¤è¤½2,000MB¤«¤é¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤ÎÎ̤ò°ú¤¤¤¿¤â¤Î¤Ç¤¹¡£ +.sp +\fB\-XX:MaxHeapSize\fR¥ª¥×¥·¥ç¥ó¤Ï\fB\-Xmx\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-XX:MaxHeapFreeRatio=\fIpercent\fR +.RS 4 +GC¥¤¥Ù¥ó¥È¸å¤Î¶õ¤­¥Ò¡¼¥×Îΰè¤Îµö²Ä¤µ¤ì¤Æ¤¤¤ëºÇÂç¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¶õ¤­¥Ò¡¼¥×Îΰ褬¤³¤ÎÃͤòͤ¨¤Æ³ÈÂ礷¤¿¾ì¹ç¡¢¤½¤Î¥Ò¡¼¥×¤Ï½Ì¾®¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ÎÃͤÏ70%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¶õ¤­¥Ò¡¼¥×¤ÎºÇÂçÈæÎ¨¤ò75%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapFreeRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxMetaspaceSize=\fIsize\fR +.RS 4 +¥¯¥é¥¹¡¦¥á¥¿¥Ç¡¼¥¿¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤ë¥Í¥¤¥Æ¥£¥Ö¡¦¥á¥â¥ê¡¼¤ÎºÇÂçÎ̤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥µ¥¤¥º¤ÏÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥á¥¿¥Ç¡¼¥¿¤ÎÎ̤ϡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼«ÂΡ¢Â¾¤Î¼Â¹ÔÃæ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¢¤ª¤è¤Ó¥·¥¹¥Æ¥à¤Ç»ÈÍѲÄǽ¤Ê¥á¥â¥ê¡¼¤ÎÎ̤ˤè¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¯¥é¥¹¡¦¥á¥¿¥Ç¡¼¥¿¤ÎºÇÂ祵¥¤¥º¤ò256MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxMetaspaceSize=256m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNewSize=\fIsize\fR +.RS 4 +¼ã¤¤À¤Âå(¥Ê¡¼¥µ¥ê)¤Î¥Ò¡¼¥×¤ÎºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϿʹֹ©³ØÅª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:MaxTenuringThreshold=\fIthreshold\fR +.RS 4 +Ŭ±þGC¥µ¥¤¥º»ØÄê¤Ç»ÈÍѤ¹¤ëºÇÂçÅÂÆ²Æþ¤ê¤·¤­¤¤ÃͤòÀßÄꤷ¤Þ¤¹¡£ºÇÂçÃͤÏ15¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¥Ñ¥é¥ì¥ë(¥¹¥ë¡¼¥×¥Ã¥È)¥³¥ì¥¯¥¿¤Î¾ì¹ç¤Ï15¡¢CMS¥³¥ì¥¯¥¿¤Î¾ì¹ç¤Ï6¤Ç¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢ºÇÂçÅÂÆ²Æþ¤ê¤·¤­¤¤Ãͤò10¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTenuringThreshold=10\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MetaspaceSize=\fIsize\fR +.RS 4 +ºÇ½é¤Ëͤ¨¤¿¤È¤­¤Ë¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤ò¥È¥ê¥¬¡¼¤¹¤ë¡¢³ä¤êÅö¤Æ¤é¤ì¤¿¥¯¥é¥¹¡¦¥á¥¿¥Ç¡¼¥¿Îΰè¤Î¥µ¥¤¥º¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Î¤·¤­¤¤Ãͤϡ¢»ÈÍѤµ¤ì¤ë¥á¥¿¥Ç¡¼¥¿¤ÎÎ̤ˤè¤Ã¤ÆÁý²Ã¤Þ¤¿¤Ï¸º¾¯¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥µ¥¤¥º¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:MinHeapFreeRatio=\fIpercent\fR +.RS 4 +GC¥¤¥Ù¥ó¥È¸å¤Î¶õ¤­¥Ò¡¼¥×Îΰè¤Îµö²Ä¤µ¤ì¤Æ¤¤¤ëºÇ¾®¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¶õ¤­¥Ò¡¼¥×Îΰ褬¤³¤ÎÃͤò²¼²ó¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥Ò¡¼¥×¤Ï³ÈÂ礷¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ÎÃͤÏ40%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¶õ¤­¥Ò¡¼¥×¤ÎºÇ¾®ÈæÎ¨¤ò25%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MinHeapFreeRatio=25\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewRatio=\fIratio\fR +.RS 4 +¼ã¤¤À¤Âå¤Î¥µ¥¤¥º¤È¸Å¤¤À¤Âå¤Î¥µ¥¤¥º¤È¤ÎÈæÎ¨¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï2¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢¼ã¤¤/¸Å¤¤¤ÎÈæÎ¨¤ò1¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewRatio=1\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewSize=\fIsize\fR +.RS 4 +¼ã¤¤À¤Âå(¥Ê¡¼¥µ¥ê)¤Î¥Ò¡¼¥×¤Î½é´ü¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£ +.sp +¥Ò¡¼¥×¤Î¼ã¤¤À¤Âå¥ê¡¼¥¸¥ç¥ó¤Ï¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£GC¤Ï¡¢Â¾¤Î¥ê¡¼¥¸¥ç¥ó¤è¤ê¤³¤Î¥ê¡¼¥¸¥ç¥ó¤Ç¡¢¤è¤êÉÑÈˤ˼¹Ԥµ¤ì¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥µ¥¤¥º¤¬¾®¤µ¤¹¤®¤ë¾ì¹ç¡¢Â¿¿ô¤Î¥Þ¥¤¥Ê¡¼GC¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤¬Â礭¤¹¤®¤ë¾ì¹ç¡¢¥Õ¥ëGC¤Î¤ß¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¤¬¡¢´°Î»¤Þ¤Ç¤Ë»þ´Ö¤¬¤«¤«¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¼ã¤¤À¤Âå¤Î¥µ¥¤¥º¤Ï¡¢Á´ÂΤΥҡ¼¥×¡¦¥µ¥¤¥º¤ÎȾʬ¤«¤é4ʬ¤Î1¤Î´Ö¤Ë¤·¤Æ¤ª¤¯¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¼ã¤¤À¤Âå¤Î½é´ü¥µ¥¤¥º¤òÍÍ¡¹¤Êñ°Ì¤ò»ÈÍѤ·¤Æ256MB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewSize=256m\fR +\fB\-XX:NewSize=262144k\fR +\fB\-XX:NewSize=268435456\fR + +.fi +.if n \{\ +.RE +.\} +\fB\-XX:NewSize\fR¥ª¥×¥·¥ç¥ó¤Ï\fB\-Xmn\fR¤ÈƱÅù¤Ç¤¹¡£ +.RE +.PP +\-XX:ParallelGCThreads=\fIthreads\fR +.RS 4 +¼ã¤¤À¤Âå¤È¸Å¤¤À¤Âå¤Ç¥Ñ¥é¥ì¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Ë»ÈÍѤ¹¤ë¥¹¥ì¥Ã¥É¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢JVM¤Ë»ÈÍѤǤ­¤ëCPU¤Î¿ô¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ +.sp +¤¿¤È¤¨¤Ð¡¢¥Ñ¥é¥ì¥ëGC¤Î¥¹¥ì¥Ã¥É¿ô¤ò2¤ËÀßÄꤹ¤ë¤Ë¤Ï¡¢¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ParallelGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+ParallelRefProcEnabled +.RS 4 +¥Ñ¥é¥ì¥ë»²¾È½èÍý¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintAdaptiveSizePolicy +.RS 4 +Ŭ±þÀ¤Â奵¥¤¥º»ØÄê¤Ë´Ø¤¹¤ë¾ðÊó¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGC +.RS 4 +GC¤´¤È¤Î¥á¥Ã¥»¡¼¥¸¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCApplicationConcurrentTime +.RS 4 +ºÇ¸å¤ÎµÙ»ß(¤¿¤È¤¨¤ÐGCµÙ»ß¤Ê¤É)°Ê¹ß¤Ë·Ð²á¤·¤¿»þ´Ö¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCApplicationStoppedTime +.RS 4 +µÙ»ß(¤¿¤È¤¨¤ÐGCµÙ»ß¤Ê¤É)¤¬·Ñ³¤·¤¿»þ´Ö¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCDateStamps +.RS 4 +GC¤´¤È¤ÎÆüÉÕ¥¹¥¿¥ó¥×¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCDetails +.RS 4 +GC¤´¤È¤Î¾ÜºÙ¥á¥Ã¥»¡¼¥¸¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCTaskTimeStamps +.RS 4 +¸Ä¡¹¤ÎGC¥ï¡¼¥«¡¼¡¦¥¹¥ì¥Ã¥É¡¦¥¿¥¹¥¯¤´¤È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintGCTimeStamps +.RS 4 +GC¤´¤È¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+PrintStringDeduplicationStatistics +.RS 4 +¾ÜºÙ¤Ê½ÅÊ£½ü³°Åý·×¤ò°õºþ¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£\fB\-XX:+UseStringDeduplication\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+PrintTenuringDistribution +.RS 4 +ÅÂÆ²Æþ¤ê´ü´Ö¾ðÊó¤Î½ÐÎϤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¼¡¤Ë¡¢½ÐÎϤÎÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBDesired survivor size 48286924 bytes, new threshold 10 (max 10)\fR +\fB\- age 1: 28992024 bytes, 28992024 total\fR +\fB\- age 2: 1366864 bytes, 30358888 total\fR +\fB\- age 3: 1425912 bytes, 31784800 total\fR +\fB\&.\&.\&.\fR + +.fi +.if n \{\ +.RE +.\} +´ü´Ö1¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ºÇ¤â¼ã¤¤¥µ¥Ð¥¤¥Ð¤Ç¤¹(Á°¤Î¥¹¥«¥Ù¥ó¥¸¤Î¸å¤ËºîÀ®¤µ¤ì¡¢ºÇ¿·¤Î¥¹¥«¥Ù¥ó¥¸¤Ç¸³¤·¡¢EdenÎΰ褫¤é¥µ¥Ð¥¤¥ÐÎΰè¤Ë°Üư¤·¤Þ¤·¤¿)¡£´ü´Ö2¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢2¤Ä¤Î¥¹¥«¥Ù¥ó¥¸¤Ç¸³¤·¤Þ¤¹(2ÈÖÌܤΥ¹¥«¥Ù¥ó¥¸Ãæ¤Ë¡¢¤¢¤ë¥µ¥Ð¥¤¥ÐÎΰ褫¤é¼¡¤ÎÎΰè¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤·¤¿)¡£¤³¤Î¤è¤¦¤Ë³¤­¤Þ¤¹¡£ +.sp +Á°½Ò¤ÎÎã¤Ç¤Ï¡¢28,992,024¥Ð¥¤¥È¤¬1¤Ä¤Î¥¹¥«¥Ù¥ó¥¸¤Ç¸³¤·¡¢EdenÎΰ褫¤é¥µ¥Ð¥¤¥ÐÎΰè¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤·¤¿¡£1,366,864¥Ð¥¤¥È¤Ï´ü´Ö2¥ª¥Ö¥¸¥§¥¯¥È¤Ê¤É¤Ë¤è¤êÀêÍ­¤µ¤ì¤Æ¤¤¤Þ¤¹¡£³Æ¹Ô¤Î3ÈÖÌܤÎÃͤϡ¢´ü´Ön°Ê²¼¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÎßÀÑ¥µ¥¤¥º¤Ç¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£ +.RE +.PP +\-XX:+ScavengeBeforeFullGC +.RS 4 +¤½¤ì¤¾¤ì¤Î¥Õ¥ëGC¤ÎÁ°¤Ë¼ã¤¤À¤Âå¤ÎGC¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥Õ¥ëGC¤ÎÁ°¤Ë¼ã¤¤À¤Âå¤Î¥¹¥«¥Ù¥ó¥¸¤ò¹Ô¤¦¤È¡¢¸Å¤¤À¤ÂåÎΰ褫¤é¼ã¤¤À¤ÂåÎÎ°è¤Ø¤Î¥¢¥¯¥»¥¹¤¬²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¿ô¤ò¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤ë¤¿¤á¡¢¤³¤ì¤ò̵¸ú¤Ë\fI¤·¤Ê¤¤\fR¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£³Æ¥Õ¥ëGC¤ÎÁ°¤Ë¼ã¤¤À¤Âå¤ÎGC¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-ScavengeBeforeFullGC\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:SoftRefLRUPolicyMSPerMB=\fItime\fR +.RS 4 +¥½¥Õ¥È¡¦¥¢¥¯¥»¥¹¤¬²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬ºÇ¸å¤Ë»²¾È¤µ¤ì¤Æ¤«¤é¥Ò¡¼¥×¾å¤Ç¥¢¥¯¥Æ¥£¥Ö¤Ê¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤ë»þ´Ö(¥ß¥êÉÃñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¥Ò¡¼¥×Æâ¤Î¶õ¤­¥á¥¬¥Ð¥¤¥ÈÅö¤¿¤ê¤Ç1Éäθ³´ü´Ö¤Ç¤¹¡£\fB\-XX:SoftRefLRUPolicyMSPerMB\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢¸½ºß¤Î¥Ò¡¼¥×¡¦¥µ¥¤¥º(Java HotSpot Client VMÍÑ)¤Þ¤¿¤ÏºÇÂç²Äǽ¥Ò¡¼¥×¡¦¥µ¥¤¥º(Java HotSpot Server VMÍÑ)¤Î1¥á¥¬¥Ð¥¤¥ÈÅö¤¿¤ê¤Î¥ß¥êÉäòɽ¤¹À°¿ôÃͤò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤Î°ã¤¤¤Ï¡¢Client VM¤Ï¡¢¥Ò¡¼¥×¤òÂ礭¤¯¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥½¥Õ¥È»²¾È¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë·¹¸þ¤¬¤¢¤ë¤Î¤ËÂФ·¡¢Server VM¤Ï¡¢¥½¥Õ¥È»²¾È¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥Ò¡¼¥×¤òÂ礭¤¯¤¹¤ë·¹¸þ¤¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¸å¼Ô¤Î¾ì¹ç¡¢\fB\-Xmx\fR¥ª¥×¥·¥ç¥ó¤ÎÃͤϡ¢¥½¥Õ¥È»²¾È¤¬¤É¤Î¤¯¤é¤¤¿×®¤Ë¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤µ¤ì¤ë¤«¤Ë½ÅÍפʱƶÁ¤òµÚ¤Ü¤·¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢Ãͤò2\&.5ÉäËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SoftRefLRUPolicyMSPerMB=2500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:StringDeduplicationAgeThreshold=\fIthreshold\fR +.RS 4 +»ØÄꤷ¤¿´ü´Ö¤ËÅþ㤷¤Ä¤Ä¤¢¤ë\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢½ÅÊ£½ü³°¤Î¸õÊä¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¥ª¥Ö¥¸¥§¥¯¥È¤Î´ü´Ö¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Ç¸³¤·¤¿²ó¿ô¤Î¬ÄêÃͤǤ¹¡£¤³¤ì¤Ï¡¢ÅÂÆ²Æþ¤ê¤È¸Æ¤Ð¤ì¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£\fB\-XX:+PrintTenuringDistribution\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î´ü´Ö¤ËÅþ㤹¤ëÁ°¤Ë¸Å¤¤¥Ò¡¼¥×¡¦¥ê¡¼¥¸¥ç¥ó¤Ë¾º³Ê¤µ¤ì¤¿\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¾ï¤Ë½ÅÊ£½ü³°¤Î¸õÊä¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏ\fB3\fR¤Ç¤¹¡£\fB\-XX:+UseStringDeduplication\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:SurvivorRatio=\fIratio\fR +.RS 4 +EdenÎΰè¤Î¥µ¥¤¥º¤È¥µ¥Ð¥¤¥ÐÎΰè¤Î¥µ¥¤¥º¤È¤ÎÈæÎ¨¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï8¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢Eden/¥µ¥Ð¥¤¥ÐÎΰè¤ÎÈæÎ¨¤ò4¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TargetSurvivorRatio=\fIpercent\fR +.RS 4 +¼ã¤¤¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Î¸å¤Ë»ÈÍѤµ¤ì¤ë¥µ¥Ð¥¤¥ÐÎΰè¤ÎÌÜŪ¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï50%¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Î¥µ¥Ð¥¤¥ÐÎΰè¤ÎÈæÎ¨¤ò30%¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TargetSurvivorRatio=30\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TLABSize=\fIsize\fR +.RS 4 +¥¹¥ì¥Ã¥É¡¦¥í¡¼¥«¥ë¤Ê³äÅö¤Æ¥Ð¥Ã¥Õ¥¡(TLAB)¤Î½é´ü¥µ¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBk\fR¤Þ¤¿¤Ï\fBK\fR¡¢¥á¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBm\fR¤Þ¤¿¤Ï\fBM\fR¡¢¥®¥¬¥Ð¥¤¥È¤ò¼¨¤¹¾ì¹ç¤Ïʸ»ú\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬0¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢JVM¤Ç¤Ï½é´ü¥µ¥¤¥º¤¬¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Þ¤¹¡£ +.sp +¼¡¤ÎÎã¤Ç¤Ï¡¢TLAB¤Î½é´ü¥µ¥¤¥º¤ò512KB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TLABSize=512k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+UseAdaptiveSizePolicy +.RS 4 +Ŭ±þÀ¤Â奵¥¤¥º»ØÄê¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Å¬±þÀ¤Â奵¥¤¥º»ØÄê¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseAdaptiveSizePolicy\fR¤ò»ØÄꤷ¡¢¥á¥â¥ê¡¼³äÅö¤Æ¥×¡¼¥ë¤Î¥µ¥¤¥º¤òÌÀ¼¨Åª¤ËÀßÄꤷ¤Þ¤¹(\fB\-XX:SurvivorRatio\fR¥ª¥×¥·¥ç¥ó¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤)¡£ +.RE +.PP +\-XX:+UseCMSInitiatingOccupancyOnly +.RS 4 +CMS¥³¥ì¥¯¥¿¤Î³«»Ï¤Î¤¿¤á¤ÎÍ£°ì¤Î´ð½à¤È¤·¤Æ¤ÎÀêÍ­ÃͤλÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢Â¾¤Î´ð½à¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseConcMarkSweepGC +.RS 4 +¸Å¤¤À¤Â夨¤ÎCMS¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÂÔµ¡»þ´Ö¤ÎÍ×·ï¤ò¡¢¥¹¥ë¡¼¥×¥Ã¥È(\fB\-XX:+UseParallelGC\fR)¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ë¤è¤Ã¤ÆËþ¤¿¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢CMS¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤ò»ÈÍѤ¹¤ë¤³¤È¤ò¤ªÁ¦¤á¤·¤Þ¤¹¡£G1¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿(\fB\-XX:+UseG1GC\fR)¤ÏÊ̤ÎÂåÂØ¤È¤Ê¤ê¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥³¥ì¥¯¥¿¤Ï¡¢¥Þ¥·¥ó¤Î¹½À®¤ª¤è¤ÓJVM¤Î¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ¡¢¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ê¾ì¹ç¡¢\fB\-XX:+UseParNewGC\fR¥ª¥×¥·¥ç¥ó¤Ï¼«Æ°Åª¤ËÀßÄꤵ¤ì¡¢Ìµ¸ú²½¤·¤Ê¤¤É¬Íפ¬¤¢¤ê¤Þ¤¹¤¬¡¢Íýͳ¤ÏJDK 8¤Ç¤Ï\fB\-XX:+UseConcMarkSweepGC \-XX:\-UseParNewGC\fR¥ª¥×¥·¥ç¥ó¤ÎÁȹ礻¤¬Èó¿ä¾©¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£ +.RE +.PP +\-XX:+UseG1GC +.RS 4 +¥¬¥Ù¡¼¥¸¥Õ¥¡¡¼¥¹¥È(G1)¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ï¥µ¡¼¥Ð¡¼·Á¼°¤Î¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Ç¡¢ÂçÎ̤ÎRAM¤ò»ý¤Ä¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¡¦¥Þ¥·¥ó¤òÂоݤȤ·¤Æ¤¤¤Þ¤¹¡£¹â¤¤³ÎΨ¤ÇGCµÙ»ß»þ´Ö¤ÎÌÜɸ¤òãÀ®¤·¡¢Æ±»þ¤ËŬÀڤʥ¹¥ë¡¼¥×¥Ã¥È¤â°Ý»ý¤·¤Þ¤¹¡£G1¥³¥ì¥¯¥¿¤Ï¡¢GCÂÔµ¡»þ´Ö¤Î¸ÂÄꤵ¤ì¤¿Í×·ï(°ÂÄꤷ¤¿Í½Â¬²Äǽ¤Ê0\&.5ÉÃ̤Ëþ¤ÎµÙ»ß»þ´Ö)¤ò»ý¤Ä¡¢Â礭¤¤¥Ò¡¼¥×(Ìó6GB°Ê¾å¤Î¥µ¥¤¥º)¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¿ä¾©¤µ¤ì¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥³¥ì¥¯¥¿¤Ï¡¢¥Þ¥·¥ó¤Î¹½À®¤ª¤è¤ÓJVM¤Î¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ¡¢¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseGCOverheadLimit +.RS 4 +\fBOutOfMemoryError\fRÎã³°¤¬¥¹¥í¡¼¤µ¤ì¤ë¤Þ¤Ç¤Ë¡¢GC¤ÇJVM¤Ë¤è¤Ã¤ÆÍפ·¤¿»þ´Ö¤Î³ä¹ç¤òÀ©¸Â¤¹¤ë¥Ý¥ê¥·¡¼¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤Ë¹ç·×»þ´Ö¤Î98%¤è¤ê¿¤¯Èñ¤ä¤µ¤ì¡¢¥Ò¡¼¥×¤Î¥ê¥«¥Ð¥ê¤¬2%̤Ëþ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ñ¥é¥ì¥ëGC¤Ë¤è¤Ã¤Æ\fBOutOfMemoryError\fR¤¬¥¹¥í¡¼¤µ¤ì¤Þ¤¹¡£¥Ò¡¼¥×¤¬¾®¤µ¤¤¾ì¹ç¡¢¤³¤Îµ¡Ç½¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ä¹´ü´Ö¤Û¤È¤ó¤É¤Þ¤¿¤Ï¤Þ¤Ã¤¿¤¯¿ÊĽ¤Ê¤¯¼Â¹Ô¤·¤Æ¤¤¤ë¾õÂÖ¤ò²óÈò¤¹¤ë¤¿¤á¤Ë»ÈÍѤǤ­¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseGCOverheadLimit\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseNUMA +.RS 4 +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Çû¤¤ÂÔµ¡»þ´Ö¤Î¥á¥â¥ê¡¼¤Î»ÈÍѤòÁý²Ã¤µ¤»¤ë¤³¤È¤Ç¡¢ÉԶѰì¤Ê¥á¥â¥ê¡¼¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã(NUMA)¤ò»ÈÍѤ·¤¿¥Þ¥·¥ó¾å¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ºÇŬ²½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢NUMA¤ËÂФ¹¤ëºÇŬ²½¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ñ¥é¥ì¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿(\fB\-XX:+UseParallelGC\fR)¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß»ÈÍѲÄǽ¤Ç¤¹¡£ +.RE +.PP +\-XX:+UseParallelGC +.RS 4 +Ê£¿ô¤Î¥×¥í¥»¥Ã¥µ¤òÍøÍѤ·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤ë¡¢¥Ñ¥é¥ì¥ë¡¦¥¹¥«¥Ù¥ó¥¸¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿(¥¹¥ë¡¼¥×¥Ã¥È¡¦¥³¥ì¥¯¥¿¤È¤â¸Æ¤Ð¤ì¤ë)¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥³¥ì¥¯¥¿¤Ï¡¢¥Þ¥·¥ó¤Î¹½À®¤ª¤è¤ÓJVM¤Î¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ¡¢¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Þ¤¹¡£¤³¤ì¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢ÌÀ¼¨Åª¤Ë̵¸ú¤Ë¤·¤Ê¤¤¤«¤®¤ê¡¢\fB\-XX:+UseParallelOldGC\fR¥ª¥×¥·¥ç¥ó¤¬¼«Æ°Åª¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseParallelOldGC +.RS 4 +¥Õ¥ëGC¤Ø¤Î¥Ñ¥é¥ì¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢\fB\-XX:+UseParallelGC\fR¥ª¥×¥·¥ç¥ó¤¬¼«Æ°Åª¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseParNewGC +.RS 4 +¼ã¤¤À¤Âå¤Ç¤Î¥³¥ì¥¯¥·¥ç¥ó¤Ø¤Î¥Ñ¥é¥ì¥ë¡¦¥¹¥ì¥Ã¥É¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£\fB\-XX:+UseConcMarkSweepGC\fR¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È¡¢¤³¤ì¤Ï¼«Æ°Åª¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£JDK 8¤Ç¤Ï¡¢\fB\-XX:+UseConcMarkSweepGC\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤻ¤º¤Ë\fB\-XX:+UseParNewGC\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤³¤È¤ÏÈó¿ä¾©¤Ç¤¹¡£ +.RE +.PP +\-XX:+UseSerialGC +.RS 4 +¥·¥ê¥¢¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤«¤éÆÃÊ̤ʵ¡Ç½¤òɬÍפȤ·¤Ê¤¤¡¢¾®µ¬ÌϤÇñ½ã¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤Ï°ìÈ̤˺ÇŬ¤ÊÁªÂò¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¥³¥ì¥¯¥¿¤Ï¡¢¥Þ¥·¥ó¤Î¹½À®¤ª¤è¤ÓJVM¤Î¥¿¥¤¥×¤Ë´ð¤Å¤¤¤Æ¡¢¼«Æ°Åª¤ËÁªÂò¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseSHM +.RS 4 +Linux¤Ç¤Ï¡¢JVM¤Ç¶¦Í­¥á¥â¥ê¡¼¤ò»ÈÍѤ·¤Æ¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤òÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +¾ÜºÙ¤Ï¡¢"¥é¡¼¥¸¡¦¥Ú¡¼¥¸"¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-XX:+UseStringDeduplication +.RS 4 +ʸ»úÎó¤Î½ÅÊ£½ü³°¤òÍ­¸ú²½¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï̵¸ú¤Ç¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¥¬¥Ù¡¼¥¸¥Õ¥¡¡¼¥¹¥È(G1)¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥¿¤òÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£\fB\-XX:+UseG1GC\fR¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¿¤¯¤Î\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤¬Æ±¤¸¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤«¤é¡¢\fIString deduplication\fR¤Ë¤è¤ê¡¢Java¥Ò¡¼¥×¾å¤Î\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤Î¥á¥â¥ê¡¼¡¦¥Õ¥Ã¥È¥×¥ê¥ó¥È¤¬ºï¸º¤µ¤ì¤Þ¤¹¡£³Æ\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤¬ÆÈ¼«¤Îʸ»úÇÛÎó¤ò¥Ý¥¤¥ó¥È¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Æ±°ì¤Î\fBString\fR¥ª¥Ö¥¸¥§¥¯¥È¤ÏƱ¤¸Ê¸»úÇÛÎó¤ò¥Ý¥¤¥ó¥È¤·¶¦Í­¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-XX:+UseTLAB +.RS 4 +¼ã¤¤À¤Âå¤ÎÎΰè¤Ç¤Î¥¹¥ì¥Ã¥É¡¦¥í¡¼¥«¥ë¤Ê³äÅö¤Æ¥Ö¥í¥Ã¥¯(TLAB)¤Î»ÈÍѤòÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£TLAB¤Î»ÈÍѤò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢\fB\-XX:\-UseTLAB\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.SS "Èó¿ä¾©¤Çºï½ü¤µ¤ì¤¿¥ª¥×¥·¥ç¥ó" +.PP +¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤·¤¿¤¬¡¢°Ê¹ß¤ÏÉÔÍפȤߤʤµ¤ì¤Æ¤¤¤Þ¤¹¡£ +.PP +\-Xincgc +.RS 4 +¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¡¦¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤Ç¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-Xrun\fIlibname\fR +.RS 4 +»ØÄꤷ¤¿¥Ç¥Ð¥Ã¥°/¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Î¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢\fB\-agentlib\fR¥ª¥×¥·¥ç¥ó¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Þ¤·¤¿¡£ +.RE +.PP +\-XX:CMSIncrementalDutyCycle=\fIpercent\fR +.RS 4 +ʹԥ³¥ì¥¯¥¿¤Î¼Â¹Ô¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Þ¥¤¥Ê¡¼¡¦¥³¥ì¥¯¥·¥ç¥ó´Ö¤Î»þ´Ö¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£\fB\-XX:+CMSIncrementalMode\fR¥ª¥×¥·¥ç¥ó¤ÎÈó¿ä¾©¤ò¼õ¤±¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:CMSIncrementalDutyCycleMin=\fIpercent\fR +.RS 4 +\fB\-XX:+CMSIncrementalPacing\fR¤¬Í­¸ú¤Ê¾ì¹ç¤Ë¥Ç¥å¡¼¥Æ¥£¡¦¥µ¥¤¥¯¥ë¤Î²¼¸Â¤Ç¤¢¤ë¥Þ¥¤¥Ê¡¼¡¦¥³¥ì¥¯¥·¥ç¥ó´Ö¤Î»þ´Ö¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£\fB\-XX:+CMSIncrementalMode\fR¥ª¥×¥·¥ç¥ó¤ÎÈó¿ä¾©¤ò¼õ¤±¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+CMSIncrementalMode +.RS 4 +CMS¥³¥ì¥¯¥¿¤ÎÁýʬ¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£\fBCMSIncremental\fR¤Ç»Ï¤Þ¤ë¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó +.RE +.PP +\-XX:CMSIncrementalOffset=\fIpercent\fR +.RS 4 +Áýʬ¥â¡¼¥É¤Î¥Ç¥å¡¼¥Æ¥£¡¦¥µ¥¤¥¯¥ë¤ò¥Þ¥¤¥Ê¡¼¡¦¥³¥ì¥¯¥·¥ç¥ó´Ö¤Ç´ü´ÖÆâ¤Ë±¦¤Ë°Üư¤¹¤ë»þ´Ö¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£\fB\-XX:+CMSIncrementalMode\fR¥ª¥×¥·¥ç¥ó¤ÎÈó¿ä¾©¤ò¼õ¤±¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+CMSIncrementalPacing +.RS 4 +JVM¤Î¼Â¹ÔÃæ¤Ë¼ý½¸¤µ¤ì¤¿Åý·×¤Ë´ð¤Å¤¤¤Æ¡¢Áýʬ¥â¡¼¥É¤Î¥Ç¥å¡¼¥Æ¥£¡¦¥µ¥¤¥¯¥ë¤Î¼«Æ°Ä´À°¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£\fB\-XX:+CMSIncrementalMode\fR¥ª¥×¥·¥ç¥ó¤ÎÈó¿ä¾©¤ò¼õ¤±¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:CMSIncrementalSafetyFactor=\fIpercent\fR +.RS 4 +¥Ç¥å¡¼¥Æ¥£¡¦¥µ¥¤¥¯¥ë¤ò·×»»¤¹¤ëºÝ¤Ë¡¢Êݼé¤òÄɲ乤뤿¤á¤Ë»ÈÍѤµ¤ì¤ë»þ´Ö¤Î³ä¹ç(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£\fB\-XX:+CMSIncrementalMode\fR¥ª¥×¥·¥ç¥ó¤ÎÈó¿ä¾©¤ò¼õ¤±¤Æ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤È¤Ê¤ê¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:CMSInitiatingPermOccupancyFraction=\fIpercent\fR +.RS 4 +GC¤ò³«»Ï¤¹¤ë±Êµ×À¤ÂåÀêͭΨ(0¤«¤é100¤Þ¤Ç)¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤Ç¤ÏÈó¿ä¾©¤Ç¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:MaxPermSize=\fIsize\fR +.RS 4 +±Êµ×À¤ÂåÎΰè¤ÎºÇÂ祵¥¤¥º(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢JDK 8¤ÇÈó¿ä¾©¤Ë¤Ê¤ê¡¢\fB\-XX:MaxMetaspaceSize\fR¥ª¥×¥·¥ç¥ó¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Þ¤·¤¿¡£ +.RE +.PP +\-XX:PermSize=\fIsize\fR +.RS 4 +ͤ¨¤¿¾ì¹ç¤Ë¤Ï¥¬¥Ù¡¼¥¸¡¦¥³¥ì¥¯¥·¥ç¥ó¤ò¥È¥ê¥¬¡¼¤¹¤ë¡¢±Êµ×À¤Âå¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè(¥Ð¥¤¥Èñ°Ì)¤òÀßÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢JDK 8¤ÇÈó¿ä¾©¤Ë¤Ê¤ê¡¢\fB\-XX:MetaspaceSize\fR¥ª¥×¥·¥ç¥ó¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Þ¤·¤¿¡£ +.RE +.PP +\-XX:+UseSplitVerifier +.RS 4 +¸¡¾Ú¥×¥í¥»¥¹¤Îʬ³ä¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¸¡¾Ú¤Ï¡¢¥¿¥¤¥×»²¾È(¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¼Â¹Ô)¤È¡¢¥¿¥¤¥×¡¦¥Á¥§¥Ã¥¯(JVM¥é¥ó¥¿¥¤¥à¤Ë¤è¤Ã¤Æ¼Â¹Ô)¤Î2¤Ä¤Î¥Õ¥§¡¼¥º¤Ëʬ³ä¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤ÇÈó¿ä¾©¤È¤Ê¤ê¡¢¸¡¾Ú¤Ï¥Ç¥Õ¥©¥ë¥È¤Çʬ³ä¤µ¤ì¡¢Ìµ¸ú¤Ë¤¹¤ëÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.PP +\-XX:+UseStringCache +.RS 4 +°ìÈ̤˳ä¤êÅö¤Æ¤é¤ì¤¿Ê¸»úÎó¤Î¥­¥ã¥Ã¥·¥ó¥°¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏJDK 8¤«¤éºï½ü¤µ¤ì¡¢¤½¤ì¤ËÂå¤ï¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.RE +.SH "¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¡¦¥Á¥å¡¼¥Ë¥ó¥°¤ÎÎã" +.PP +¼¡¤ÎÎã¤Ç¤Ï¡¢¥¹¥ë¡¼¥×¥Ã¥È¤ÎºÇŬ²½¤Þ¤¿¤Ï¥ì¥¹¥Ý¥ó¥¹»þ´Ö¤Îû½Ì²½¤Î¤¤¤º¤ì¤«¤ò¹Ô¤¦¤¿¤á¤Î¡¢»î¸³Åª¤Ê¥Á¥å¡¼¥Ë¥ó¥°¡¦¥Õ¥é¥°¤Î»ÈÍÑÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.PP +\fBÎã 1 \fR¥¹¥ë¡¼¥×¥Ã¥È¤ò¸þ¾å¤¹¤ë¤¿¤á¤Î¥Á¥å¡¼¥Ë¥ó¥° +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-server \-XX:+AggressiveOpts \-XX:+UseLargePages \-Xmn10g \-Xms26g \-Xmx26g\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBÎã 2 \fR¥ì¥¹¥Ý¥ó¥¹»þ´Ö¤ò®¤¯¤¹¤ë¤¿¤á¤Î¥Á¥å¡¼¥Ë¥ó¥° +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-XX:+UseG1GC \-Xms26g Xmx26g \-XX:MaxGCPauseMillis=500 \-XX:+PrintGCTimeStamp\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "¥é¡¼¥¸¡¦¥Ú¡¼¥¸" +.PP +¥Ò¥å¡¼¥¸¡¦¥Ú¡¼¥¸¤È¤â¸Æ¤Ð¤ì¤ë¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Ï¡¢É¸½à¤Î¥á¥â¥ê¡¼¡¦¥Ú¡¼¥¸¡¦¥µ¥¤¥º(¥×¥í¥»¥Ã¥µ¤ª¤è¤Ó¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹)¤è¤ê¤Ï¤ë¤«¤ËÂ礭¤¤¥á¥â¥ê¡¼¡¦¥Ú¡¼¥¸¤Ç¤¹¡£¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Ï¡¢¥×¥í¥»¥Ã¥µ¤ÎTranslation\-Lookaside Buffer¤òºÇŬ²½¤·¤Þ¤¹¡£ +.PP +Translation\-Lookaside Buffer (TLB)¤Ï¡¢ºÇ¶á»ÈÍѤµ¤ì¤¿²¾ÁÛ¤«¤éʪÍý¤Ø¤Î¥¢¥É¥ì¥¹ÊÑ´¹¤òÊÝ»ý¤¹¤ë¥Ú¡¼¥¸ÊÑ´¹¥­¥ã¥Ã¥·¥å¤Ç¤¹¡£TLB¤Ï¡¢¾¯¤Ê¤¤¥·¥¹¥Æ¥à¡¦¥ê¥½¡¼¥¹¤Ç¤¹¡£¥×¥í¥»¥Ã¥µ¤¬Ê£¿ô¤Î¥á¥â¥ê¡¼¡¦¥¢¥¯¥»¥¹¤¬É¬Íפʾì¹ç¤Î¤¢¤ë³¬ÁØ¥Ú¡¼¥¸É½¤«¤éÆÉ¤ß¼è¤ëɬÍפ¬¤¢¤ë¤¿¤á¡¢TLB¥ß¥¹¤ÏÉé²Ù¤¬¤«¤«¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£Â礭¤¤¥á¥â¥ê¡¼¡¦¥Ú¡¼¥¸¡¦¥µ¥¤¥º¤ò»ÈÍѤ·¤Æ¡¢Ã±°ì¤ÎTLB¥¨¥ó¥È¥ê¤ÇÂ礭¤¤¥á¥â¥ê¡¼ÈϰϤòɽ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£TLBÉÔ­¤¬¾¯¤Ê¤¯¤Ê¤ê¡¢¥á¥â¥ê¡¼½¸Ì󷿤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ +.PP +¤¿¤À¤·¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ë°­±Æ¶Á¤òÍ¿¤¨¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢ÂçÎ̤Υá¥â¥ê¡¼¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç³ÎÊݤµ¤ì¤ë¾ì¹ç¡¢Ä̾ï¥á¥â¥ê¡¼ÉÔ­¤ä¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î²á¾ê¤Ê¥Ú¡¼¥¸¥ó¥°¤¬È¯À¸¤·¡¢¥·¥¹¥Æ¥àÁ´ÂΤ¬ÃÙ¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Ä¹»þ´Ö²ÔƯ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ï¡¢²á¾ê¤ÊÃÇÊÒ²½¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢½½Ê¬¤ÊÂ礭¤µ¤Î¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼¤òͽÌó¤Ç¤­¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤¬È¯À¸¤·¤¿¾ì¹ç¡¢OS¤Þ¤¿¤ÏJVM¤Î¤¤¤º¤ì¤«¤¬Ä̾ï¤Î¥Ú¡¼¥¸¤Î»ÈÍѤËÌá¤ê¤Þ¤¹¡£ +.SS "¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥µ¥Ý¡¼¥È" +.PP +Solaris¤ª¤è¤ÓLinux¤Ï¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBSolaris\fR +.RS 4 +.PP +Solaris 9°Ê¾å¤Ë¤Ï¡¢Multiple Page Size Support(MPSS)¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£Äɲäι½À®¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£http://www\&.oracle\&.com/technetwork/server\-storage/solaris10/overview/solaris9\-features\-scalability\-135663\&.html¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBLinux\fR +.RS 4 +.PP +2\&.6¥«¡¼¥Í¥ë¤Ï¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£°ìÉô¤Î¥Ù¥ó¥À¡¼¤Ï¡¢2\&.4¥Ù¡¼¥¹¤Î¥ê¥ê¡¼¥¹¤Î¥³¡¼¥É¤ò¥Ð¥Ã¥¯¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£¥·¥¹¥Æ¥à¤¬¥é¡¼¥¸¡¦¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¢¼¡¤ò»î¹Ô¤·¤Æ¤¯¤À¤µ¤¤: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# cat /proc/meminfo | grep Huge\fR +\fBHugePages_Total: 0\fR +\fBHugePages_Free: 0\fR +\fBHugepagesize: 2048 kB\fR + +.fi +.if n \{\ +.RE +.\} +.PP +½ÐÎϤË3¤Ä¤Î"Huge"ÊÑ¿ô¤¬¼¨¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¥é¡¼¥¸¡¦¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¹½À®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥É¤¬²¿¤â½ÐÎϤ·¤Ê¤¤¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£¥é¡¼¥¸¡¦¥Ú¡¼¥¸¡¦¥á¥â¥ê¡¼¤ò»ÈÍѤ¹¤ë¥·¥¹¥Æ¥à¤ò¹½À®¤¹¤ë¤Ë¤Ï¡¢\fBroot\fR¤È¤·¤Æ¥í¥°¥¤¥ó¤·¤Æ¡¢¼¡¤Î¼ê½ç¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +¥ª¥×¥·¥ç¥ó\fB\-XX:+UseSHM\fR(\fB\-XX:+UseHugeTLBFS\fR¤Î¤«¤ï¤ê)¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢\fBSHMMAX\fRÃͤòÁý¤ä¤·¤Æ¤¯¤À¤µ¤¤¡£Java¥Ò¡¼¥×¡¦¥µ¥¤¥º¤è¤êÂ礭¤¯¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£4GB°Ê²¼¤ÎʪÍýRAM¤ò»ÈÍѤ·¤¿¥·¥¹¥Æ¥à¤Ç¡¢¼¡¤Ë¤è¤ê¤¹¤Ù¤Æ¤Î¥á¥â¥ê¡¼¤¬¶¦Í­²Äǽ¤Ë¤Ê¤ê¤Þ¤¹: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 4294967295 > /proc/sys/kernel/shmmax\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +¥ª¥×¥·¥ç¥ó\fB\-XX:+UseSHM\fR¤Þ¤¿¤Ï\fB\-XX:+UseHugeTLBFS\fR¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¿ô¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¼¡¤ÎÎã¤Ç¤Ï¡¢4GB¥·¥¹¥Æ¥à¤Î3GB¤¬¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ËͽÌ󤵤ì¤Þ¤¹(2048KB¤Î¥é¡¼¥¸¡¦¥Ú¡¼¥¸¡¦¥µ¥¤¥º¤ò²¾Äꤹ¤ë¾ì¹ç¡¢3GB = 3 * 1024MB = 3072MB = 3072 * 1024KB = 3145728KB and 3145728KB / 2048KB = 1536): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 1536 > /proc/sys/vm/nr_hugepages\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBÃíµ­\fR +.ps -1 +.br +.TS +allbox tab(:); +l. +T{ +Ãí°Õ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤·¤¿¸å¤Ë\fB/proc\fR¤Ë´Þ¤Þ¤ì¤ëÃͤ¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤Î¤¿¤á¡¢½é´ü²½¥¹¥¯¥ê¥×¥È(\fBrc\&.local\fR¤ä\fBsysctl\&.conf\fR¤Ê¤É)¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS¥«¡¼¥Í¥ë¡¦¥Ñ¥é¥á¡¼¥¿\fB/proc/sys/kernel/shmmax\fR¤Þ¤¿¤Ï\fB/proc/sys/vm/nr_hugepages\fR¤ò¹½À®(¤Þ¤¿¤Ï¥µ¥¤¥ºÊѹ¹)¤¹¤ë¾ì¹ç¡¢Java¥×¥í¥»¥¹¤¬Java¥Ò¡¼¥×°Ê³°¤ÎÎΰè¤ËÂФ·¤Æ¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¼ê½ç¤ò»ÈÍѤ·¤Æ¡¢¼¡¤ÎÎΰè¤ËÂФ·¤Æ¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Java¥Ò¡¼¥× +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +PermanentÀ¤Âå +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥å +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥Ñ¥é¥ì¥ëGC¤Î¥Þ¡¼¥­¥ó¥°¡¦¥Ó¥Ã¥È¥Þ¥Ã¥×¡¦¥Ç¡¼¥¿¹½Â¤ +.RE +.sp +¤½¤Î·ë²Ì¡¢Java¥Ò¡¼¥×¤Î¥µ¥¤¥º¤Ë\fBnr_hugepages\fR¥Ñ¥é¥á¡¼¥¿¤ò¹½À®¤¹¤ë¤È¡¢Îΰè¤Î¥µ¥¤¥º¤¬Èó¾ï¤ËÂ礭¤¤¤¿¤á¤ËJVM¤¬PermanentÀ¤Â太¤è¤Ó¥é¡¼¥¸¡¦¥Ú¡¼¥¸¤Î¥³¡¼¥É¡¦¥­¥ã¥Ã¥·¥åÎΰè¤Î³äÅö¤Æ¤Ë¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +T} +.TE +.sp 1 +.sp .5v +.RE +.RE +.SH "½ªÎ»¥¹¥Æ¡¼¥¿¥¹" +.PP +Ä̾¼¡¤Î½ªÎ»Ãͤ¬µ¯Æ°¥Ä¡¼¥ë¤«¤éÊÖ¤µ¤ì¤ë¤Î¤Ï¡¢µ¯Æ°¸µ¤¬ÉÔÀµ¤Ê°ú¿ô¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿¤«¡¢¿¼¹ï¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤«¡¢¤¢¤ë¤¤¤ÏJVM¤Ë¤è¤êÎã³°¤¬¥¹¥í¡¼¤µ¤ì¤¿¾ì¹ç¤Ç¤¹¡£¤¿¤À¤·¡¢Java¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢API¸Æ½Ð¤·\fBSystem\&.exit(exitValue)\fR¤ò»ÈÍѤ·¤ÆÇ¤°Õ¤ÎÃͤòÊÖ¤¹¤³¤È¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£Ãͤϼ¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB0\fR: Àµ¾ï½ªÎ» +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB>0\fR: ¥¨¥é¡¼È¯À¸ +.RE +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +javac(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jdb(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jstat(1) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/jjs.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/jjs.1 new file mode 100755 index 0000000..eb3054c --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/jjs.1 @@ -0,0 +1,434 @@ +'\" t +.\" Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: jjs +.\" Language: Japanese +.\" Date: 2015ǯ3·î3Æü +.\" SectDesc: ´ðËܥġ¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "jjs" "1" "2015ǯ3·î3Æü" "JDK 8" "´ðËܥġ¼¥ë" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +jjs \- Nashorn¥¨¥ó¥¸¥ó¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\fBjjs\fR\fR\fB [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIscript\-files\fR\fR\fB] [\-\- \fR\fB\fIarguments\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +¶õÇòʸ»ú¤Ç¶èÀÚ¤é¤ì¤¿¡¢\fBjjs\fR¥³¥Þ¥ó¥É¤Î1¤Ä°Ê¾å¤Î¥ª¥×¥·¥ç¥ó¡£¾ÜºÙ¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fIscript\-files\fR +.RS 4 +¶õÇòʸ»ú¤Ç¶èÀÚ¤é¤ì¤¿¡¢Nashorn¤ò»ÈÍѤ·¤Æ²ò¼á¤¹¤ë1¤Ä°Ê¾å¤Î¥¹¥¯¥ê¥×¥È¡¦¥Õ¥¡¥¤¥ë¡£¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢ÂÐÏ÷¿¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\fIarguments\fR +.RS 4 +Æó½Å¥Ï¥¤¥Õ¥ó¡¦¥Þ¡¼¥«¡¼(\fB\-\-\fR)¤Î¸å¤Î¤¹¤Ù¤Æ¤ÎÃͤ¬¡¢°ú¿ô¤È¤·¤Æ¥¹¥¯¥ê¥×¥È¤Þ¤¿¤ÏÂÐÏ÷¿¥·¥§¥ë¤ËÅϤµ¤ì¤Þ¤¹¡£¤³¤ì¤é¤ÎÃͤˤÏ\fBarguments\fR¥×¥í¥Ñ¥Æ¥£¤ò»ÈÍѤ·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹(Example 3¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBjjs\fR¥³¥Þ¥ó¥É¹Ô¥Ä¡¼¥ë¤ò»ÈÍѤ·¤ÆNashorn¥¨¥ó¥¸¥ó¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤³¤ì¤ò»ÈÍѤ·¤Æ¡¢1¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥¹¥¯¥ê¥×¥È¡¦¥Õ¥¡¥¤¥ë¤ò²ò¼á¤·¤¿¤ê¡¢ÂÐÏ÷¿¥·¥§¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\fBjjs\fR¥³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤Ï¥¹¥¯¥ê¥×¥È¤¬Nashorn¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤ë¾ò·ï¤òÀ©¸æ¤·¤Þ¤¹¡£ +.PP +\-ccs=\fIsize\fR +.br +\-\-class\-cache\-size=\fIsize\fR +.RS 4 +¥¯¥é¥¹¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤ÇÀßÄꤷ¤Þ¤¹¡£¥­¥í¥Ð¥¤¥È(KB)¤ò¼¨¤¹¤¿¤á¤Ë\fBk\fR¤Þ¤¿¤Ï\fBK\fR¤Îʸ»ú¤òÄɲä·¡¢¥á¥¬¥Ð¥¤¥È(MB)¤ò¼¨¤¹¤¿¤á¤Ë\fBm\fR¤Þ¤¿¤Ï\fBM\fR¤Îʸ»ú¤òÄɲä·¡¢¥®¥¬¥Ð¥¤¥È(GB)¤ò¼¨¤¹¤¿¤á¤Ë\fBg\fR¤Þ¤¿¤Ï\fBG\fR¤òÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¯¥é¥¹¡¦¥­¥ã¥Ã¥·¥å¡¦¥µ¥¤¥º¤Ï50¥Ð¥¤¥È¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¼¡¤ÎÎã¤Ï¡¢1024¥Ð¥¤¥È(1 KB)¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-css=100\fR +\fB\-css=1k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-co +.br +\-\-compile\-only +.RS 4 +¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤»¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ +.RE +.PP +\-cp \fIpath\fR +.br +\-classpath \fIpath\fR +.RS 4 +¥µ¥Ý¡¼¥È¤¹¤ë¥¯¥é¥¹¤Ø¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£Ê£¿ô¤Î¥Ñ¥¹¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò·«¤êÊÖ¤¹¤«¡¢¤Þ¤¿¤Ï³Æ¥Ñ¥¹¤ò¥³¥í¥ó(:)¤Ç¶èÀÚ¤ê¤Þ¤¹¡£ +.RE +.PP +\-D\fIname\fR=\fIvalue\fR +.RS 4 +¥×¥í¥Ñ¥Æ¥£Ì¾¤ËÃͤò³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢¥¹¥¯¥ê¥×¥È¤ËÅϤ¹¥·¥¹¥Æ¥à¡¦¥×¥í¥Ñ¥Æ¥£¤òÀßÄꤷ¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¡¢ÂÐÏ÷¿¥â¡¼¥É¤ÇNashorn¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢\fBmyValue\fR¤ò\fBmyKey\fR¤È¤¤¤¦Ì¾Á°¤Î¥×¥í¥Ñ¥Æ¥£¤Ë³ä¤êÅö¤Æ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs \-DmyKey=myValue\fR\fR +\fBjjs> \fR\fB\fBjava\&.lang\&.System\&.getProperty("myKey")\fR\fR +\fBmyValue\fR +\fBjjs>\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤ò·«¤êÊÖ¤·»ÈÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î¥×¥í¥Ñ¥Æ¥£¤òÀßÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-d=\fIpath\fR +.br +\-\-dump\-debug\-dir=\fIpath\fR +.RS 4 +¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤ò¥À¥ó¥×¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-\-debug\-lines +.RS 4 +¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ëÆâ¤Î¹ÔÈÖ¹æÉ½¤òÀ¸À®¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Ìµ¸ú¤Ë¤¹¤ë¤Ë¤Ï\fB\-\-debug\-lines=false\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-\-debug\-locals +.RS 4 +¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ëÆâ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤òÀ¸À®¤·¤Þ¤¹¡£ +.RE +.PP +\-doe +.br +\-\-dump\-on\-error +.RS 4 +¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤È¤­¤Ë¡¢¥Õ¥ë¡¦¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢´Êñ¤Ê¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤Î¤ß¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-\-early\-lvalue\-error +.RS 4 +̵¸ú¤Êº¸ÊÕÃͼ°¤¬Áá´ü¥¨¥é¡¼¤È¤·¤Æ(¤Ä¤Þ¤ê¡¢¥³¡¼¥É¤¬²òÀϤµ¤ì¤ë¤È¤­¤Ë)Êó¹ð¤µ¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Ìµ¸ú¤Ë¤¹¤ë¤Ë¤Ï\fB\-\-early\-lvalue\-error=false\fR¤ò»ØÄꤷ¤Þ¤¹¡£Ìµ¸ú¤Ê¾ì¹ç¡¢Ìµ¸ú¤Êº¸ÊÕÃͼ°¤Ï¥³¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤ÇÊó¹ð¤µ¤ì¤Þ¤»¤ó¡£ +.RE +.PP +\-\-empty\-statements +.RS 4 +¶õ¤Îʸ¤òJava¤ÎÃê¾Ý¹½Ê¸¥Ä¥ê¡¼¤ËÊݸ¤·¤Þ¤¹¡£ +.RE +.PP +\-fv +.br +\-\-fullversion +.RS 4 +´°Á´¤ÊNashorn¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-function\-statement\-error +.RS 4 +´Ø¿ô¤ÎÀë¸À¤¬Ê¸¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¤È¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-\-function\-statement\-warning +.RS 4 +´Ø¿ô¤ÎÀë¸À¤¬Ê¸¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¤È·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-fx +.RS 4 +¥¹¥¯¥ê¥×¥È¤òJavaFX¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æµ¯Æ°¤·¤Þ¤¹¡£ +.RE +.PP +\-h +.br +\-help +.RS 4 +¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È¤È¤½¤ÎÀâÌÀ¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-J\fIoption\fR +.RS 4 +»ØÄꤷ¤¿\fBjava\fRµ¯Æ°¥ª¥×¥·¥ç¥ó¤òJVM¤ËÅϤ·¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¡¢ÂÐÏ÷¿¥â¡¼¥É¤ÇNashorn¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢JVM¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ëºÇÂç¥á¥â¥ê¡¼¤ò4 GB¤ËÀßÄꤹ¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs \-J\-Xmx4g\fR\fR +\fBjjs> \fR\fB\fBjava\&.lang\&.Runtime\&.getRuntime()\&.maxMemory()\fR\fR +\fB3817799680\fR +\fBjjs>\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Î¥ª¥×¥·¥ç¥ó¤ò·«¤êÊÖ¤·»ÈÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î\fBjava\fR¥³¥Þ¥ó¥É¡¦¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\-\-language=[es5] +.RS 4 +ECMAScript¸À¸ì¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤ÏES5¤Ç¤¹¡£ +.RE +.PP +\-\-lazy\-compilation +.RS 4 +¥ì¥¤¥¸¡¼¡¦¥³¡¼¥ÉÀ¸À®Àïά(¤Ä¤Þ¤ê¡¢¥¹¥¯¥ê¥×¥ÈÁ´ÂΤ¬°ìÅ٤˥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤)¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï»î¸³Åª¤Ê¤â¤Î¤Ç¤¹¡£ +.RE +.PP +\-\-loader\-per\-compile +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤´¤È¤Ë¿·¤·¤¤¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤òºîÀ®¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£Ìµ¸ú¤Ë¤¹¤ë¤Ë¤Ï\fB\-\-loader\-per\-compile=false\fR¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-\-log=\fIsubsystem\fR:\fIlevel\fR +.RS 4 +»ØÄꤵ¤ì¤¿¥µ¥Ö¥·¥¹¥Æ¥à¤ËÂФ·¤Æ¡¢ÆÃÄê¤Î¥ì¥Ù¥ë¤Ç¥í¥®¥ó¥°¤ò¼Â¹Ô¤·¤Þ¤¹¡£¥«¥ó¥Þ¤Ç¶èÀڤäÆÊ£¿ô¤Î¥µ¥Ö¥·¥¹¥Æ¥à¤Î¥í¥®¥ó¥°¡¦¥ì¥Ù¥ë¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-\-log=fields:finest,codegen:info\fR +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-\-optimistic\-types=[true|false] +.RS 4 +ºÆ¥³¥ó¥Ñ¥¤¥ë¤ÎºÇŬ²½¤ò²ò½ü¤·¤Æ¥ª¥×¥Æ¥£¥ß¥¹¥Æ¥£¥Ã¥¯¡¦¥¿¥¤¥×²¾Äê¤òÍ­¸ú¤Þ¤¿¤Ï̵¸ú¤Ë¤·¤Þ¤¹¡£¥ª¥×¥Æ¥£¥ß¥¹¥Æ¥£¥Ã¥¯¡¦¥¿¥¤¥×¤ò»ÈÍѤ·¤¿¼Â¹Ô¤Ë¤è¤Ã¤ÆºÇ½ªÅª¤Ê®ÅÙ¤¬¸þ¾å¤·¤Þ¤¹¤¬¡¢¥¦¥©¡¼¥à¥¢¥Ã¥×»þ´Ö¤¬Áý¤¨¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-\-package=\fIname\fR +.RS 4 +À¸À®¤µ¤ì¤¿¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤òÄɲ乤ë¥Ñ¥Ã¥±¡¼¥¸¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-\-parse\-only +.RS 4 +¥³¥ó¥Ñ¥¤¥ë¤»¤º¤Ë¥³¡¼¥É¤ò²òÀϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-ast +.RS 4 +Ãê¾Ý¹½Ê¸¥Ä¥ê¡¼¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-code +.RS 4 +¥Ð¥¤¥È¥³¡¼¥É¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-lower\-ast +.RS 4 +·¡¤ê²¼¤²¤¿Ãê¾Ý¹½Ê¸¥Ä¥ê¡¼¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-lower\-parse +.RS 4 +·¡¤ê²¼¤²¤¿²òÀϥĥ꡼¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-no\-newline +.RS 4 +¤½¤Î¾¤Î\fB\-\-print*\fR¥ª¥×¥·¥ç¥ó¤Ç¶¯À©Åª¤Ë1¹Ô¤Ç½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-parse +.RS 4 +²òÀϥĥ꡼¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-\-print\-symbols +.RS 4 +µ­¹æÉ½¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-pcs +.br +\-\-profile\-callsites +.RS 4 +¸Æ¤Ó½Ð¤·¥µ¥¤¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¡¦¥Ç¡¼¥¿¤ò¥À¥ó¥×¤·¤Þ¤¹¡£ +.RE +.PP +\-scripting +.RS 4 +¥·¥§¥ë¤Î¥¹¥¯¥ê¥×¥Èµ¡Ç½¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +.RE +.PP +\-\-stderr=\fIfilename\fR|\fIstream\fR|\fItty\fR +.RS 4 +ɸ½à¥¨¥é¡¼¡¦¥¹¥È¥ê¡¼¥à¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¡¢¥¹¥È¥ê¡¼¥à(¤¿¤È¤¨¤Ð\fBstdout\fR)¤Ë¡¢¤Þ¤¿¤Ï¥Æ¥­¥¹¥ÈüËö¤Ë¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£ +.RE +.PP +\-\-stdout=\fIfilename\fR|\fIstream\fR|\fItty\fR +.RS 4 +ɸ½à½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ò»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¡¢¥¹¥È¥ê¡¼¥à(¤¿¤È¤¨¤Ð\fBstderr\fR)¤Ë¡¢¤Þ¤¿¤Ï¥Æ¥­¥¹¥ÈüËö¤Ë¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£ +.RE +.PP +\-strict +.RS 4 +ɸ½à(ECMAScript Edition 5\&.1)¤Ø¤Î½àµò¤ò¶¯²½¤¹¤ëstrict¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¡¢¤³¤ì¤Ë¤è¤ê¶¦Ä̤Υ³¡¼¥Ç¥£¥ó¥°¡¦¥¨¥é¡¼¤ò´Êñ¤Ë¸¡½Ð¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\-t=\fIzone\fR +.br +\-timezone=\fIzone\fR +.RS 4 +¥¹¥¯¥ê¥×¥È¤Î¼Â¹Ô¤ËÂФ·»ØÄꤷ¤¿¥¿¥¤¥à¥¾¡¼¥ó¤òÀßÄꤷ¤Þ¤¹¡£OS¤ÇÀßÄꤵ¤ì¤¿¥¿¥¤¥à¥¾¡¼¥ó¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¡¢\fBDate\fR¥ª¥Ö¥¸¥§¥¯¥È¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-tcs=\fIparameter\fR +.br +\-\-trace\-callsites=\fIparameter\fR +.RS 4 +¸Æ½Ð¤·¥µ¥¤¥È¤Î¥È¥ì¡¼¥¹¤Î¥â¡¼¥É¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£»ÈÍѲÄǽ¤Ê¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.PP +miss +.RS 4 +¸Æ½Ð¤·¥µ¥¤¥È¤Î¥ß¥¹¤ò¥È¥ì¡¼¥¹¤·¤Þ¤¹¡£ +.RE +.PP +enterexit +.RS 4 +¸Æ½Ð¤·¥µ¥¤¥È¤Ø¤Î½ÐÆþ¤ê¤ò¥È¥ì¡¼¥¹¤·¤Þ¤¹¡£ +.RE +.PP +objects +.RS 4 +¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥í¥Ñ¥Æ¥£¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.RE +.PP +\-\-verify\-code +.RS 4 +¥Ð¥¤¥È¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¸¡¾Ú¤·¤Þ¤¹¡£ +.RE +.PP +\-v +.br +\-version +.RS 4 +Nashorn¥Ð¡¼¥¸¥ç¥óʸ»úÎó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-xhelp +.RS 4 +¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î³ÈÄ¥¥Ø¥ë¥×¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.SH "Îã" +.PP +\fBÎã 1 \fRNashorn¤ò»ÈÍѤ·¤¿¥¹¥¯¥ê¥×¥È¤Î¼Â¹Ô +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjjs script\&.js\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBÎã 2 \fRÂÐÏ÷¿¥â¡¼¥É¤Ç¤ÎNashorn¤Î¼Â¹Ô +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs\fR\fR +\fBjjs> \fR\fB\fBprintln("Hello, World!")\fR\fR +\fBHello, World!\fR +\fBjjs> \fR\fB\fBquit()\fR\fR +\fB>>\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBÎã 3 \fRNashorn¤Ø¤Î°ú¿ô¤ÎÅϤ· +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs \-\- a b c\fR\fR +\fBjjs> \fR\fB\fBarguments\&.join(", ")\fR\fR +\fBa, b, c\fR +\fBjjs>\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "´ØÏ¢¹àÌÜ" +.PP +\fBjrunscript\fR +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/keytool.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/keytool.1 new file mode 100755 index 0000000..c38f543 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/keytool.1 @@ -0,0 +1,2248 @@ +'\" t +.\" Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: keytool +.\" Language: Japanese +.\" Date: 2015ǯ3·î3Æü +.\" SectDesc: ¥»¥­¥å¥ê¥Æ¥£¡¦¥Ä¡¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "keytool" "1" "2015ǯ3·î3Æü" "JDK 8" "¥»¥­¥å¥ê¥Æ¥£¡¦¥Ä¡¼¥ë" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +keytool \- °Å¹æ²½¸°¡¢X\&.509¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ª¤è¤Ó¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤ò´Þ¤à¥­¡¼¥¹¥È¥¢(¥Ç¡¼¥¿¥Ù¡¼¥¹)¤ò´ÉÍý¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool\fR [\fIcommands\fR] +.fi +.if n \{\ +.RE +.\} +.PP +\fIcommands\fR +.RS 4 +¥³¥Þ¥ó¥É¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¹¥¯Ê̤ËʬÎव¤ì¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥­¡¼¥¹¥È¥¢¤Ø¤Î¥Ç¡¼¥¿¤ÎºîÀ®¤Þ¤¿¤ÏÄɲà +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-gencert +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-genkeypair +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-genseckey +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-importcert +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-importpassword +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Ê̤Υ­¡¼¥¹¥È¥¢¤ÎÆâÍÆ¤Î¥¤¥ó¥Ý¡¼¥È +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-importkeystore +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤ÎÀ¸À® +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-certreq +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥Ç¡¼¥¿¤Î¥¨¥¯¥¹¥Ý¡¼¥È +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-exportcert +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥Ç¡¼¥¿¤Îɽ¼¨ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-list +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-printcert +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-printcertreq +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-printcrl +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥­¡¼¥¹¥È¥¢¤Î´ÉÍý +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-storepasswd +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-keypasswd +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-delete +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-changealias +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥Ø¥ë¥×¤Îɽ¼¨ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\-help +.RE +.RE +.RE +.SH "ÀâÌÀ" +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¸°¤È¾ÚÌÀ½ñ¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥æ¡¼¥¶¡¼¤Ï¼«Ê¬¤Î¸ø³«¸°¤ÈÈëÌ©¸°¤Î¥Ú¥¢¤ª¤è¤Ó´ØÏ¢¤¹¤ë¾ÚÌÀ½ñ¤ò´ÉÍý¤·¡¢¥Ç¥¸¥¿¥ë½ð̾¤ò»ÈÍѤ·¤¿¼«¸Êǧ¾Ú(¾¤Î¥æ¡¼¥¶¡¼¤Þ¤¿¤Ï¥µ¡¼¥Ó¥¹¤ËÂФ·¤Æ¼«Ê¬¼«¿È¤òǧ¾Ú¤¹¤ë¤³¤È)¤ä¡¢¥Ç¡¼¥¿¤ÎÀ°¹çÀ­¤È¾ÚÌÀ½ñ¤Ë´Ø¤¹¤ë¥µ¡¼¥Ó¥¹¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢ÄÌ¿®¤·¤Æ¤¤¤ë¥Ô¥¢¤Î¸ø³«¸°¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹(¾ÚÌÀ½ñ¤Î¥Õ¥©¡¼¥à¤Ç)¡£ +.PP +¾ÚÌÀ½ñ¤È¤Ï¡¢¤¢¤ë¥¨¥ó¥Æ¥£¥Æ¥£(¿Íʪ¡¢²ñ¼Ò¤Ê¤É)¤«¤é¤Î¥Ç¥¸¥¿¥ë½ð̾ÉÕ¤­¤Îʸ½ñ¤Î¤³¤È¤Ç¤¹¡£¾ÚÌÀ½ñ¤Ë¤Ï¡¢Â¾¤Î¤¢¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î¸ø³«¸°(¤ª¤è¤Ó¤½¤Î¾¤Î¾ðÊó)¤¬ÆÃÊ̤ÊÃͤò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£(¾ÚÌÀ½ñ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£)¥Ç¡¼¥¿¤Ë¥Ç¥¸¥¿¥ë½ð̾¤¬ÉÕ¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ç¥¸¥¿¥ë½ð̾¤ò¸¡¾Ú¤¹¤ë¤³¤È¤Ç¡¢¥Ç¡¼¥¿¤ÎÀ°¹çÀ­¤ª¤è¤Ó¥Ç¡¼¥¿¤¬ËÜʪ¤Ç¤¢¤ë¤³¤È¤ò¥Á¥§¥Ã¥¯¤Ç¤­¤Þ¤¹¡£¥Ç¡¼¥¿¤ÎÀ°¹çÀ­¤È¤Ï¡¢¥Ç¡¼¥¿¤¬Êѹ¹¤µ¤ì¤¿¤ê¡¢²þÊѤµ¤ì¤¿¤ê¤·¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¤Þ¤¿¡¢¥Ç¡¼¥¿¤¬ËÜʪ¤Ç¤¢¤ë¤È¤Ï¡¢¤½¤Î¥Ç¡¼¥¿¤¬¡¢¥Ç¡¼¥¿¤òºîÀ®¤·¤Æ½ð̾¤·¤¿¤È¾Î¤¹¤ë¿Íʪ¤«¤éÅϤµ¤ì¤¿¥Ç¡¼¥¿¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +.PP +¤Þ¤¿¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ì¤Ð¡¢ÂоΰŹ沽/Éü¹æ²½(DES)¤Ç»ÈÍѤµ¤ì¤ëÈëÌ©¸°¤ª¤è¤Ó¥Ñ¥¹¥Õ¥ì¡¼¥º¤ò´ÉÍý¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¸°¤È¾ÚÌÀ½ñ¤ò¥­¡¼¥¹¥È¥¢¤Ë³ÊǼ¤·¤Þ¤¹¡£¥­¡¼¥¹¥È¥¢¤ÎÊÌ̾¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.SH "¥³¥Þ¥ó¥É¤È¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ëÃí°Õ" +.PP +ÍÍ¡¹¤Ê¥³¥Þ¥ó¥É¤È¤½¤ÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥³¥Þ¥ó¥É¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¤É¤Î¥³¥Þ¥ó¥É̾¤ª¤è¤Ó¥ª¥×¥·¥ç¥ó̾¤Ë¤âÀèÆ¬¤Ë¥Þ¥¤¥Ê¥¹µ­¹æ(\-)¤¬ÉÕ¤­¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +³Æ¥³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤ÏǤ°Õ¤Î½ç½ø¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥¤¥¿¥ê¥Ã¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¹àÌÜ¡¢¤Þ¤¿¤ÏÃæ¥«¥Ã¥³¤«³Ñ¥«¥Ã¥³¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¹àÌܤϡ¢¤½¤Î¤È¤ª¤ê¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥ª¥×¥·¥ç¥ó¤ò°Ï¤àÃæ¥«¥Ã¥³¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤ¬»ÈÍѤµ¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Ã楫¥Ã¥³¤Ï¡¢\fB\-v\fR¡¢\fB\-rfc\fR¤ª¤è¤Ó\fB\-J\fR¥ª¥×¥·¥ç¥ó¤ò°Ï¤à¤¿¤á¤Ë¤â»ÈÍѤµ¤ì¤Þ¤¹¤¬¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Á¤Þ¤¹¡£»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç°Ê³°¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤϤ¢¤ê¤Þ¤»¤ó¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥ª¥×¥·¥ç¥ó¤ò°Ï¤à³Ñ¥«¥Ã¥³¤Ï¡¢¤½¤Î¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢ÃÍ¤ÎÆþÎϤòµá¤á¤é¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£\fB\-keypass\fR¥ª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤¬¤Þ¤º¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤ò»ÈÍѤ·¤ÆÈó¸ø³«/ÈëÌ©¸°¤ÎÉü¸µ¤ò»î¤ß¤Þ¤¹¡£¤³¤Î»î¤ß¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ë¤è¤ê¡¢Èó¸ø³«/ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥¤¥¿¥ê¥Ã¥¯¤Î¹àÌܤμºݤÎÃÍ(¥ª¥×¥·¥ç¥ó¤ÎÃÍ)¤Ï¡¢»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fB\-printcert\fR¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-printcert {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +\fB\-printcert\fR¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢\fIcert_file\fR¤ò¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë̾¤ÇÃÖ¤­´¹¤¨¤Þ¤¹¡£Îã: +\fBkeytool \-printcert \-file VScert\&.cer\fR +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥ª¥×¥·¥ç¥ó¤ÎÃͤ˶õÇò(¥¹¥Ú¡¼¥¹)¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Ãͤò°úÍÑÉä¤Ç°Ï¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-help\fR¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢\fBkeytool \-help\fR¤ÈƱ¤¸¤Ç¤¹¡£ +.RE +.SH "¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ" +.PP +¼¡¤ÎÎã¤Ç¡¢ÍÍ¡¹¤Ê¥ª¥×¥·¥ç¥óÃͤΥǥե©¥ë¥ÈÃͤò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-alias "mykey"\fR +\fB \fR +\fB\-keyalg\fR +\fB "DSA" (when using \-genkeypair)\fR +\fB "DES" (when using \-genseckey)\fR +\fB \fR +\fB\-keysize\fR +\fB 2048 (when using \-genkeypair and \-keyalg is "RSA")\fR +\fB 1024 (when using \-genkeypair and \-keyalg is "DSA")\fR +\fB 256 (when using \-genkeypair and \-keyalg is "EC")\fR +\fB 56 (when using \-genseckey and \-keyalg is "DES")\fR +\fB 168 (when using \-genseckey and \-keyalg is "DESede")\fR +\fB \fR +\fB\-validity 90\fR +\fB \fR +\fB\-keystore \fR +\fB \fR +\fB\-storetype \fR +\fB \fR +\fB\-file\fR +\fB stdin (if reading)\fR +\fB stdout (if writing)\fR +\fB \fR +\fB\-protected false\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¸ø³«/ÈëÌ©¸°¥Ú¥¢¤ÎÀ¸À®¤Ë¤ª¤¤¤Æ¡¢½ð̾¥¢¥ë¥´¥ê¥º¥à(\fB\-sigalg\fR¥ª¥×¥·¥ç¥ó)¤Ï¡¢´ð¤Ë¤Ê¤ëÈëÌ©¸°¤Î¥¢¥ë¥´¥ê¥º¥à¤«¤éÇÉÀ¸¤·¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +´ð¤Ë¤Ê¤ëÈëÌ©¸°¤¬DSA¥¿¥¤¥×¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢\fB\-sigalg\fR¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏSHA1withDSA¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +´ð¤Ë¤Ê¤ëÈëÌ©¸°¤¬RSA¥¿¥¤¥×¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢\fB\-sigalg\fR¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏSHA256withRSA¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +´ð¤Ë¤Ê¤ëÈëÌ©¸°¤¬EC¥¿¥¤¥×¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢\fB\-sigalg\fR¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏSHA256withECDSA¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +\fB\-keyalg\fR¤ª¤è¤Ó\fB\-sigalg\fR°ú¿ô¤Î´°Á´¤Ê¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec\&.html#AppA¤Î¡ÖJava Cryptography Architecture (JCA) Reference Guide¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.SH "°ìÈÌ¥ª¥×¥·¥ç¥ó" +.PP +\fB\-v\fR¥ª¥×¥·¥ç¥ó¤Ï¡¢\fB\-help\fR¥³¥Þ¥ó¥É¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤Ç»ÈÍѤǤ­¤Þ¤¹¡£\fB\-v\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Ï¾éĹ¥â¡¼¥É¤Ç¼Â¹Ô¤µ¤ì¡¢¾ÜºÙ¤Ê¾ðÊ󤬽ÐÎϤµ¤ì¤Þ¤¹¡£ +.PP +Ǥ°Õ¤Î¥³¥Þ¥ó¥É¤Ç»ØÄê¤Ç¤­¤ë\fB\-Jjavaoption\fR°ú¿ô¤â¤¢¤ê¤Þ¤¹¡£\fB\-Jjavaoption\fR¤ò»ØÄꤷ¤¿¾ì¹ç¡¢»ØÄꤵ¤ì¤¿\fBjavaoption\fRʸ»úÎó¤¬Java¥¤¥ó¥¿¥×¥ê¥¿¤ËľÀÜÅϤµ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢¶õÇò¤ò´Þ¤á¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼Â¹Ô´Ä¶­¤Þ¤¿¤Ï¥á¥â¥ê¡¼»ÈÍѤòÄ´À°¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£»ØÄê¤Ç¤­¤ë¥¤¥ó¥¿¥×¥ê¥¿¡¦¥ª¥×¥·¥ç¥ó¤ò°ìÍ÷ɽ¼¨¤¹¤ë¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤Ç\fBjava \-h\fR¤Þ¤¿¤Ï\fBjava \-X\fR¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ +.PP +¼¡¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥­¡¼¥¹¥È¥¢¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£ +.PP +\-storetype \fIstoretype\fR +.RS 4 +¤³¤Î½¤¾þ»Ò¤Ï¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤¹¤ë¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-keystore \fIkeystore\fR +.RS 4 +¥­¡¼¥¹¥È¥¢¤Î¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +ÆÃÄê¤Î\fBkeytool\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢JKS +\fBstoretype\fR¤¬»ÈÍѤµ¤ì¡¢¤«¤Ä¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤¬¤Þ¤À¸ºß¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¿·¤·¤¤¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBkeytool \-genkeypair\fR¤Î¸Æ½Ð¤·»þ¤Ë\fB\-keystore\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\fB\&.keystore\fR¤È¤¤¤¦Ì¾Á°¤Î¥Ç¥Õ¥©¥ë¥È¡¦¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤¬¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¤Þ¤À¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤½¤³¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£Æ±Íͤˡ¢\fB\-keystore ks_file\fR¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤â¤½¤Îks_file¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£JKS +\fBstoretype\fR¤Î¾ÜºÙ¤Ï¡¢\fI¤Î\fRKeyStore¤Î¼ÂÁõ¥­¡¼¥¹¥È¥¢¤ÎÊÌ̾¤Ë´Ø¤¹¤ë¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +\fB\-keystore\fR¥ª¥×¥·¥ç¥ó¤«¤é¤ÎÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢\fBKeyStore\&.load\fR¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤Þ¤¹¡£URL¤È¤·¤Æ\fBNONE\fR¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢null¤Î¥¹¥È¥ê¡¼¥à¤¬\fBKeyStore\&.load\fR¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤Þ¤¹¡£\fBNONE\fR¤Ï¡¢KeyStore¤¬¥Õ¥¡¥¤¥ë¥Ù¡¼¥¹¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢¥Ï¡¼¥É¥¦¥§¥¢¡¦¥È¡¼¥¯¥ó¡¦¥Ç¥Ð¥¤¥¹¾å¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ç¤¹¡£ +.RE +.PP +\-storepass[:\fIenv\fR| :\fIfile\fR] argument +.RS 4 +¥­¡¼¥¹¥È¥¢¤ÎÀ°¹çÀ­¤òÊݸ¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +½¤¾þ»Ò\fBenv\fR¤Þ¤¿¤Ï\fBfile\fR¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÃͤÏ\fBargument\fR¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ÎÃͤϡ¢6ʸ»ú°Ê¾å¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼èÆÀ¤µ¤ì¤Þ¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBenv\fR: +\fBargument\fR¤È¤¤¤¦Ì¾Á°¤Î´Ä¶­ÊÑ¿ô¤«¤é¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤·¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBfile\fR: argument¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤«¤é¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤·¤Þ¤¹¡£ +.RE +.sp +\fBÃí°Õ:\fR +\fB\-keypass\fR¡¢\fB\-srckeypass\fR¡¢\-\fBdestkeypass\fR¡¢\fB\-srcstorepass\fR¡¢\fB\-deststorepass\fR¤Ê¤É¤Î¥Ñ¥¹¥ï¡¼¥É¤òɬÍפȤ¹¤ë¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¹¤Ù¤Æ¡¢\fIenv\fR¤ª¤è¤Ó\fIfile\fR½¤¾þ»Ò¤ò¼õ¤±ÉÕ¤±¤Þ¤¹¡£¥Ñ¥¹¥ï¡¼¥É¡¦¥ª¥×¥·¥ç¥ó¤È½¤¾þ»Ò¤Ï¡¢É¬¤º¥³¥í¥ó(:)¤Ç¶èÀڤäƤ¯¤À¤µ¤¤¡£ +.sp +¥Ñ¥¹¥ï¡¼¥É¤Ï¡¢¥­¡¼¥¹¥È¥¢¤ÎÆâÍÆ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¼ï¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¤Ç\fB\-storepass\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.sp +¥­¡¼¥¹¥È¥¢¤«¤é¾ðÊó¤ò¼èÆÀ¤¹¤ë¾ì¹ç¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï¾Êά²Äǽ¤Ç¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¼èÆÀ¤·¤¿¾ðÊó¤ÎÀ°¹çÀ­¤ò¸¡¾Ú¤Ç¤­¤º¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-providerName \fIprovider_name\fR +.RS 4 +¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Õ¥¡¥¤¥ëÆâ¤Ë´Þ¤Þ¤ì¤ë°Å¹æ²½¥µ¡¼¥Ó¥¹¡¦¥×¥í¥Ð¥¤¥À̾¤òÆÃÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-providerClass \fIprovider_class_name\fR +.RS 4 +°Å¹æ²½¥µ¡¼¥Ó¥¹¡¦¥×¥í¥Ð¥¤¥À¤¬¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¤½¤Î¥Þ¥¹¥¿¡¼¡¦¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤹ¤ë¤È¤­¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-providerArg \fIprovider_arg\fR +.RS 4 +\fB\-providerClass\fR¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢\fBprovider_class_name\fR¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Î¥ª¥×¥·¥ç¥ó¤Îʸ»úÎóÆþÎϰú¿ô¤òɽ¤·¤Þ¤¹¡£ +.RE +.PP +\-protected +.RS 4 +\fBtrue\fR¤Þ¤¿¤Ï\fBfalse\fR¤Î¤¤¤º¤ì¤«¡£¥Ñ¥¹¥ï¡¼¥É¤òÀìÍÑPIN¥ê¡¼¥À¡¼¤Ê¤É¤ÎÊݸ¤ì¤¿Ç§¾Ú¥Ñ¥¹·Ðͳ¤Ç»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¤³¤ÎÃͤò\fBtrue\fR¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£\fB\-importkeystore\fR¥³¥Þ¥ó¥É¤Ë¤Ï2¤Ä¤Î¥­¡¼¥¹¥È¥¢¤¬´ØÏ¢¤·¤Æ¤¤¤ë¤¿¤á¡¢¥½¡¼¥¹¡¦¥­¡¼¥¹¥È¥¢¤È°¸À襭¡¼¥¹¥È¥¢¤Ë¤½¤ì¤¾¤ì¼¡¤Î2¤Ä¤Î¥ª¥×¥·¥ç¥ó¡¢\fB\-srcprotected\fR¤È\-\fBdestprotected\fR¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +\-ext \fI{name{:critical} {=value}}\fR +.RS 4 +X\&.509¾ÚÌÀ½ñ¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ò¼¨¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò\fB\-genkeypair\fR¤ª¤è¤Ó\fB\-gencert\fR¤Ç»ÈÍѤ·¤Æ¡¢À¸À®¤µ¤ì¤ë¾ÚÌÀ½ñ¤Þ¤¿¤Ï\fB\-certreq\fR¤Ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤òËä¤á¹þ¤ß¡¢¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤Ç¥ê¥¯¥¨¥¹¥È¤µ¤ì¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ò¼¨¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô²ó»ØÄê¤Ç¤­¤Þ¤¹¡£\fBname\fR°ú¿ô¤Ë¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó̾(̾Á°ÉÕ¤­¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ò»²¾È)¤Þ¤¿¤ÏǤ°Õ¤ÎOIDÈÖ¹æ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢\fBvalue\fR°ú¿ô¤Ï¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Î°ú¿ô¤ò»Ø¤·¤Þ¤¹¡£\fIvalue\fR¤ò¾Êά¤·¤¿¾ì¹ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤޤ¿¤Ï¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬°ú¿ô¤òɬÍפȤ·¤Ê¤¤¤³¤È¤ò¼¨¤·¤Þ¤¹¡£\fB:critical\fR½¤¾þ»Ò¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Î\fBisCritical\fR°À­¤Ï\fBtrue\fR¤Ç¡¢»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï\fBfalse\fR¤Ç¤¹¡£\fB:critical\fR¤Î¤«¤ï¤ê¤Ë\fB:c\fR¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.RE +.SH "̾Á°ÉÕ¤­¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó" +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¼¡¤Î̾Á°¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£Ì¾Á°¤ÎÂç/¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£ +.PP +BC¤Þ¤¿¤ÏBasicContraints +.RS 4 +\fBÃÍ\fR: ´°Á´¤Ê·Á¼°¤Ï¡¢\fBca:{true|false}[,pathlen:]\fR¤Þ¤¿¤Ï\fB\fR(\fBca:true,pathlen:\fR¤Îû½Ì·Á)¤Ç¤¹¡£<\fBlen\fR>¤ò¾Êά¤¹¤ë¤È¡¢\fBca:true\fR¤Î°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡£ +.RE +.PP +KU¤Þ¤¿¤ÏKeyUsage +.RS 4 +\fBÃÍ\fR: +\fBusage\fR(\fBusage\fR)*¡¢\fIusage\fR¤Ë¤Ï\fBdigitalSignature\fR¡¢\fBnonRepudiation\fR +(contentCommitment)¡¢\fBkeyEncipherment\fR¡¢\fBdataEncipherment\fR¡¢\fBkeyAgreement\fR¡¢\fBkeyCertSign\fR¡¢\fBcRLSign\fR¡¢\fBencipherOnly\fR¡¢\fBdecipherOnly\fR¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£\fIusage\fR°ú¿ô¤Ï¡¢ÉÔÌÀ³Î¤Ë¤Ê¤é¤Ê¤¤¤«¤®¤ê¡¢ºÇ½é¤Î¿ôʸ»ú(\fBdigitalSignature\fR¤Î¾ì¹ç¤Ï\fBdig\fR)¤Þ¤¿¤Ï¥­¥ã¥á¥ë¥±¡¼¥¹¡¦¥¹¥¿¥¤¥ë(\fBdigitalSignature\fR¤Î¾ì¹ç¤Ï\fBdS\fR¡¢\fBcRLSign\fR¤Î¾ì¹ç¤Ï\fBcRLS\fR)¤Ç¾Êάɽµ­¤Ç¤­¤Þ¤¹¡£\fBusage\fRÃͤϡ¢Âçʸ»ú¤È¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤Þ¤¹¡£ +.RE +.PP +EKU¤Þ¤¿¤ÏExtendedKeyUsage +.RS 4 +\fBÃÍ\fR: +\fBusage\fR(\fBusage\fR)*¡¢\fIusage\fR¤Ë¤Ï\fBanyExtendedKeyUsage\fR¡¢\fBserverAuth\fR¡¢\fBclientAuth\fR¡¢\fBcodeSigning\fR¡¢\fBemailProtection\fR¡¢\fBtimeStamping\fR¡¢\fBOCSPSigning\fR¤Þ¤¿¤ÏǤ°Õ¤Î\fIOIDʸ»úÎó\fR¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£\fIusage\fR°ú¿ô¤Ï¡¢ÉÔÌÀ³Î¤Ë¤Ê¤é¤Ê¤¤¤«¤®¤ê¡¢ºÇ½é¤Î¿ôʸ»ú¤Þ¤¿¤Ï¥­¥ã¥á¥ë¥±¡¼¥¹¡¦¥¹¥¿¥¤¥ë¤Ç¾Êάɽµ­¤Ç¤­¤Þ¤¹¡£\fBusage\fRÃͤϡ¢Âçʸ»ú¤È¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤Þ¤¹¡£ +.RE +.PP +SAN¤Þ¤¿¤ÏSubjectAlternativeName +.RS 4 +\fBÃÍ\fR: +\fBtype\fR:\fBvalue\fR(t\fBype:value\fR)*¡¢\fBtype\fR¤Ë¤Ï\fBEMAIL\fR¡¢\fBURI\fR¡¢\fBDNS\fR¡¢\fBIP\fR¤Þ¤¿¤Ï\fBOID\fR¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£\fBvalue\fR°ú¿ô¤Ï¡¢\fBtype\fR¤Îʸ»úÎó·Á¼°¤ÎÃͤǤ¹¡£ +.RE +.PP +IAN¤Þ¤¿¤ÏIssuerAlternativeName +.RS 4 +\fBÃÍ\fR: +\fBSubjectAlternativeName\fR¤ÈƱ¤¸¤Ç¤¹¡£ +.RE +.PP +SIA¤Þ¤¿¤ÏSubjectInfoAccess +.RS 4 +\fBÃÍ\fR: +\fBmethod\fR:\fBlocation\-type\fR:\fBlocation\-value\fR +(\fBmethod:location\-type\fR:\fBlocation\-value\fR)*¡¢\fBmethod\fR¤Ë¤Ï\fBtimeStamping\fR¡¢\fBcaRepository\fR¤Þ¤¿¤ÏǤ°Õ¤ÎOID¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£\fBlocation\-type\fR¤ª¤è¤Ó\fBlocation\-value\fR°ú¿ô¤Ë¤Ï¡¢\fBSubjectAlternativeName\fR¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ëǤ°Õ¤Î\fBtype\fR:\fBvalue\fR¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +AIA¤Þ¤¿¤ÏAuthorityInfoAccess +.RS 4 +\fBÃÍ\fR: +\fBSubjectInfoAccess\fR¤ÈƱ¤¸¤Ç¤¹¡£\fBmethod\fR°ú¿ô¤Ë¤Ï¡¢\fBocsp\fR¡¢\fBcaIssuers\fR¤Þ¤¿¤ÏǤ°Õ¤ÎOID¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.RE +.PP +\fBname\fR¤¬OID¤Î¾ì¹ç¡¢OCTET STRING¥¿¥¤¥×¤ÈŤµ¤Î¥Ð¥¤¥È¤ò½ü³°¤·¤¿¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÃͤÏ\fBextnValue\fR¤Î16¿Ê¥À¥ó¥×¤ÎDER¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¹¡£HEXʸ»úÎó¤Ç¤Ï¡¢É¸½à¤Î16¿Ê¿ô(0\-9¡¢a\-f¡¢A\-F)°Ê³°¤Îʸ»ú¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢01:02:03:04¤È01020304¤ÎξÊý¤È¤âƱ°ì¤ÎÃͤȤ·¤Æ¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤¹¡£Ãͤ¬¤Ê¤¤¾ì¹ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ÎÃÍ¥Õ¥£¡¼¥ë¥É¤Ï¶õ¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +\fB\-gencert\fR¤Ç¤Î¤ß»ÈÍѤ¹¤ë\fBhonored\fR¤È¤¤¤¦ÆÃÊ̤Ê̾Á°¤Ï¡¢¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤òÍ¥À褹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£¤³¤Î̾Á°¤ÎÃͤϡ¢\fBall\fR(¥ê¥¯¥¨¥¹¥È¤µ¤ì¤ë¤¹¤Ù¤Æ¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬Í¥À褵¤ì¤ë)¡¢\fBname{:[critical|non\-critical]}\fR(̾Á°ÉÕ¤­¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬Í¥À褵¤ì¤ë¤¬¡¢Ê̤Î\fBisCritical\fR°À­¤ò»ÈÍѤ¹¤ë)¡¢¤ª¤è¤Ó\fB\-name\fR(\fBall\fR¤È¤È¤â¤Ë»ÈÍѤ·¡¢Îã³°¤ò¼¨¤¹)¤Î¥«¥ó¥Þ¶èÀÚ¤ê¥ê¥¹¥È¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥ê¥¯¥¨¥¹¥È¤µ¤ì¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ÏÍ¥À褵¤ì¤Þ¤»¤ó¡£ +.PP +\fB\-ext honored\fR¥ª¥×¥·¥ç¥ó¤Ë²Ã¤¨¡¢Ê̤Î̾Á°¤Î¡¢¤Þ¤¿¤ÏOID +\fB\-ext\fR¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¤³¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬¡¢¤¹¤Ç¤ËÍ¥À褵¤ì¤Æ¤¤¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ËÄɲ䵤ì¤Þ¤¹¡£¤¿¤À¤·¡¢¤³¤Î̾Á°(¤Þ¤¿¤ÏOID)¤òÍ¥À褵¤ì¤ëÃͤǤâ»ÈÍѤ·¤¿¾ì¹ç¤Ï¡¢¤½¤ÎÃͤȽÅÍ×À­¤¬¥ê¥¯¥¨¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¤â¤Î¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹¡£ +.PP +\fBsubjectKeyIdentifier\fR¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ï¾ï¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¼«¸Ê½ð̾¤Ç¤Ê¤¤¾ÚÌÀ½ñ¤Î¾ì¹ç¤Ï¡¢\fBauthorityKeyIdentifier\fR¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ +.PP +\fBÃí°Õ:\fR +¥æ¡¼¥¶¡¼¤Ï¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó(¤ª¤è¤Ó¾ÚÌÀ½ñ¤Î¾¤Î¥Õ¥£¡¼¥ë¥É)¤ÎÁȹ礻¤Ë¤è¤Ã¤Æ¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Îɸ½à¤Ë½àµò¤·¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¾ÚÌÀ½ñ¤Î½àµò¤Ë´Ø¤¹¤ë·Ù¹ð¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.SH "¥³¥Þ¥ó¥É" +.PP +\-gencert +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-rfc} {\-infile \fR\fB\fIinfile\fR\fR\fB} {\-outfile \fR\fB\fIoutfile\fR\fR\fB} {\-alias \fR\fB\fIalias\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-dname \fR\fB\fIdname\fR\fR\fB} {\-startdate \fR\fB\fIstartdate\fR\fR\fB {\-ext \fR\fB\fIext\fR\fR\fB}* {\-validity \fR\fB\fIvalDays\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-providername \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¡¦¥Õ¥¡¥¤¥ë(\fBkeytool\fR +\fB\-certreq\fR¥³¥Þ¥ó¥É¤ÇºîÀ®²Äǽ)¤ËÂФ¹¤ë¥ì¥¹¥Ý¥ó¥¹¤È¤·¤Æ¾ÚÌÀ½ñ¤òÀ¸À®¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fIinfile\fR¤«¤é(¾Êά¤·¤¿¾ì¹ç¤Ï¡¢É¸½àÆþÎϤ«¤é)¥ê¥¯¥¨¥¹¥È¤òÆÉ¤ß¹þ¤ß¡¢ÊÌ̾¤ÎÈëÌ©¸°¤ò»ÈÍѤ·¤Æ¤½¤Î¥ê¥¯¥¨¥¹¥È¤Ë½ð̾¤·¤Æ¡¢X\&.509¾ÚÌÀ½ñ¤ò\fIoutfile\fR¤Ë(¾Êά¤·¤¿¾ì¹ç¤Ï¡¢É¸½à½ÐÎϤË)½ÐÎϤ·¤Þ¤¹¡£\fB\-rfc\fR¤ò»ØÄꤷ¤¿¾ì¹ç¡¢½ÐÎÏ·Á¼°¤ÏBASE64É乿²½¤ÎPEM¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¥Ð¥¤¥Ê¥êDER¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ +.sp +\fBsigalg\fRÃͤˤϡ¢¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤ë¤È¤­¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤ò»ØÄꤷ¤Þ¤¹¡£\fBstartdate\fR°ú¿ô¤Ï¡¢¾ÚÌÀ½ñ¤ÎÍ­¸ú³«»ÏÆü»þ¤Ç¤¹¡£\fBvalDays\fR°ú¿ô¤Ï¡¢¾ÚÌÀ½ñ¤ÎÍ­¸úÆü¿ô¤ò¼¨¤·¤Þ¤¹¡£ +.sp +\fBdname\fR¤ò»ØÄꤹ¤ë¤È¡¢À¸À®¤µ¤ì¤ë¾ÚÌÀ½ñ¤Î¼çÂΤȤ·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤«¤é¤Î̾Á°¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +\fBext\fRÃͤϡ¢¾ÚÌÀ½ñ¤ËËä¤á¹þ¤Þ¤ì¤ëX\&.509¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ò¼¨¤·¤Þ¤¹¡£\fB\-ext\fR¤Î¹½Ê¸¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ìÈÌ¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +\fB\-gencert\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òºîÀ®¤Ç¤­¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢\fBe1\fR¤È¤¤¤¦¾ÚÌÀ½ñ¤òºîÀ®¤·¤Þ¤¹¡£¤³¤Î¾ÚÌÀ½ñ¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ë¤Ï¡¢3¤Ä¤Î¾ÚÌÀ½ñ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢\fBca\fR¡¢\fBca1\fR¡¢\fBca2\fR¤ª¤è¤Ó\fBe1\fR¤Î4¤Ä¤Î¸°¥Ú¥¢¤òºîÀ®¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-alias ca \-dname CN=CA \-genkeypair\fR +\fBkeytool \-alias ca1 \-dname CN=CA \-genkeypair\fR +\fBkeytool \-alias ca2 \-dname CN=CA \-genkeypair\fR +\fBkeytool \-alias e1 \-dname CN=E1 \-genkeypair\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤Î2¤Ä¤Î¥³¥Þ¥ó¥É¤Ï¡¢½ð̾ÉÕ¤­¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó¤òºîÀ®¤·¤Þ¤¹¡£\fBca\fR¤Ï\fBca1\fR¤Ë½ð̾¤·¡¢\fBca1\fR¤Ï\fBca2\fR¤Ë½ð̾¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¼«¸Êȯ¹Ô¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-alias ca1 \-certreq |\fR +\fB keytool \-alias ca \-gencert \-ext san=dns:ca1 |\fR +\fB keytool \-alias ca1 \-importcert\fR + +\fBkeytool \-alias ca2 \-certreq |\fR +\fB $KT \-alias ca1 \-gencert \-ext san=dns:ca2 |\fR +\fB $KT \-alias ca2 \-importcert\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢¾ÚÌÀ½ñ\fBe1\fR¤òºîÀ®¤·¤Æ¥Õ¥¡¥¤¥ë\fBe1\&.cert\fR¤Ë³ÊǼ¤·¤Þ¤¹¡£¤³¤Î¾ÚÌÀ½ñ¤Ï\fBca2\fR¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¤Þ¤¹¡£¤½¤Î·ë²Ì¡¢\fBe1\fR¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ë¤Ï\fBca\fR¡¢\fBca1\fR¤ª¤è¤Ó\fBca2\fR¤¬´Þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1\&.cert\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-genkeypair +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-dname \fR\fB\fIdname\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-startdate \fR\fB\fIvalue\fR\fR\fB} {\-ext \fR\fB\fIext\fR\fR\fB}*\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-validity \fR\fB\fIvalDays\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¸°¤Î¥Ú¥¢(¸ø³«¸°¤ª¤è¤Ó´ØÏ¢¤¹¤ëÈëÌ©¸°)¤òÀ¸À®¤·¤Þ¤¹¡£¸ø³«¸°¤ÏX\&.509 v3¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ç¥é¥Ã¥×¤µ¤ì¤Þ¤¹¡£¾ÚÌÀ½ñ¤Ï¡¢Ã±°ì¤ÎÍ×ÁǤò»ý¤Ä¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤È¤·¤Æ³ÊǼ¤µ¤ì¤Þ¤¹¡£¤³¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ÈÈëÌ©¸°¤Ï¡¢alias¤ÇÆÃÄꤵ¤ì¤ë¿·¤·¤¤¥­¡¼¥¹¥È¥¢¡¦¥¨¥ó¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ +.sp +\fBkeyalg\fRÃͤϸ°¥Ú¥¢¤ÎÀ¸À®¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤ò¡¢\fBkeysize\fRÃͤÏÀ¸À®¤¹¤ë³Æ¸°¤Î¥µ¥¤¥º¤ò¡¢¤½¤ì¤¾¤ì»ØÄꤷ¤Þ¤¹¡£\fBsigalg\fRÃͤϡ¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ï\fBkeyalg\fRÃͤȸߴ¹À­¤¬¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fBdname\fRÃͤˤϡ¢\fBalias\fRÃͤ˴ØÏ¢ÉÕ¤±¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Îissuer¥Õ¥£¡¼¥ë¥É¤Èsubject¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ»ÈÍѤ¹¤ëX\&.500¼±ÊÌ̾¤ò»ØÄꤷ¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤Ç¼±ÊÌ̾¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¼±ÊÌ̾¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.sp +\fBkeypass\fRÃͤˤϡ¢À¸À®¤µ¤ì¤ë¸°¤Î¥Ú¥¢¤Î¤¦¤Á¡¢ÈëÌ©¸°¤òÊݸ¤ë¤Î¤Ë»ÈÍѤ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¤³¤Î¤È¤­¡¢[Return]¥­¡¼¤ò²¡¤¹¤È¡¢¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤ÈƱ¤¸¥Ñ¥¹¥ï¡¼¥É¤¬¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ËÀßÄꤵ¤ì¤Þ¤¹¡£\fBkeypass\fRÃͤϡ¢6ʸ»ú°Ê¾å¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fBstartdate\fRÃͤˤϡ¢¾ÚÌÀ½ñ¤Îȯ¹Ô»þ¹ï¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤ì¤Ï¡¢X\&.509¾ÚÌÀ½ñ¤Î¡ÖValidity¡×¥Õ¥£¡¼¥ë¥É¤Î¡ÖNot Before¡×ÃÍ¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡£ +.sp +¥ª¥×¥·¥ç¥ó¤ÎÃͤϡ¢¼¡¤Î2¤Ä¤Î·Á¼°¤Î¤¤¤º¤ì¤«¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£ +.sp +\fB([+\-]nnn[ymdHMS])+\fR +.sp +\fB[yyyy/mm/dd] [HH:MM:SS]\fR +.sp +ºÇ½é¤Î·Á¼°¤Ç¤Ï¡¢È¯¹Ô»þ¹ï¤Ï¡¢»ØÄꤵ¤ì¤ëÃͤÎʬ¡¢¸½ºß¤Î»þ¹ï¤«¤é°Ü¤ê¤Þ¤¹¡£»ØÄꤵ¤ì¤ëÃͤϡ¢°ìÏ¢¤Î²¼°Ì¤ÎÃͤòÏ¢·ë¤·¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£²¼°Ì¤Î³ÆÃͤǡ¢¥×¥é¥¹µ­¹æ(¡Ö+¡×)¤Ï»þ´Ö¤¬¿Ê¤à¤³¤È¤ò¡¢¥Þ¥¤¥Ê¥¹µ­¹æ(¡Ö\-¡×)¤Ï»þ´Ö¤¬Ìá¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£°Ü¤ë»þ´Ö¤Ï\fBnnn\fR¤Ç¡¢Ã±°Ì¤Ïǯ¡¢·î¡¢Æü¡¢»þ´Ö¡¢Ê¬¤Þ¤¿¤ÏÉäǤ¹(¤½¤ì¤¾¤ì¡¢1ʸ»ú¤Î\fBy\fR¡¢\fBm\fR¡¢\fBd\fR¡¢\fBH\fR¡¢\fBM\fR¤Þ¤¿¤Ï\fBS\fR¡×¤Ç¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹)¡£²¼°Ì¤Î³ÆÃͤÇ\fBjava\&.util\&.GregorianCalendar\&.add(int field, int amount)\fR¥á¥½¥Ã¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢È¯¹Ô»þ¹ï¤ÎÄɲäÎÃͤ¬º¸¤«¤é±¦¤Ø·×»»¤µ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢»ØÄꤹ¤ë¤È¡¢È¯¹Ô»þ¹ï¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCalendar c = new GregorianCalendar();\fR +\fBc\&.add(Calendar\&.YEAR, \-1);\fR +\fBc\&.add(Calendar\&.MONTH, 1);\fR +\fBc\&.add(Calendar\&.DATE, \-1);\fR +\fBreturn c\&.getTime()\fR + +.fi +.if n \{\ +.RE +.\} +2ÈÖÌܤηÁ¼°¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¤Ï¡¢Ç¯/·î/Æü¤È»þ´Ö:ʬ:ÉäÎ2¤Ä¤ÎÉôʬ¤Ç¸·Ì©¤Ê³«»Ï»þ¹ï¤òÀßÄꤷ¤Þ¤¹(Ãϸµ¤Î»þ´ÖÂÓ¤ò»ÈÍÑ)¡£¥æ¡¼¥¶¡¼¤Ï¡¢1¤Ä¤ÎÉôʬ¤Î¤ß¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢¤â¤¦1¤Ä¤ÎÉôʬ¤Ï¸½ºß¤ÎÆüÉÕ(¤Þ¤¿¤Ï»þ¹ï)¤ÈƱ¤¸¤Ë¤Ê¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¥æ¡¼¥¶¡¼¤Ï¡¢·Á¼°¤ÎÄêµÁ¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢·å¿ô¤ò¸·Ì©¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹(û¤¤¾ì¹ç¤Ï0¤ÇËä¤á¤Þ¤¹)¡£ÆüÉդȻþ¹ï¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¾õÂ֤ǡ¢2¤Ä¤ÎÉôʬ¤Î´Ö¤Ë¶õÇòʸ»ú¤¬1¤Ä(1¤Ä¤Î¤ß)¤¢¤ê¤Þ¤¹¡£»þ´Ö¤Ï¾ï¤Ë24»þ´Ö·Á¼°¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢³«»ÏÆüÉդϸ½ºß¤Î»þ¹ï¤Ë¤Ê¤ê¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Ï¡¢ºÇÂç¤Ç1²ó»ØÄê¤Ç¤­¤Þ¤¹¡£ +.sp +\fBvalDays\fR¤ÎÃͤˤϡ¢¾ÚÌÀ½ñ¤ÎÍ­¸úÆü¿ô¤ò»ØÄꤷ¤Þ¤¹(\fB\-startdate\fR¤Ç»ØÄꤵ¤ì¤¿ÆüÉÕ¡¢¤Þ¤¿¤Ï\fB\-startdate\fR¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¸½ºß¤ÎÆüÉÕ¤«¤é»Ï¤Þ¤ê¤Þ¤¹)¡£ +.sp +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï\fB\-genkey\fR¤È¤¤¤¦Ì¾Á°¤Ç¤·¤¿¡£¤³¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢°ú¤­Â³¤­¸Å¤¤Ì¾Á°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£º£¸å¤Ï¡¢¿·¤·¤¤Ì¾Á°\fB\-genkeypair\fR¤¬Í¥À褵¤ì¤Þ¤¹¡£ +.RE +.PP +\-genseckey +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-keyalg \fR\fB\fIkeyalg\fR\fR\fB} {\-keysize \fR\fB\fIkeysize\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +ÈëÌ©¸°¤òÀ¸À®¤·¡¢¤½¤ì¤ò¿·¤·¤¤\fBKeyStore\&.SecretKeyEntry\fR(\fBalias\fR¤ÇÆÃÄꤵ¤ì¤ë)Æâ¤Ë³ÊǼ¤·¤Þ¤¹¡£ +.sp +\fBkeyalg\fRÃͤϸ°¥Ú¥¢¤ÎÀ¸À®¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤ò¡¢\fBkeysize\fRÃͤÏÀ¸À®¤¹¤ë³Æ¸°¤Î¥µ¥¤¥º¤ò¡¢¤½¤ì¤¾¤ì»ØÄꤷ¤Þ¤¹¡£\fBkeypass\fRÃͤϡ¢ÈëÌ©¸°¤òÊݸ¤ë¥Ñ¥¹¥ï¡¼¥É¤Ç¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¤³¤Î¤È¤­¡¢[Return]¥­¡¼¤ò²¡¤¹¤È¡¢\fBkeystore\fR¤Î¥Ñ¥¹¥ï¡¼¥É¤ÈƱ¤¸¥Ñ¥¹¥ï¡¼¥É¤¬¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ËÀßÄꤵ¤ì¤Þ¤¹¡£\fBkeypass\fRÃͤϡ¢6ʸ»ú°Ê¾å¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-importcert +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-noprompt} {\-trustcacerts}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¥Õ¥¡¥¤¥ë\fBcert_file\fR¤«¤é¾ÚÌÀ½ñ¤Þ¤¿¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó(¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Î¾ì¹ç¤Ï¡¢PKCS#7·Á¼°¤Î±þÅú¤Þ¤¿¤Ï°ìÏ¢¤ÎX\&.509¾ÚÌÀ½ñ¤ÇÄ󶡤µ¤ì¤ë¤â¤Î)¤òÆÉ¤ß¹þ¤ß¡¢\fBalias\fR¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë\fBkeystore\fR¥¨¥ó¥È¥ê¤Ë³ÊǼ¤·¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fBstdin\fR¤«¤é¾ÚÌÀ½ñ¤Þ¤¿¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ +.sp +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢X\&.509 v1¡¢v2¡¢v3¤Î¾ÚÌÀ½ñ¡¢¤ª¤è¤ÓPKCS#7·Á¼°¤Î¾ÚÌÀ½ñ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ëPKCS#7·Á¼°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£¥¤¥ó¥Ý¡¼¥È¤¹¤ë¥Ç¡¼¥¿¤Ï¡¢¥Ð¥¤¥Ê¥êÉ乿²½Êý¼°¡¢¤Þ¤¿¤Ï½ÐÎϲÄǽÉ乿²½Êý¼°(Base64É乿²½¤È¤â¸Æ¤Ð¤ì¤ë)¤Î¤É¤Á¤é¤«¤ÇÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£½ÐÎϲÄǽÉ乿²½Êý¼°¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÉ乿²½Êý¼°¤Î¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï\fB\-\fR\fB\-\-\-\-BEGIN\fR¤Ç»Ï¤Þ¤ëʸ»úÎó¤Ç³«»Ï¤µ¤ì¡¢\fB\-\-\-\-\-END\fR¤Ç»Ï¤Þ¤ëʸ»úÎó¤Ç½ªÎ»¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¾ÚÌÀ½ñ¤Ï¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤ËÄɲ乤뤿¤á¡¢¤ª¤è¤Óǧ¾Ú¶É(CA)¤Ë¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤·¤¿·ë²Ì¤È¤·¤ÆCA¤«¤é¼õ¿®¤·¤¿¾ÚÌÀ½ñ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤¿¤á(\fB¤Î\fR\-certreq¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤ò»²¾È)¤È¤¤¤¦2¤Ä¤ÎÍýͳ¤Ç¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£ +.sp +¤É¤Á¤é¤Î¥¿¥¤¥×¤Î¥¤¥ó¥Ý¡¼¥È¤ò¹Ô¤¦¤«¤Ï¡¢\fB\-alias\fR¥ª¥×¥·¥ç¥ó¤ÎÃͤˤè¤Ã¤Æ»ØÄꤷ¤Þ¤¹¡£ÊÌ̾¤¬¥­¡¼¡¦¥¨¥ó¥È¥ê¤ò¥Ý¥¤¥ó¥È¤·¤Ê¤¤¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¥æ¡¼¥¶¡¼¤¬¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¥¨¥ó¥È¥ê¤òÄɲ䷤褦¤È¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢ÊÌ̾¤¬¥­¡¼¥¹¥È¥¢Æâ¤Ë¸ºß¤·¤Æ¤¤¤Ê¤¤¤³¤È¤¬É¬ÍפǤ¹¡£ÊÌ̾¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤ÎÊÌ̾¤Î¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¥¨¥é¡¼¤ò½ÐÎϤ·¡¢¾ÚÌÀ½ñ¤Î¥¤¥ó¥Ý¡¼¥È¤ò¹Ô¤¤¤Þ¤»¤ó¡£ÊÌ̾¤¬¥­¡¼¡¦¥¨¥ó¥È¥ê¤ò¥Ý¥¤¥ó¥È¤¹¤ë¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¥æ¡¼¥¶¡¼¤¬¾ÚÌÀ½ñ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤·¤Þ¤¹¡£ +.RE +.PP +\-importpassword +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¥Ñ¥¹¥Õ¥ì¡¼¥º¤ò¥¤¥ó¥Ý¡¼¥È¤·¡¢\fBalias\fR¤Ç¼±Ê̤µ¤ì¤ë¿·µ¬\fBKeyStore\&.SecretKeyEntry\fR¤Ë³ÊǼ¤·¤Þ¤¹¡£¥Ñ¥¹¥Õ¥ì¡¼¥º¤Ï¡¢É¸½àÆþÎÏ¥¹¥È¥ê¡¼¥à¤ò²ð¤·¤ÆÄ󶡤Ǥ­¤Þ¤¹¡£¤Þ¤¿¤Ï¡¢¥æ¡¼¥¶¡¼¤Ë¤½¤Î¥×¥í¥ó¥×¥È¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£\fBkeypass\fR¤Ï¡¢¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤ë¥Ñ¥¹¥Õ¥ì¡¼¥º¤ÎÊݸî¤Ë»ÈÍѤµ¤ì¤ë¥Ñ¥¹¥ï¡¼¥É¤Ç¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¤³¤Î¤È¤­¡¢[Return]¥­¡¼¤ò²¡¤¹¤È¡¢\fBkeystore\fR¤Î¥Ñ¥¹¥ï¡¼¥É¤ÈƱ¤¸¥Ñ¥¹¥ï¡¼¥É¤¬¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ËÀßÄꤵ¤ì¤Þ¤¹¡£\fBkeypass\fR¤Ï¡¢6ʸ»ú°Ê¾å¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-importkeystore +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-srcstoretype \fR\fB\fIsrcstoretype\fR\fR\fB} {\-deststoretype \fR\fB\fIdeststoretype\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-srcstorepass \fR\fB\fIsrcstorepass\fR\fR\fB] [\-deststorepass \fR\fB\fIdeststorepass\fR\fR\fB] {\-srcprotected}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-destprotected} \fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-srcalias \fR\fB\fIsrcalias\fR\fR\fB {\-destalias \fR\fB\fIdestalias\fR\fR\fB} [\-srckeypass \fR\fB\fIsrckeypass\fR\fR\fB]} \fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-destkeypass \fR\fB\fIdestkeypass\fR\fR\fB] {\-noprompt}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-srcProviderName \fR\fB\fIsrc_provider_name\fR\fR\fB} {\-destProviderName \fR\fB\fIdest_provider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¥½¡¼¥¹¡¦¥­¡¼¥¹¥È¥¢¤«¤é¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢¤Ø¡¢Ã±°ì¤Î¥¨¥ó¥È¥ê¤Þ¤¿¤Ï¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤ò¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£ +.sp +\fB\-srcalias\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¤½¤ÎÊÌ̾¤ÇÆÃÄꤵ¤ì¤ëñ°ì¤Î¥¨¥ó¥È¥ê¤ò¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢¤Ë¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£\fBdestalias\fR·Ðͳ¤Ç¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\fBsrcalias\fR¤¬¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¥½¡¼¥¹¤Î¥¨¥ó¥È¥ê¤¬¥Ñ¥¹¥ï¡¼¥É¤ÇÊݸ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢\fBsrckeypass\fR¤ò»ÈÍѤ·¤Æ¤½¤Î¥¨¥ó¥È¥ê¤¬²óÉü¤µ¤ì¤Þ¤¹¡£\fIsrckeypass\fR¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï\fBsrcstorepass\fR¤ò»ÈÍѤ·¤Æ¤½¤Î¥¨¥ó¥È¥ê¤ò²óÉü¤·¤è¤¦¤È¤·¤Þ¤¹¡£\fBsrcstorepass\fR¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤«Àµ¤·¤¯¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¥¿¡¼¥²¥Ã¥È¤Î¥¨¥ó¥È¥ê¤Ï\fBdestkeypass\fR¤Ë¤è¤Ã¤ÆÊݸ¤ì¤Þ¤¹¡£\fBdestkeypass\fR¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¿¡¼¥²¥Ã¥È¡¦¥¨¥ó¥È¥ê¤Ï¥½¡¼¥¹¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹¥ï¡¼¥É¤Ë¤è¤Ã¤ÆÊݸ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤Û¤È¤ó¤É¤Î¥µ¡¼¥É¡¦¥Ñ¡¼¥Æ¥£¡¦¥Ä¡¼¥ë¤Ç¤Ï¡¢PKCS #12¥­¡¼¥¹¥È¥¢¤Ç\fBstorepass\fR¤È\fBkeypass\fR¤¬Æ±¤¸¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¥Ä¡¼¥ë¤ÎPKCS #12¥­¡¼¥¹¥È¥¢¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢¾ï¤Ë\fB\-destkeypass\fR¤È\fB\-deststorepass\fR¤¬Æ±¤¸¤Ë¤Ê¤ë¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£ +.sp +\fB\-srcalias\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥½¡¼¥¹¡¦¥­¡¼¥¹¥È¥¢Æâ¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤¬¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢Æâ¤Ë¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£³Æ¥¿¡¼¥²¥Ã¥È¡¦¥¨¥ó¥È¥ê¤ÏÂбþ¤¹¤ë¥½¡¼¥¹¡¦¥¨¥ó¥È¥ê¤ÎÊÌ̾¤Î²¼¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¥½¡¼¥¹¤Î¥¨¥ó¥È¥ê¤¬¥Ñ¥¹¥ï¡¼¥É¤ÇÊݸ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢\fBsrcstorepass\fR¤ò»ÈÍѤ·¤Æ¤½¤Î¥¨¥ó¥È¥ê¤¬²óÉü¤µ¤ì¤Þ¤¹¡£\fBsrcstorepass\fR¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤«Àµ¤·¤¯¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¥½¡¼¥¹¡¦¥­¡¼¥¹¥È¥¢Æâ¤Î¤¢¤ë¥¨¥ó¥È¥ê¡¦¥¿¥¤¥×¤¬¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ä¡¢¤¢¤ë¥¨¥ó¥È¥ê¤ò¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢¤Ë³ÊǼ¤¹¤ëºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤Ï¤½¤Î¥¨¥ó¥È¥ê¤ò¥¹¥­¥Ã¥×¤·¤Æ½èÍý¤ò³¹Ô¤¹¤ë¤«¡¢¤Þ¤¿¤ÏÃæ»ß¤¹¤ë¤«¤ÎÁªÂò¤òµá¤á¤é¤ì¤Þ¤¹¡£¥¿¡¼¥²¥Ã¥È¡¦¥¨¥ó¥È¥ê¤Ï¥½¡¼¥¹¡¦¥¨¥ó¥È¥ê¤Î¥Ñ¥¹¥ï¡¼¥É¤Ë¤è¤Ã¤ÆÊݸ¤ì¤Þ¤¹¡£ +.sp +¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤¬¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢Æâ¤Ë¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤Ï¡¢¤½¤Î¥¨¥ó¥È¥ê¤ò¾å½ñ¤­¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï°Û¤Ê¤ëÊÌ̾¤Î²¼¤Ç¿·¤·¤¤¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¤«¤ÎÁªÂò¤òµá¤á¤é¤ì¤Þ¤¹¡£ +.sp + +\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤Ï¿·¤·¤¤¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤»¤ó¡£´û¸¤Î¥¨¥ó¥È¥ê¤¬¤½¤Î¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤Ç¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Ê¤¤¥¨¥ó¥È¥ê¤Ï¥¹¥­¥Ã¥×¤µ¤ì¡¢·Ù¹ð¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.RE +.PP +\-printcertreq +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-file \fR\fB\fIfile\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +PKCS#10·Á¼°¤Î¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤ÎÆâÍÆ¤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤Î¥ê¥¯¥¨¥¹¥È¤Ï¡¢\fBkeytool\fR +\fB\-certreq\fR¥³¥Þ¥ó¥É¤ÇÀ¸À®¤Ç¤­¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤«¤é¥ê¥¯¥¨¥¹¥È¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¥ê¥¯¥¨¥¹¥È¤Ïɸ½àÆþÎϤ«¤éÆÉ¤ß¼è¤é¤ì¤Þ¤¹¡£ +.RE +.PP +\-certreq +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-dname \fR\fB\fIdname\fR\fR\fB} {\-sigalg \fR\fB\fIsigalg\fR\fR\fB} {\-file \fR\fB\fIcertreq_file\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +PKCS#10·Á¼°¤ò»ÈÍѤ·¤Æ¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È(CSR)¤òÀ¸À®¤·¤Þ¤¹¡£ +.sp +CSR¤Ï¡¢¾ÚÌÀ½ñȯ¹Ô¶É(CA)¤ËÁ÷¿®¤¹¤ë¤³¤È¤òÌÜŪ¤È¤·¤¿¤â¤Î¤Ç¤¹¡£CA¤Ï¡¢¾ÚÌÀ½ñÍ×µá¼Ô¤ò(Ä̾ï¤Ï¥ª¥Õ¥é¥¤¥ó¤Ç)ǧ¾Ú¤·¡¢¾ÚÌÀ½ñ¤Þ¤¿¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òÁ÷¤êÊÖ¤·¤Þ¤¹¡£¤³¤Î¾ÚÌÀ½ñ¤Þ¤¿¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ï¡¢¥­¡¼¥¹¥È¥¢Æâ¤Î´û¸¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó(ºÇ½é¤Ï1¤Ä¤Î¼«¸Ê½ð̾¾ÚÌÀ½ñ¤«¤é¹½À®¤µ¤ì¤ë)¤ËÃÖ¤­´¹¤¨¤Æ»ÈÍѤ·¤Þ¤¹¡£ +.sp +alias¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÈëÌ©¸°¤Ï¡¢PKCS#10¾ÚÌÀ½ñ¥ê¥¯¥¨¥¹¥È¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ÈëÌ©¸°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Ë¤Ï¡¢Àµ¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤Ç\fBkeypass\fR¤ò»ØÄꤷ¤Æ¤ª¤é¤º¡¢ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£\fBdname\fR¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¬CSR¤Ç¼çÂΤȤ·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢ÊÌ̾¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿X\&.500¼±ÊÌ̾¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +\fBsigalg\fRÃͤˤϡ¢CSR¤Ë½ð̾¤òÉÕ¤±¤ë¤È¤­¤Ë»ÈÍѤ¹¤ë¥¢¥ë¥´¥ê¥º¥à¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +CSR¤Ï¡¢¥Õ¥¡¥¤¥ëcertreq_file¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fBstdout\fR¤ËCSR¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.sp +CA¤«¤é¤Î¥ì¥¹¥Ý¥ó¥¹¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤Ë¤Ï¡¢\fBimportcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.RE +.PP +\-exportcert +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-file \fR\fB\fIcert_file\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +\fIalias\fR¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¾ÚÌÀ½ñ¤ò¥­¡¼¥¹¥È¥¢¤«¤éÆÉ¤ß¹þ¤ß¡¢¥Õ¥¡¥¤¥ëcert_file¤Ë³ÊǼ¤·¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fBstdout\fR¤Ë¾ÚÌÀ½ñ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¾ÚÌÀ½ñ¤Ï¥Ð¥¤¥Ê¥êÉ乿²½¤Ç½ÐÎϤµ¤ì¤Þ¤¹¡£\fB\-rfc\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢½ÐÎϲÄǽÉ乿²½Êý¼°¤Î½ÐÎϤϥ¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ +.sp +\fBalias\fR¤¬¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢³ºÅö¤¹¤ë¾ÚÌÀ½ñ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢\fBalias\fR¤Ï¡¢´ØÏ¢ÉÕ¤±¤é¤ì¤¿¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò»ý¤Ä¸°¥¨¥ó¥È¥ê¤ò»²¾È¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢¥Á¥§¡¼¥óÆâ¤ÎºÇ½é¤Î¾ÚÌÀ½ñ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¤³¤Î¾ÚÌÀ½ñ¤Ï¡¢\fBalias\fR¤Ë¤è¤Ã¤ÆÉ½¤µ¤ì¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Ç¤¹¡£ +.sp +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï\fB\-export\fR¤È¤¤¤¦Ì¾Á°¤Ç¤·¤¿¡£¤³¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢°ú¤­Â³¤­¸Å¤¤Ì¾Á°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£º£¸å¤Ï¡¢¿·¤·¤¤Ì¾Á°\fB\-exportcert\fR¤¬Í¥À褵¤ì¤Þ¤¹¡£ +.RE +.PP +\-list +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v | \-rfc} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +\fBalias\fR¤ÇÆÃÄꤵ¤ì¤ë¥­¡¼¥¹¥È¥¢¡¦¥¨¥ó¥È¥ê¤ÎÆâÍÆ¤ò\fBstdout\fR¤Ë½ÐÎϤ·¤Þ¤¹¡£\fBalias\fR¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥­¡¼¥¹¥È¥¢Á´ÂÎ¤ÎÆâÍÆ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +.sp +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ÚÌÀ½ñ¤ÎSHA1¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤òɽ¼¨¤·¤Þ¤¹¡£ +\fB\-v\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢½êÍ­¼Ô¡¢È¯¹Ô¼Ô¡¢¥·¥ê¥¢¥ëÈֹ桢³ÈÄ¥µ¡Ç½¤Ê¤É¤ÎÉÕ²ÃŪ¤Ê¾ðÊó¤È¤È¤â¤Ë¡¢¿Í´Ö¤¬ÆÉ¤à¤³¤È¤Î¤Ç¤­¤ë·Á¼°¤Ç¾ÚÌÀ½ñ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£\fB\-rfc\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢½ÐÎϲÄǽÉ乿²½Êý¼°¤Ç¾ÚÌÀ½ñ¤ÎÆâÍÆ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£½ÐÎϲÄǽÉ乿²½Êý¼°¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +\fB\-v\fR¥ª¥×¥·¥ç¥ó¤È\fB\-rfc\fR¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ +.RE +.PP +\-printcert +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-file \fR\fB\fIcert_file\fR\fR\fB | \-sslserver \fR\fB\fIhost\fR\fR\fB[:\fR\fB\fIport\fR\fR\fB]} {\-jarfile \fR\fB\fIJAR_file\fR\fR\fB {\-rfc} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¥Õ¥¡¥¤¥ëcert_file¡¢host:port¤Ë¤¢¤ëSSL¥µ¡¼¥Ð¡¼¡¢¤Þ¤¿¤Ï½ð̾ÉÕ¤­JAR¥Õ¥¡¥¤¥ë\fBJAR_file\fR(\fB\-jarfile\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄê)¤«¤é¾ÚÌÀ½ñ¤òÆÉ¤ß¹þ¤ß¡¢¿Í´Ö¤¬ÆÉ¤à¤³¤È¤Î¤Ç¤­¤ë·Á¼°¤Ç¾ÚÌÀ½ñ¤ÎÆâÍÆ¤òɽ¼¨¤·¤Þ¤¹¡£¥Ý¡¼¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢É¸½à¤ÎHTTPS¥Ý¡¼¥È443¤¬ÁÛÄꤵ¤ì¤Þ¤¹¡£\fB\-sslserver\fR¤ª¤è¤Ó\-file¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¥¨¥é¡¼¤¬Êó¹ð¤µ¤ì¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\fBstdin\fR¤«¤é¾ÚÌÀ½ñ¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ +.sp +\fB\-rfc\fR¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½É¸½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢PEM¥â¡¼¥É¤Ç¾ÚÌÀ½ñ¤ò½ÐÎϤ·¤Þ¤¹¡£¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï\fBstdin\fR¤«¤é¾ÚÌÀ½ñ¤òÆÉ¤ß¹þ¤à¾ì¹ç¡¢¤½¤Î¾ÚÌÀ½ñ¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½É¸½à¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥Ð¥¤¥Ê¥êÉ乿²½Êý¼°¤Þ¤¿¤Ï½ÐÎϲÄǽÉ乿²½Êý¼°¤Çɽ¼¨¤Ç¤­¤Þ¤¹¡£ +.sp +SSL¥µ¡¼¥Ð¡¼¤¬¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÇØ¸å¤Ë¤¢¤ë¾ì¹ç¤Ï¡¢\fB\-J\-Dhttps\&.proxyHost=proxyhost\fR¤ª¤è¤Ó\fB\-J\-Dhttps\&.proxyPort=proxyport\fR¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Æ¡¢¥×¥í¥­¥·¡¦¥È¥ó¥Í¥ê¥ó¥°¤ò»ÈÍѤǤ­¤Þ¤¹¡£http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide\&.html¤Î +¡ÖJava Secure Socket Extension (JSSE) Reference Guide¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤ +.sp +\fBÃí°Õ:\fR +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥­¡¼¥¹¥È¥¢¤È¤Ï´Ø·¸¤Ê¤¯»ÈÍѤǤ­¤Þ¤¹¡£ +.RE +.PP +\-printcrl +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-file \fR\fB\fIcrl_\fR\fR\fB {\-v}\fR +.fi +.if n \{\ +.RE +.\} +¥Õ¥¡¥¤¥ë\fBcrl_\fR¤«¤é¾ÚÌÀ½ñ¼º¸ú¥ê¥¹¥È(CRL)¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£CRL¤Ï¡¢È¯¹Ô¤·¤¿CA¤Ë¤è¤Ã¤Æ¼º¸ú¤µ¤ì¤¿¥Ç¥¸¥¿¥ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤Ç¤¹¡£CA¤Ï¡¢\fBcrl_\fR¤òÀ¸À®¤·¤Þ¤¹¡£ +.sp +\fBÃí°Õ:\fR +¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥­¡¼¥¹¥È¥¢¤È¤Ï´Ø·¸¤Ê¤¯»ÈÍѤǤ­¤Þ¤¹¡£ +.RE +.PP +\-storepasswd +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-new \fR\fB\fInew_storepass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +¥­¡¼¥¹¥È¥¢¤ÎÆâÍÆ¤ÎÀ°¹çÀ­¤òÊݸ¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹¡£\fBnew_storepass\fR¤Ë¤Ï¡¢¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£new_storepass¤Ï¡¢6ʸ»ú°Ê¾å¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-keypasswd +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-keypass \fR\fB\fIold_keypass\fR\fR\fB] [\-new \fR\fB\fInew_keypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +\fBalias\fR¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ëÈó¸ø³«/ÈëÌ©¸°¤òÊݸ¤ë¤¿¤á¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¡¢\fBold_keypass\fR¤«¤é\fBnew_keypass\fR¤ËÊѹ¹¤·¤Þ¤¹¡£new_keypass¤Ï¡¢6ʸ»ú°Ê¾å¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¥³¥Þ¥ó¥É¹Ô¤Ç\fB\-keypass\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤ª¤é¤º¡¢¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.sp +¥³¥Þ¥ó¥É¹Ô¤Ç\fB\-new\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.PP +\-delete +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB[\-alias \fR\fB\fIalias\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB} {\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerName \fR\fB\fIprovider_name\fR\fR\fB} \fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-v} {\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +\fBalias\fR¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë¥¨¥ó¥È¥ê¤ò¥­¡¼¥¹¥È¥¢¤«¤éºï½ü¤·¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤ÇÊÌ̾¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ÊÌ̾¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.PP +\-changealias +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-alias \fR\fB\fIalias\fR\fR\fB} [\-destalias \fR\fB\fIdestalias\fR\fR\fB] [\-keypass \fR\fB\fIkeypass\fR\fR\fB] {\-storetype \fR\fB\fIstoretype\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-keystore \fR\fB\fIkeystore\fR\fR\fB} [\-storepass \fR\fB\fIstorepass\fR\fR\fB] {\-providerName \fR\fB\fIprovider_name\fR\fR\fB}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-providerClass \fR\fB\fIprovider_class_name\fR\fR\fB {\-providerArg \fR\fB\fIprovider_arg\fR\fR\fB}} {\-v}\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB{\-protected} {\-Jjavaoption}\fR +.fi +.if n \{\ +.RE +.\} +»ØÄꤵ¤ì¤¿\fBalias\fR¤«¤é¿·¤·¤¤ÊÌ̾\fBdestalias\fR¤Ø¡¢´û¸¤Î¥­¡¼¥¹¥È¥¢¡¦¥¨¥ó¥È¥ê¤ò°Üư¤·¤Þ¤¹¡£¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¸µ¤Î¥¨¥ó¥È¥ê¤¬¥¨¥ó¥È¥ê¡¦¥Ñ¥¹¥ï¡¼¥É¤ÇÊݸ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢\fB\-keypass\fR¥ª¥×¥·¥ç¥ó¤Ç¤½¤Î¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¸°¥Ñ¥¹¥ï¡¼¥É¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢\fBstorepass\fR(»ØÄꤵ¤ì¤¿¾ì¹ç)¤¬¤Þ¤º»î¤ß¤é¤ì¤Þ¤¹¡£¤½¤Î»î¤ß¤¬¼ºÇÔ¤¹¤ë¤È¡¢¥æ¡¼¥¶¡¼¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.PP +\-help +.RS 4 +´ðËÜŪ¤Ê¥³¥Þ¥ó¥É¤È¤½¤Î¥ª¥×¥·¥ç¥ó¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ +.sp +ÆÃÄê¤Î¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤ò»²¾È¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤ËÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: +\fBkeytool \-command_name \-help\fR¡£\fBcommand_name\fR¤Ï¥³¥Þ¥ó¥É¤Î̾Á°¤Ç¤¹¡£ +.RE +.SH "Îã" +.PP +¤³¤ÎÎã¤Ç¤Ï¡¢¸ø³«/ÈëÌ©¸°¤Î¥Ú¥¢¤ª¤è¤Ó¿®Íê¤Ç¤­¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤«¤é¤Î¾ÚÌÀ½ñ¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥­¡¼¥¹¥È¥¢¤òºîÀ®¤¹¤ë¼ê½ç¤ò¼¨¤·¤Þ¤¹¡£ +.SS "¸°¤Î¥Ú¥¢¤ÎÀ¸À®" +.PP +¤Þ¤º¡¢¥­¡¼¥¹¥È¥¢¤òºîÀ®¤·¤Æ¸°¤Î¥Ú¥¢¤òÀ¸À®¤·¤Þ¤¹¡£Ã±°ì¹Ô¤ËÆþÎϤ¹¤ë¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò»ÈÍѤǤ­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US"\fR +\fB \-alias business \-keypass \fR +\fB \-keystore /working/mykeystore\fR +\fB \-storepass \-validity 180\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¥³¥Þ¥ó¥É¤Ï¡¢working¥Ç¥£¥ì¥¯¥È¥ê¤Ë\fBmykeystore\fR¤È¤¤¤¦Ì¾Á°¤Î¥­¡¼¥¹¥È¥¢¤òºîÀ®¤·(¥­¡¼¥¹¥È¥¢¤Ï¤Þ¤À¸ºß¤·¤Æ¤¤¤Ê¤¤¤È²¾Äê)¡¢ºîÀ®¤·¤¿¥­¡¼¥¹¥È¥¢¤Ë¡¢\fB\fR¤Ç»ØÄꤷ¤¿¥Ñ¥¹¥ï¡¼¥É¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£À¸À®¤¹¤ë¸ø³«¸°¤ÈÈëÌ©¸°¤Î¥Ú¥¢¤ËÂбþ¤¹¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î¡Ö¼±ÊÌ̾¡×¤Ï¡¢Ä̾Τ¬Mark Jones¡¢ÁÈ¿¥Ã±°Ì¤¬Java¡¢ÁÈ¿¥¤¬Oracle¡¢2ʸ»ú¤Î¹ñÈֹ椬US¤Ç¤¹¡£¸ø³«¸°¤ÈÈëÌ©¸°¤Î¥µ¥¤¥º¤Ï¤É¤Á¤é¤â1024¥Ó¥Ã¥È¤Ç¡¢¸°¤ÎºîÀ®¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎDSA¸°À¸À®¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Þ¤¹¡£ +.PP +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÎSHA1withDSA½ð̾¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¡¢¸ø³«¸°¤È¼±ÊÌ̾¾ðÊó¤ò´Þ¤à¼«¸Ê½ð̾¾ÚÌÀ½ñ¤òºîÀ®¤·¤Þ¤¹¡£¾ÚÌÀ½ñ¤ÎÍ­¸ú´ü´Ö¤Ï180Æü¤Ç¤¹¡£¾ÚÌÀ½ñ¤Ï¡¢ÊÌ̾\fBbusiness\fR¤ÇÆÃÄꤵ¤ì¤ë¥­¡¼¥¹¥È¥¢¡¦¥¨¥ó¥È¥êÆâ¤ÎÈëÌ©¸°¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Þ¤¹¡£ÈëÌ©¸°¤Ë¤Ï¡¢\fB\fR¤Ç»ØÄꤷ¤¿¥Ñ¥¹¥ï¡¼¥É¤¬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£ +.PP +¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥³¥Þ¥ó¥É¤ÏÂçÉý¤Ëû¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥ª¥×¥·¥ç¥ó¤ÏÉÔÍפǤ¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤò»ý¤Ä¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¥Ç¥Õ¥©¥ë¥ÈÃͤ¬»ÈÍѤµ¤ì¤Þ¤¹¡£É¬¿ÜÃÍ¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£»ÈÍѲÄǽ¤ÊÃͤϼ¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-genkeypair\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¤³¤Î¾ì¹ç¤Ï¡¢\fBmykey\fR¤È¤¤¤¦ÊÌ̾¤Ç¥­¡¼¥¹¥È¥¢¡¦¥¨¥ó¥È¥ê¤¬ºîÀ®¤µ¤ì¡¢¿·¤·¤¯À¸À®¤µ¤ì¤¿¸°¤Î¥Ú¥¢¡¢¤ª¤è¤Ó90Æü´ÖÍ­¸ú¤Ê¾ÚÌÀ½ñ¤¬¤³¤Î¥¨¥ó¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¤³¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î\fB\&.keystore\fR¤È¤¤¤¦Ì¾Á°¤Î¥­¡¼¥¹¥È¥¢¤ËÃÖ¤«¤ì¤Þ¤¹¡£¥­¡¼¥¹¥È¥¢¤Ï¡¢¤Þ¤À¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¼±ÊÌ̾¾ðÊó¡¢¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤ª¤è¤ÓÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.PP +°Ê¹ß¤Ç¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤Ç\fB\-genkeypair\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤â¤Î¤È¤·¤ÆÎã¤ò¼¨¤·¤Þ¤¹¡£¾ðÊó¤ÎÆþÎϤòµá¤á¤é¤ì¤¿¾ì¹ç¤Ï¡¢ºÇ½é¤Ë¼¨¤·¤¿\fB\-genkeypair\fR¥³¥Þ¥ó¥É¤ÎÃͤòÆþÎϤ·¤¿¤â¤Î¤È¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¼±ÊÌ̾¤Ë¤Ï\fBcn=Mark Jones\fR¡¢\fBou=Java\fR¡¢\fBo=Oracle\fR¡¢\fBc=US\fR¤È»ØÄꤷ¤Þ¤¹¡£ +.SS "CA¤«¤é¤Î½ð̾ÉÕ¤­¾ÚÌÀ½ñ¤Î¥ê¥¯¥¨¥¹¥È" +.PP +¼«¸Ê½ð̾¾ÚÌÀ½ñ¤òºîÀ®¤¹¤ë¸°¤Î¥Ú¥¢¤ÎÀ¸À®¡£¾ÚÌÀ½ñ¤Ëǧ¾Ú¶É(CA)¤Î½ð̾¤¬ÉÕ¤¤¤Æ¤¤¤ì¤Ð¡¢Â¾¤Î¥æ¡¼¥¶¡¼¤«¤é¾ÚÌÀ½ñ¤¬¿®Íꤵ¤ì¤ë²ÄǽÀ­¤â¹â¤¯¤Ê¤ê¤Þ¤¹¡£CA¤Î½ð̾¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢¤Þ¤º¡¢¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È(CSR)¤òÀ¸À®¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-certreq \-file MarkJ\&.csr\fR + +.fi +.if n \{\ +.RE +.\} +.PP +CSR(¥Ç¥Õ¥©¥ë¥ÈÊÌ̾\fBmykey\fR¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤ÎCSR)¤¬ºîÀ®¤µ¤ì¡¢MarkJ\&.csr¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤òCA (VeriSign¤Ê¤É)¤ËÄó½Ð¤·¤Þ¤¹¡£CA¤ÏÍ×µá¼Ô¤ò(Ä̾ï¤Ï¥ª¥Õ¥é¥¤¥ó¤Ç)ǧ¾Ú¤·¡¢Í×µá¼Ô¤Î¸ø³«¸°¤òǧ¾Ú¤·¤¿½ð̾ÉÕ¤­¤Î¾ÚÌÀ½ñ¤òÁ÷¤êÊÖ¤·¤Þ¤¹¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢CA¤¬¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó¤òÊÖ¤¹¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó¤Ç¤Ï¡¢³Æ¾ÚÌÀ½ñ¤¬¥Á¥§¡¼¥óÆâ¤Î¤½¤ÎÁ°¤Î½ð̾¼Ô¤Î¸ø³«¸°¤òǧ¾Ú¤·¤Þ¤¹¡£ +.SS "CA¤«¤é¤Î¾ÚÌÀ½ñ¤Î¥¤¥ó¥Ý¡¼¥È" +.PP +ºîÀ®¤·¤¿¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ï¡¢¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ÇÃÖ¤­´¹¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ç¤Ï¡¢³Æ¾ÚÌÀ½ñ¤¬¡¢¡Ö¥ë¡¼¥È¡×CA¤òµ¯ÅÀ¤È¤¹¤ë¥Á¥§¡¼¥óÆâ¤Î¼¡¤Î¾ÚÌÀ½ñ¤Î½ð̾¼Ô¤Î¸ø³«¸°¤òǧ¾Ú¤·¤Þ¤¹¡£ +.PP +CA¤«¤é¤Î¾ÚÌÀ½ñ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤Ë¤Ï¡¢¥­¡¼¥¹¥È¥¢¤«¡¢\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ëÆâ¤Ë1¤Ä°Ê¾å¤Î¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤¬¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥É¤Î\fB\-importcert\fR¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¾ÚÌÀ±þÅú¤¬¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Î¾ì¹ç¤Ï¡¢¥Á¥§¡¼¥ó¤ÎºÇ¾å°Ì¾ÚÌÀ½ñ¤¬É¬ÍפǤ¹¡£CA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¾ÚÌÀ½ñ±þÅú¤¬Ã±°ì¤Î¾ÚÌÀ½ñ¤Î¾ì¹ç¤Ï¡¢È¯¹ÔCA(½ð̾¤·¤¿)¤Î¾ÚÌÀ½ñ¤¬É¬ÍפǤ¹¡£¤½¤Î¾ÚÌÀ½ñ¤¬¼«¸Ê½ð̾¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î½ð̾¼Ô¤Î¾ÚÌÀ½ñ¤¬É¬ÍפǤ¢¤ê¡¢¤³¤Î¤è¤¦¤Ë¤·¤Æ¼«¸Ê½ð̾¥ë¡¼¥È¾ÚÌÀ½ñ¤¬É¬Íפˤʤê¤Þ¤¹¡£ +.RE +.PP +\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎVeriSign¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤ò´Þ¤ó¤À¾õÂ֤ǽв٤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢VeriSign¤Î¾ÚÌÀ½ñ¤ò¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¤·¤Æ¥­¡¼¥¹¥È¥¢Æâ¤Ë¥¤¥ó¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤¿¤À¤·¡¢Â¾¤ÎCA¤ËÂФ·¤Æ½ð̾ÉÕ¤­¾ÚÌÀ½ñ¤ò¥ê¥¯¥¨¥¹¥È¤·¤Æ¤¤¤Æ¡¢¤³¤ÎCA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤¬¡¢\fBcacerts\fR¤Ë¤Þ¤ÀÄɲäµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢³ºÅö¤¹¤ëCA¤«¤é¤Î¾ÚÌÀ½ñ¤ò¡¢¡Ö¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¡×¤È¤·¤Æ¥¤¥ó¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.PP +Ä̾CA¤«¤é¤Î¾ÚÌÀ½ñ¤Ï¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¡¢¤Þ¤¿¤Ï¾¤ÎCA¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¤¿¾ÚÌÀ½ñ¤Ç¤¹(¸å¼Ô¤Î¾ì¹ç¤Ï¡¢³ºÅö¤¹¤ë¾¤ÎCA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤¬É¬Í×)¡£ABC, Inc\&.,¤¬CA¤Ç¡¢ABC¤«¤é¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ç¤¢¤ëA\fBBCCA\&.cer\fR¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤·¤¿¤È¤·¤Þ¤¹(¤³¤Î¾ÚÌÀ½ñ¤ÏCA¤Î¸ø³«¸°¤òǧ¾Ú¤·¤Þ¤¹)¡£¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¤·¤Æ¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È¤­¤Ï¡¢¾ÚÌÀ½ñ¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤º¡¢¾ÚÌÀ½ñ¤ÎÆâÍÆ¤òɽ¼¨¤·¡¢\fBkeytool \-printcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤«¡¢¤Þ¤¿¤Ï\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤Ç\fBkeytool \-importcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¡¢É½¼¨¤µ¤ì¤¿¾ÚÌÀ½ñ¤Î¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬¡¢´üÂÔ¤µ¤ì¤ë¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È°ìÃפ¹¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£¾ÚÌÀ½ñ¤òÁ÷¿®¤·¤¿¿Íʪ¤ËÏ¢Íí¤·¡¢¤³¤Î¿Íʪ¤¬Ä󼨤·¤¿(¤Þ¤¿¤Ï°ÂÁ´¤Ê¸ø³«¸°¤Î¥ê¥Ý¥¸¥È¥ê¤Ë¤è¤Ã¤ÆÄ󼨤µ¤ì¤ë)¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¡¢¾å¤Î¥³¥Þ¥ó¥É¤Çɽ¼¨¤µ¤ì¤¿¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¤òÈæ³Ó¤·¤Þ¤¹¡£¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬°ìÃפ¹¤ì¤Ð¡¢Á÷¿®ÅÓÃæ¤Ç¾¤Î²¿¼Ô¤«(¹¶·â¼Ô¤Ê¤É)¤Ë¤è¤ë¾ÚÌÀ½ñ¤Î¤¹¤êÂØ¤¨¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£Á÷¿®ÅÓÃæ¤Ç¤³¤Î¼ï¤Î¹¶·â¤¬¹Ô¤ï¤ì¤Æ¤¤¤¿¾ì¹ç¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤ï¤º¤Ë¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È¡¢¹¶·â¼Ô¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¤â¤Î¤ò¿®Íꤹ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +¾ÚÌÀ½ñ¤¬Í­¸ú¤Ç¤¢¤ë¤È¿®Íꤹ¤ë¾ì¹ç¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤Ç¥­¡¼¥¹¥È¥¢¤ËÄɲäǤ­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-importcert \-alias abc \-file ABCCA\&.cer\fR + +.fi +.if n \{\ +.RE +.\} +.PP +ABCCA\&.cer¥Õ¥¡¥¤¥ë¤Î¥Ç¡¼¥¿¤ò´Þ¤à¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥¨¥ó¥È¥ê¤¬¥­¡¼¥¹¥È¥¢Æâ¤ËºîÀ®¤µ¤ì¡¢³ºÅö¤¹¤ë¥¨¥ó¥È¥ê¤Ë\fBabc\fR¤È¤¤¤¦ÊÌ̾¤¬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£ +.SS "CA¤«¤é¤Î¾ÚÌÀ½ñ±þÅú¤Î¥¤¥ó¥Ý¡¼¥È" +.PP +¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È¤ÎÄó½ÐÀè¤ÎCA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿¸å¤Ï(¤Þ¤¿¤ÏƱ¼ï¤Î¾ÚÌÀ½ñ¤¬¤¹¤Ç¤Ëcacerts¥Õ¥¡¥¤¥ëÆâ¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ï)¡¢¾ÚÌÀ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤·¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤ò¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥Á¥§¡¼¥ó¤Ï¡¢CA¤Î±þÅú¤¬¥Á¥§¡¼¥ó¤Î¾ì¹ç¤Ë¡¢¥ê¥¯¥¨¥¹¥È¤ËÂФ¹¤ë¥ì¥¹¥Ý¥ó¥¹¤È¤·¤ÆCA¤«¤éÁ÷¤êÊÖ¤µ¤ì¤¿¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ç¤¹¡£¤Þ¤¿¡¢CA¤Î±þÅú¤¬Ã±°ì¤Î¾ÚÌÀ½ñ¤Î¾ì¹ç¤Ï¡¢¤³¤Î¾ÚÌÀ±þÅú¤È¡¢¥¤¥ó¥Ý¡¼¥ÈÀè¤Î¥­¡¼¥¹¥È¥¢Æâ¤Þ¤¿¤Ï\fBcacerts\fR¥­¡¼¥¹¥È¥¢¥Õ¥¡¥¤¥ëÆâ¤Ë¤¹¤Ç¤Ë¸ºß¤¹¤ë¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¤ò»ÈÍѤ·¤Æ¹½ÃÛ¤·¤¿¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ç¤¹¡£ +.PP +¤¿¤È¤¨¤Ð¡¢¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È¤òVeriSign¤ËÁ÷¿®¤¹¤ë¾ì¹ç¡¢Á÷¤êÊÖ¤µ¤ì¤¿¾ÚÌÀ½ñ¤Î̾Á°¤¬VSMarkJ\&.cer¤À¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Æ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-importcert \-trustcacerts \-file VSMarkJ\&.cer\fR + +.fi +.if n \{\ +.RE +.\} +.SS "¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Î¥¨¥¯¥¹¥Ý¡¼¥È" +.PP +\fBjarsigner\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆJava Archive (JAR)¥Õ¥¡¥¤¥ë¤Ë½ð̾¤¹¤ë¾ì¹ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤Ï½ð̾¤òǧ¾Ú¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥¯¥é¥¤¥¢¥ó¥È¤¬½ð̾¤òǧ¾Ú¤¹¤ëÊýË¡¤Î1¤Ä¤Ë¡¢¤Þ¤º¼«Ê¬¤Î¸ø³«¸°¤Î¾ÚÌÀ½ñ¤ò¿®Íê¤Ç¤­¤ë¥¨¥ó¥È¥ê¤È¤·¤Æ¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¡¼¥¹¥È¥¢¤Ë¥¤¥ó¥Ý¡¼¥È¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ +.PP +¤½¤Î¤¿¤á¤Ë¤Ï¡¢¾ÚÌÀ½ñ¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤ËÄ󶡤·¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¢MJ\&.cer¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë¾ÚÌÀ½ñ¤ò¥³¥Ô¡¼¤Ç¤­¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥¨¥ó¥È¥ê¤ËÊÌ̾\fBmykey\fR¤¬¤¢¤ë¤È²¾Äꤷ¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-exportcert \-alias mykey \-file MJ\&.cer\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¾ÚÌÀ½ñ¤È½ð̾ÉÕ¤­JAR¥Õ¥¡¥¤¥ë¤òÆþ¼ê¤·¤¿¥¯¥é¥¤¥¢¥ó¥È¤Ï¡¢\fBjarsigner\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ½ð̾¤òǧ¾Ú¤Ç¤­¤Þ¤¹¡£ +.SS "¥­¡¼¥¹¥È¥¢¤Î¥¤¥ó¥Ý¡¼¥È" +.PP +¥³¥Þ¥ó¥É\fBimportkeystore\fR¤ò»ÈÍѤ¹¤ì¤Ð¡¢¤¢¤ë¥­¡¼¥¹¥È¥¢¤ÎÁ´ÂΤòÊ̤Υ­¡¼¥¹¥È¥¢Æâ¤Ë¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢¸°¤ä¾ÚÌÀ½ñ¤È¤¤¤Ã¤¿¥½¡¼¥¹¥­¡¼¥¹¥È¥¢Æâ¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤¬¡¢Ã±°ì¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥¿¡¼¥²¥Ã¥È¥­¡¼¥¹¥È¥¢Æâ¤Ë¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ì¤Ð¡¢°Û¤Ê¤ë¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢Æâ¤Ë´Þ¤Þ¤ì¤ë¥¨¥ó¥È¥ê¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥¤¥ó¥Ý¡¼¥È»þ¤Ë¤Ï¡¢¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢Æâ¤Î¿·¤·¤¤¥¨¥ó¥È¥ê¤Ï¤¹¤Ù¤Æ¡¢¸µ¤ÈƱ¤¸ÊÌ̾¤ª¤è¤Ó(ÈëÌ©¸°¤äÈëÌ©¸°¤Î¾ì¹ç¤Ï)ÊݸîÍѥѥ¹¥ï¡¼¥É¤ò»ý¤Á¤Þ¤¹¡£¥½¡¼¥¹¥­¡¼¥¹¥È¥¢Æâ¤ÎÈó¸ø³«/ÈëÌ©¸°¤ò¥ê¥«¥Ð¥ê¤Ç¤­¤Ê¤¤¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¥æ¡¼¥¶¡¼¤Ë¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤Þ¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢ÊÌ̾¤Î½ÅÊ£¤ò¸¡½Ð¤¹¤ë¤È¡¢¥æ¡¼¥¶¡¼¤Ë¿·¤·¤¤ÊÌ̾¤ÎÆþÎϤòµá¤á¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤Ï¡¢¿·¤·¤¤ÊÌ̾¤ò»ØÄꤹ¤ë¤³¤È¤â¡¢Ã±½ã¤Ë´û¸¤ÎÊÌ̾¤Î¾å½ñ¤­¤ò\fBkeytool\fR¥³¥Þ¥ó¥É¤Ëµö²Ä¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.PP +¤¿¤È¤¨¤Ð¡¢Ä̾ï¤ÎJKS¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢key\&.jksÆâ¤Î¥¨¥ó¥È¥ê¤òPKCS#11¥¿¥¤¥×¤Î¥Ï¡¼¥É¥¦¥§¥¢¡¦¥Ù¡¼¥¹¤Î¥­¡¼¥¹¥È¥¢Æâ¤Ë¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-importkeystore\fR +\fB \-srckeystore key\&.jks \-destkeystore NONE\fR +\fB \-srcstoretype JKS \-deststoretype PKCS11\fR +\fB \-srcstorepass \fR +\fB \-deststorepass \fR + +.fi +.if n \{\ +.RE +.\} +.PP +¤Þ¤¿¡¢\fBimportkeystore\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ì¤Ð¡¢¤¢¤ë¥½¡¼¥¹¡¦¥­¡¼¥¹¥È¥¢Æâ¤Îñ°ì¤Î¥¨¥ó¥È¥ê¤ò¥¿¡¼¥²¥Ã¥È¡¦¥­¡¼¥¹¥È¥¢¤Ë¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢Á°Îã¤Î¥ª¥×¥·¥ç¥ó¤Ë²Ã¤¨¤Æ¡¢¥¤¥ó¥Ý¡¼¥È¤¹¤ëÊÌ̾¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£\fB\-srcalias\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢¥¿¡¼¥²¥Ã¥ÈÊÌ̾¤â¥³¥Þ¥ó¥É¹Ô¤«¤é»ØÄê¤Ç¤­¤ë¤Û¤«¡¢ÈëÌ©/ÈëÌ©¸°¤ÎÊݸîÍѥѥ¹¥ï¡¼¥É¤ä¥¿¡¼¥²¥Ã¥ÈÊݸîÍѥѥ¹¥ï¡¼¥É¤â»ØÄê¤Ç¤­¤Þ¤¹¡£¤½¤ÎÊýË¡¤ò¼¨¤¹¥³¥Þ¥ó¥É¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-importkeystore\fR +\fB \-srckeystore key\&.jks \-destkeystore NONE\fR +\fB \-srcstoretype JKS \-deststoretype PKCS11\fR +\fB \-srcstorepass \fR +\fB \-deststorepass \fR +\fB \-srcalias myprivatekey \-destalias myoldprivatekey\fR +\fB \-srckeypass \fR +\fB \-destkeypass \fR +\fB \-noprompt\fR + +.fi +.if n \{\ +.RE +.\} +.SS "SSL¥µ¡¼¥Ð¡¼¤Î¾ÚÌÀ½ñ¤ÎÀ¸À®" +.PP +¼¡¤Ë¡¢3¤Ä¤Î¥¨¥ó¥Æ¥£¥Æ¥£¡¢¤Ä¤Þ¤ê¥ë¡¼¥ÈCA(\fBroot\fR)¡¢Ãæ´ÖCA(\fBca\fR)¤ª¤è¤ÓSSL¥µ¡¼¥Ð¡¼(\fBserver\fR)ÍѤθ°¥Ú¥¢¤È¾ÚÌÀ½ñ¤òÀ¸À®¤¹¤ë\fBkeytool\fR¥³¥Þ¥ó¥É¤ò¼¨¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¾ÚÌÀ½ñ¤òƱ¤¸¥­¡¼¥¹¥È¥¢¤Ë³ÊǼ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤ÎÎã¤Ç¤Ï¡¢RSA¤¬¿ä¾©¤µ¤ì¤ë¸°¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-genkeypair \-keystore root\&.jks \-alias root \-ext bc:c\fR +\fBkeytool \-genkeypair \-keystore ca\&.jks \-alias ca \-ext bc:c\fR +\fBkeytool \-genkeypair \-keystore server\&.jks \-alias server\fR +\fB \fR +\fBkeytool \-keystore root\&.jks \-alias root \-exportcert \-rfc > root\&.pem\fR +\fB \fR +\fBkeytool \-storepass \-keystore ca\&.jks \-certreq \-alias ca |\fR +\fB keytool \-storepass \-keystore root\&.jks\fR +\fB \-gencert \-alias root \-ext BC=0 \-rfc > ca\&.pem\fR +\fBkeytool \-keystore ca\&.jks \-importcert \-alias ca \-file ca\&.pem\fR +\fB \fR +\fBkeytool \-storepass \-keystore server\&.jks \-certreq \-alias server |\fR +\fB keytool \-storepass \-keystore ca\&.jks \-gencert \-alias ca\fR +\fB \-ext ku:c=dig,kE \-rfc > server\&.pem\fR +\fBcat root\&.pem ca\&.pem server\&.pem |\fR +\fB keytool \-keystore server\&.jks \-importcert \-alias server\fR + +.fi +.if n \{\ +.RE +.\} +.SH "ÍѸì" +.PP +¥­¡¼¥¹¥È¥¢ +.RS 4 +¥­¡¼¥¹¥È¥¢¤Ï¡¢°Å¹æ²½¤Î¸°¤È¾ÚÌÀ½ñ¤ò³ÊǼ¤¹¤ë¤¿¤á¤Îµ¡Ç½¤Ç¤¹¡£ +.RE +.PP +¥­¡¼¥¹¥È¥¢¤Î¥¨¥ó¥È¥ê +.RS 4 +¥­¡¼¥¹¥È¥¢¤Ë¤Ï°Û¤Ê¤ë¥¿¥¤¥×¤Î¥¨¥ó¥È¥ê¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤ÇºÇ¤âŬÍÑÈϰϤι­¤¤¥¨¥ó¥È¥ê¡¦¥¿¥¤¥×¤Ï¡¢¼¡¤Î2¤Ä¤Ç¤¹¡£ +.sp +\fB¸°¤Î¥¨¥ó¥È¥ê\fR +\- ³Æ¥¨¥ó¥È¥ê¤Ï¡¢Èó¾ï¤Ë½ÅÍפʰŹ沽¤Î¸°¤Î¾ðÊó¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢µö²Ä¤·¤Æ¤¤¤Ê¤¤¥¢¥¯¥»¥¹¤òËɤ°¤¿¤á¤Ë¡¢Êݸ¤ì¤¿·Á¤Ç³ÊǼ¤µ¤ì¤Þ¤¹¡£°ìÈ̤ˡ¢¤³¤Î¼ï¤Î¥¨¥ó¥È¥ê¤È¤·¤Æ³ÊǼ¤µ¤ì¤ë¸°¤Ï¡¢ÈëÌ©¸°¤«¡¢Âбþ¤¹¤ë¸ø³«¸°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òȼ¤¦ÈëÌ©¸°¤Ç¤¹¡£¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤¬¤³¤ÎξÊý¤Î¥¿¥¤¥×¤Î¥¨¥ó¥È¥ê¤ò½èÍý¤Ç¤­¤ë¤Î¤ËÂФ·¡¢\fBjarsigner\fR¥Ä¡¼¥ë¤Ï¸å¼Ô¤Î¥¿¥¤¥×¤Î¥¨¥ó¥È¥ê¡¢¤Ä¤Þ¤êÈëÌ©¸°¤È¤½¤ì¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Î¤ß¤ò½èÍý¤·¤Þ¤¹¡£ +.sp +\fB¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥¨¥ó¥È¥ê\fR: ³Æ¥¨¥ó¥È¥ê¤Ï¡¢Âè»°¼Ô¤«¤é¤Î¸ø³«¸°¾ÚÌÀ½ñ¤ò1¤Ä´Þ¤ó¤Ç¤¤¤Þ¤¹¡£¤³¤Î¥¨¥ó¥È¥ê¤Ï¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¤½¤ì¤Ï¡¢¾ÚÌÀ½ñÆâ¤Î¸ø³«¸°¤¬¡¢¾ÚÌÀ½ñ¤ÎSubject(½êÍ­¼Ô)¤Ë¤è¤Ã¤ÆÆÃÄꤵ¤ì¤ë¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤ËͳÍ褹¤ë¤â¤Î¤Ç¤¢¤ë¤³¤È¤ò¡¢¥­¡¼¥¹¥È¥¢¤Î½êÍ­¼Ô¤¬¿®Íꤹ¤ë¤«¤é¤Ç¤¹¡£¾ÚÌÀ½ñ¤Îȯ¹Ô¼Ô¤Ï¡¢¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤ÎÆâÍÆ¤òÊݾڤ·¤Þ¤¹¡£ +.RE +.PP +¥­¡¼¥¹¥È¥¢¤ÎÊÌ̾ +.RS 4 +¥­¡¼¥¹¥È¥¢¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê(¸°¤ª¤è¤Ó¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¥¨¥ó¥È¥ê)¤Ï¡¢°ì°Õ¤ÎÊÌ̾¤ò²ð¤·¤Æ¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£ +.sp +ÊÌ̾¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢\fB\-genseckey\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÈëÌ©¸°¤òÀ¸À®¤·¤¿¤ê¡¢\fB\-genkeypair\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¸°¥Ú¥¢(¸ø³«¸°¤ÈÈëÌ©¸°)¤òÀ¸À®¤·¤¿¤ê¡¢\fB\-importcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¾ÚÌÀ½ñ¤Þ¤¿¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤ËÄɲ乤ë¤Ê¤É¡¢ÆÃÄê¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤ò¥­¡¼¥¹¥È¥¢¤ËÄɲ乤ë¾ì¹ç¤Ç¤¹¡£¤³¤ì°Ê¸å¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¥¨¥ó¥Æ¥£¥Æ¥£¤ò»²¾È¤¹¤ë¾ì¹ç¤Ï¡¢¤³¤Î¤È¤­¤Ë»ØÄꤷ¤¿ÊÌ̾¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¤¿¤È¤¨¤Ð¡¢\fBduke\fR¤È¤¤¤¦ÊÌ̾¤ò»ÈÍѤ·¤Æ¿·¤·¤¤¸ø³«¸°¤ÈÈëÌ©¸°¤Î¥Ú¥¢¤òÀ¸À®¤·¡¢¸ø³«¸°¤ò¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ç¥é¥Ã¥×¤¹¤ë¤È¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-genkeypair \-alias duke \-keypass dukekeypasswd\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤ÎÎã¤Ç¤Ï¡¢½é´ü¥Ñ¥¹¥ï¡¼¥É¤È¤·¤Æ\fBdukekeypasswd\fR¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£°Ê¸å¡¢ÊÌ̾\fBduke\fR¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿ÈëÌ©¸°¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ï¡¢¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬Íפˤʤê¤Þ¤¹¡£Duke¤ÎÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¤¢¤È¤«¤éÊѹ¹¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-keypasswd \-alias duke \-keypass dukekeypasswd \-new newpass\fR + +.fi +.if n \{\ +.RE +.\} +¥Ñ¥¹¥ï¡¼¥É¤¬¡¢\fBdukekeypasswd\fR¤«¤é\fBnewpass\fR¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£¥Æ¥¹¥ÈÌÜŪ¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï¥»¥­¥å¥¢¤Ê¥·¥¹¥Æ¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç°Ê³°¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤ä¥¹¥¯¥ê¥×¥È¤Ç¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£É¬Íפʥѥ¹¥ï¡¼¥É¤Î¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.PP +¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ +.RS 4 +\fBjava\&.security\fR¥Ñ¥Ã¥±¡¼¥¸¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë\fBKeyStore\fR¥¯¥é¥¹¤Ï¡¢¥­¡¼¥¹¥È¥¢Æâ¤Î¾ðÊó¤Ø¤Î¥¢¥¯¥»¥¹¤ª¤è¤Ó¾ðÊó¤ÎÊѹ¹¤ò¹Ô¤¦¤¿¤á¤Î¡¢ÌÀ³Î¤ËÄêµÁ¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£¥­¡¼¥¹¥È¥¢¤Î¸ÇÄê¼ÂÁõ¤È¤·¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤¬ÆÃÄê¤Î¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤òÂоݤȤ¹¤ëÊ£¿ô¤Î°Û¤Ê¤ë¼ÂÁõ¤¬Â¸ºß²Äǽ¤Ç¤¹¡£ +.sp +¸½ºß¡¢\fBkeytool\fR¤È\fBjarsigner\fR¤Î2¤Ä¤Î¥³¥Þ¥ó¥É¹Ô¥Ä¡¼¥ë¤È¡¢Policy Tool¤È¤¤¤¦Ì¾Á°¤ÎGUI¥Ù¡¼¥¹¤Î¥Ä¡¼¥ë¤¬¡¢¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£\fBKeyStore\fR¥¯¥é¥¹¤Ï\fBpublic\fR¤Ç¤¢¤ë¤¿¤á¡¢¥æ¡¼¥¶¡¼¤ÏKeyStore¤ò»ÈÍѤ·¤¿Â¾¤Î¥»¥­¥å¥ê¥Æ¥£¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤âºîÀ®¤Ç¤­¤Þ¤¹¡£ +.sp +¥­¡¼¥¹¥È¥¢¤Ë¤Ï¡¢Oracle¤¬Ä󶡤¹¤ëÁȹþ¤ß¤Î¥Ç¥Õ¥©¥ë¥È¤Î¼ÂÁõ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢JKS¤È¤¤¤¦Ì¾Á°¤ÎÆÈ¼«¤Î¥­¡¼¥¹¥È¥¢¡¦¥¿¥¤¥×(·Á¼°)¤òÍøÍѤ¹¤ë¤â¤Î¤Ç¡¢¥­¡¼¥¹¥È¥¢¤ò¥Õ¥¡¥¤¥ë¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢¸Ä¡¹¤ÎÈëÌ©¸°¤Ï¸ÄÊ̤Υѥ¹¥ï¡¼¥É¤Ë¤è¤Ã¤ÆÊݸ¤ì¡¢¥­¡¼¥¹¥È¥¢Á´ÂΤÎÀ°¹çÀ­¤â(ÈëÌ©¸°¤È¤ÏÊ̤Î)¥Ñ¥¹¥ï¡¼¥É¤Ë¤è¤Ã¤ÆÊݸ¤ì¤Þ¤¹¡£ +.sp +¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤Ï¡¢¥×¥í¥Ð¥¤¥À¥Ù¡¼¥¹¤Ç¤¹¡£¶ñÂÎŪ¤Ë¤Ï¡¢\fBKeyStore\fR¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¥µ¡¼¥Ó¥¹¡¦¥×¥í¥Ð¥¤¥À¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹(SPI)¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Âбþ¤¹¤ë\fBKeystoreSpi\fRÃê¾Ý¥¯¥é¥¹(¤³¤ì¤â\fBjava\&.security\fR¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹)¤¬¤¢¤ê¡¢¤³¤Î¥¯¥é¥¹¤¬¡¢¥×¥í¥Ð¥¤¥À¤¬¼ÂÁõ¤¹¤ëɬÍפΤ¢¤ëService Provider Interface¤Î¥á¥½¥Ã¥É¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤³¤Ç¡¢\fI¥×¥í¥Ð¥¤¥À\fR¤È¤Ï¡¢Java Security API¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹²Äǽ¤Ê¥µ¡¼¥Ó¥¹¤Î¥µ¥Ö¥»¥Ã¥È¤ËÂФ·¡¢¤½¤Î¸ÇÄê¼ÂÁõ¤òÄ󶡤¹¤ë¥Ñ¥Ã¥±¡¼¥¸¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î½¸¹ç¤Î¤³¤È¤Ç¤¹¡£¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤òÄ󶡤¹¤ë¤Ë¤Ï¡¢http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/crypto/HowToImplAProvider\&.html¤Ë¤¢¤ë +Java°Å¹æ²½¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥×¥í¥Ð¥¤¥À¤Î¼ÂÁõÊýË¡¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ï¥×¥í¥Ð¥¤¥À¤ò¼ÂÁõ¤·¡¢\fBKeystoreSpi\fR¥µ¥Ö¥¯¥é¥¹¤Î¼ÂÁõ¤òÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢\fBKeyStore\fR¥¯¥é¥¹¤¬Ä󶡤¹¤ë\fBgetInstance\fR¥Õ¥¡¥¯¥È¥ê¡¦¥á¥½¥Ã¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ÍÍ¡¹¤Ê¥×¥í¥Ð¥¤¥À¤«¤é°Û¤Ê¤ë¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤òÁªÂò¤Ç¤­¤Þ¤¹¡£¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤Ï¡¢¥­¡¼¥¹¥È¥¢¾ðÊó¤Î³ÊǼ·Á¼°¤È¥Ç¡¼¥¿·Á¼°¤òÄêµÁ¤¹¤ë¤È¤È¤â¤Ë¡¢¥­¡¼¥¹¥È¥¢Æâ¤ÎÈó¸ø³«/ÈëÌ©¸°¤È¥­¡¼¥¹¥È¥¢¤ÎÀ°¹çÀ­¤òÊݸ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥¢¥ë¥´¥ê¥º¥à¤òÄêµÁ¤·¤Þ¤¹¡£°Û¤Ê¤ë¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤Ë¤Ï¡¢¸ß´¹À­¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +.sp +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢Ç¤°Õ¤Î¥Õ¥¡¥¤¥ë¥Ù¡¼¥¹¤Î¥­¡¼¥¹¥È¥¢¼ÂÁõ¤Çưºî¤·¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤ÇÅϤµ¤ì¤¿¥­¡¼¥¹¥È¥¢¤Î¾ì½ê¤ò¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ°·¤Ã¤Æ¡¢\fBFileInputStream\fR¤ËÊÑ´¹¤·¡¢¤³¤³¤«¤é¥­¡¼¥¹¥È¥¢¾ðÊó¤ò¥í¡¼¥É¤·¤Þ¤¹¡£\fBjarsigner\fR¤ª¤è¤Ó\fBpolicytool\fR¥³¥Þ¥ó¥É¤Ï¡¢URL¤Ç»ØÄê¤Ç¤­¤ëǤ°Õ¤Î¾ì½ê¤«¤é¥­¡¼¥¹¥È¥¢¤òÆÉ¤ß¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +\fBkeytool\fR¤È\fBjarsigner\fR¤Î¾ì¹ç¡¢\fB\-storetype\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥Þ¥ó¥É¹Ô¤Ç¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£Policy Tool¤Î¾ì¹ç¤Ï¡¢¡Ö¥­¡¼¥¹¥È¥¢¡×¥á¥Ë¥å¡¼¤Ë¤è¤Ã¤Æ¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.sp +¥æ¡¼¥¶¡¼¤¬¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿\fBkeystore\&.type\fR¥×¥í¥Ñ¥Æ¥£¤ÎÃͤ˴ð¤Å¤¤¤Æ¡¢¥Ä¡¼¥ë¤Ë¤è¤Ã¤Æ¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤¬ÁªÂò¤µ¤ì¤Þ¤¹¡£¤³¤Î¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Õ¥¡¥¤¥ë¤Ï\fBjava\&.security\fR¤È¸Æ¤Ð¤ì¡¢Windows¤Ç¤Ï¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Ç¥£¥ì¥¯¥È¥ê\fBjava\&.home\elib\esecurity\fR¡¢Oracle Solaris¤Ç¤Ï\fBjava\&.home/lib/security\fR¤Ë¤¢¤ê¤Þ¤¹¡£\fBjava\&.home\fR¤Ï¡¢¼Â¹Ô»þ´Ä¶­¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£\fBjre\fR¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢SDK¤Þ¤¿¤ÏJava Runtime Environment (JRE)¤ÎºÇ¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£ +.sp +³Æ¥Ä¡¼¥ë¤Ï¡¢\fBkeystore\&.type\fR¤ÎÃͤò¼èÆÀ¤·¡¢¤³¤ÎÃͤǻØÄꤵ¤ì¤¿¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¥×¥í¥Ð¥¤¥À¤¬¸«¤Ä¤«¤ë¤Þ¤Ç¡¢¸½ºß¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥×¥í¥Ð¥¤¥À¤òÄ´¤Ù¤Þ¤¹¡£¤½¤Î¥×¥í¥Ð¥¤¥À¤«¤é¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤ò»ÈÍѤ·¤Þ¤¹¡£\fBKeyStore\fR¥¯¥é¥¹¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ëstatic¥á¥½¥Ã¥É\fBgetDefaultType\fR¤ò»ÈÍѤ¹¤ë¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ä¥¢¥×¥ì¥Ã¥È¤«¤é\fBkeystore\&.type\fR¥×¥í¥Ñ¥Æ¥£¤ÎÃͤò¼èÆÀ¤Ç¤­¤Þ¤¹¡£¼¡¤Î¥³¡¼¥É¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥­¡¼¥¹¥È¥¢¡¦¥¿¥¤¥×(\fBkeystore\&.type\fR¥×¥í¥Ñ¥Æ¥£¤Ç»ØÄꤵ¤ì¤¿¥¿¥¤¥×)¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBKeyStore keyStore = KeyStore\&.getInstance(KeyStore\&.getDefaultType());\fR + +.fi +.if n \{\ +.RE +.\} +¥Ç¥Õ¥©¥ë¥È¤Î¥­¡¼¥¹¥È¥¢¡¦¥¿¥¤¥×¤Ï\fBjks\fR¤Ç¡¢¤³¤ì¤ÏOracle¤¬Ä󶡤¹¤ëÆÈ¼«¤Î¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤Ç¤¹¡£¤³¤ì¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Õ¥¡¥¤¥ëÆâ¤Î¼¡¤Î¹Ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeystore\&.type=jks\fR + +.fi +.if n \{\ +.RE +.\} +³Æ¥Ä¡¼¥ë¤Ç¥Ç¥Õ¥©¥ë¥È°Ê³°¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢¾å¤Î¹Ô¤òÊѹ¹¤·¤ÆÊ̤Υ­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBpkcs12\fR¤È¸Æ¤Ð¤ì¤ë¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤Î¥­¡¼¥¹¥È¥¢¤Î¼ÂÁõ¤òÄ󶡤¹¤ë¥×¥í¥Ð¥¤¥À¡¦¥Ñ¥Ã¥±¡¼¥¸¤¬¤¢¤ë¾ì¹ç¡¢¹Ô¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeystore\&.type=pkcs12\fR + +.fi +.if n \{\ +.RE +.\} +\fBÃí°Õ:\fR +¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤Î»ØÄê¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢JKS¤Èjks¤ÏƱ¤¸¤â¤Î¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ +.RE +.PP +¾ÚÌÀ½ñ +.RS 4 +¾ÚÌÀ½ñ(¸ø³«¸°¾ÚÌÀ½ñ)¤È¤Ï¡¢¤¢¤ë¥¨¥ó¥Æ¥£¥Æ¥£(ȯ¹Ô¼Ô)¤«¤é¤Î¥Ç¥¸¥¿¥ë½ð̾ÉÕ¤­¤Îʸ½ñ¤Î¤³¤È¤Ç¤¹¡£¾ÚÌÀ½ñ¤Ë¤Ï¡¢Â¾¤Î¤¢¤ë¥¨¥ó¥Æ¥£¥Æ¥£(½ð̾¼Ô)¤Î¸ø³«¸°(¤ª¤è¤Ó¤½¤Î¾¤Î¾ðÊó)¤¬ÆÃÊ̤ÊÃͤò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤ÎÍѸì¤Ï¡¢¾ÚÌÀ½ñ¤Ë´ØÏ¢¤·¤Æ¤¤¤Þ¤¹¡£ +.sp +\fB¸ø³«¸°\fR: ¸ø³«¸°¤Ï¡¢ÆÃÄê¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¿ô¤Ç¤¹¡£¸ø³«¸°¤Ï¡¢³ºÅö¤¹¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤È¤Î´Ö¤Ë¿®Íê¤Ç¤­¤ë´Ø·¸¤ò»ý¤ÄɬÍפ¬¤¢¤ë¤¹¤Ù¤Æ¤Î¿Í¤ËÂФ·¤Æ¸ø³«¤¹¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤¹¡£¸ø³«¸°¤Ï¡¢½ð̾¤ò¸¡¾Ú¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +\fB¥Ç¥¸¥¿¥ë½ð̾\fR: ¥Ç¡¼¥¿¤¬¥Ç¥¸¥¿¥ë½ð̾¤µ¤ì¤ë¤È¡¢¤½¤Î¥Ç¡¼¥¿¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£¤Î¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤È¡¢¤½¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤¬¥Ç¡¼¥¿¤ÎÆâÍÆ¤Ë¤Ä¤¤¤ÆÃΤäƤ¤¤ë¤³¤È¤ò¾ÚÌÀ½ñ¤¹¤ë½ð̾¤È¤È¤â¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¥¨¥ó¥Æ¥£¥Æ¥£¤ÎÈëÌ©¸°¤ò»ÈÍѤ·¤Æ¥Ç¡¼¥¿¤Ë½ð̾¤òÉÕ¤±¤ë¤È¡¢¥Ç¡¼¥¿¤Îµ¶Â¤¤ÏÉÔ²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +\fB¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£\fR: ¥¨¥ó¥Æ¥£¥Æ¥£¤ò¥¢¥É¥ì¥¹»ØÄꤹ¤ë´ûÃΤÎÊýË¡¡£¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¸ø³«¸°¤ò¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤Ë¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¸ø³«¸°¤Î¾¤Ë¤â¡¢Oracle Solaris UID¤äÅŻҥ᡼¥ë¡¦¥¢¥É¥ì¥¹¡¢X\&.509¼±ÊÌ̾¤Ê¤É¡¢ÍÍ¡¹¤Ê¤â¤Î¤ò¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +\fB½ð̾\fR: ½ð̾¤Ï¡¢¤Ê¤ó¤é¤«¤Î¥Ç¡¼¥¿¤ò´ð¤Ë¥¨¥ó¥Æ¥£¥Æ¥£¤ÎÈëÌ©¸°¤ò»ÈÍѤ·¤Æ·×»»¤µ¤ì¤Þ¤¹¡£½ð̾¼Ô¡¢¾ÚÌÀ½ñ¤Î¾ì¹ç¤Ïȯ¹Ô¼Ô¤È¤â¸Æ¤Ð¤ì¤Þ¤¹¡£ +.sp +\fBÈëÌ©¸°\fR: ÈëÌ©¸°¤ÏÆÃÄê¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤Î¤ß¤¬ÃΤäƤ¤¤ë¿ô¤Î¤³¤È¤Ç¡¢¤³¤Î¿ô¤Î¤³¤È¤ò¡¢¤½¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤ÎÈëÌ©¸°¤È¤¤¤¤¤Þ¤¹¡£ÈëÌ©¸°¤Ï¡¢Â¾¤ËÃΤé¤ì¤Ê¤¤¤è¤¦¤ËÈëÌ©¤Ë¤·¤Æ¤ª¤¯¤³¤È¤¬Á°Äó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÈëÌ©¸°¤È¸ø³«¸°¤Ï¡¢¤¹¤Ù¤Æ¤Î¸ø³«¸°°Å¹æ²½¥·¥¹¥Æ¥à¤ÇÂФˤʤäÆÂ¸ºß¤·¤Æ¤¤¤Þ¤¹¡£DSA¤Ê¤É¤Îŵ·¿Åª¤Ê¸ø³«¸°°Å¹æ²½¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢1¤Ä¤ÎÈëÌ©¸°¤ÏÀµ³Î¤Ë1¤Ä¤Î¸ø³«¸°¤ËÂбþ¤·¤Þ¤¹¡£ÈëÌ©¸°¤Ï¡¢½ð̾¤ò·×»»¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.sp +\fB¥¨¥ó¥Æ¥£¥Æ¥£\fR: ¥¨¥ó¥Æ¥£¥Æ¥£¤Ï¡¢¿Í¡¢ÁÈ¿¥¡¢¥×¥í¥°¥é¥à¡¢¥³¥ó¥Ô¥å¡¼¥¿¡¢´ë¶È¡¢¶ä¹Ô¤Ê¤É¡¢°ìÄê¤ÎÅٹ礤¤Ç¿®Íê¤ÎÂоݤȤʤëÍÍ¡¹¤Ê¤â¤Î¤ò»Ø¤·¤Þ¤¹¡£ +.sp +¸ø³«¸°°Å¹æ²½¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¤Î¸ø³«¸°¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Â絬ÌϤʥͥåȥ¥¯´Ä¶­¤Ç¤Ï¡¢¸ß¤¤¤ËÄÌ¿®¤·¤Æ¤¤¤ë¥¨¥ó¥Æ¥£¥Æ¥£´Ö¤Ç°ÊÁ°¤Î´Ø·¸¤¬°ú³¤­³ÎΩ¤µ¤ì¤Æ¤¤¤ë¤È²¾Äꤷ¤¿¤ê¡¢»ÈÍѤµ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¸ø³«¸°¤ò¼ý¤á¤¿¿®Íê¤Ç¤­¤ë¥ê¥Ý¥¸¥È¥ê¤¬Â¸ºß¤¹¤ë¤È²¾Äꤷ¤¿¤ê¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¸ø³«¸°¤ÎÇÛÉۤ˴ؤ¹¤ëÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¾ÚÌÀ½ñ¤¬¹Í°Æ¤µ¤ì¤Þ¤·¤¿¡£¸½ºß¤Ç¤Ï¡¢Ç§¾Ú¶É(CA)¤¬¿®Íê¤Ç¤­¤ëÂè»°¼Ô¤È¤·¤Æµ¡Ç½¤·¤Þ¤¹¡£CA¤Ï¡¢Â¾¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤Î¾ÚÌÀ½ñ¤Ë½ð̾¤¹¤ë(ȯ¹Ô¤¹¤ë)¹Ô°Ù¤ò¡¢¿®Íꤷ¤ÆÇ¤¤µ¤ì¤Æ¤¤¤ë¥¨¥ó¥Æ¥£¥Æ¥£(´ë¶È¤Ê¤É)¤Ç¤¹¡£CA¤ÏˡΧ¾å¤Î·ÀÌó¤Ë¹´Â«¤µ¤ì¤ë¤Î¤Ç¡¢Í­¸ú¤«¤Ä¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¤ß¤òºîÀ®¤¹¤ë¤â¤Î¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£VeriSign¡¢Thawte¡¢Entrust¤ò¤Ï¤¸¤á¡¢Â¿¤¯¤Î¸øÅª¤Êǧ¾Ú¶É¤¬Â¸ºß¤·¤Þ¤¹¡£ +.sp +Microsoft¤Îǧ¾Ú¥µ¡¼¥Ð¡¼¡¢Entrust¤ÎCAÀ½Éʤʤɤò½ê°ÁÈ¿¥Æâ¤ÇÍøÍѤ¹¤ì¤Ð¡¢ÆÈ¼«¤Îǧ¾Ú¶É¤ò±¿±Ä¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¢¾ÚÌÀ½ñ¤Îɽ¼¨¡¢¥¤¥ó¥Ý¡¼¥È¤ª¤è¤Ó¥¨¥¯¥¹¥Ý¡¼¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤òÀ¸À®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +.sp +¸½ºß¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤ÏX\&.509¾ÚÌÀ½ñ¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +X\&.509¾ÚÌÀ½ñ +.RS 4 +X\&.509µ¬³Ê¤Ç¤Ï¡¢¾ÚÌÀ½ñ¤Ë´Þ¤á¤ë¾ðÊó¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¾ðÊó¤ò¾ÚÌÀ½ñ¤Ë½ñ¤­¹þ¤àÊýË¡(¥Ç¡¼¥¿·Á¼°)¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¾ÚÌÀ½ñ¤Î¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¤Ï¡¢ASN\&.1/DER¤È¸Æ¤Ð¤ì¤ë2¤Ä¤Î´ØÏ¢µ¬³Ê¤ò»ÈÍѤ·¤ÆÉ乿²½¤µ¤ì¤Þ¤¹¡£Abstract Syntax Notation 1¤Ï¥Ç¡¼¥¿¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£Definite Encoding Rules¤Ï¡¢¥Ç¡¼¥¿¤ÎÊݸ¤ª¤è¤ÓžÁ÷¤ÎÊýË¡¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£ +.sp +¤¹¤Ù¤Æ¤ÎX\&.509¾ÚÌÀ½ñ¤Ï¡¢½ð̾¤Î¾¤Ë¼¡¤Î¥Ç¡¼¥¿¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +.sp +\fB¥Ð¡¼¥¸¥ç¥ó\fR: ¾ÚÌÀ½ñ¤ËŬÍѤµ¤ì¤ëX\&.509µ¬³Ê¤Î¥Ð¡¼¥¸¥ç¥ó¤òÆÃÄꤷ¤Þ¤¹¡£¾ÚÌÀ½ñ¤Ë»ØÄê¤Ç¤­¤ë¾ðÊó¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£º£¤Î¤È¤³¤í¡¢3¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢v1¡¢v2¡¢v3¤Î¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤ª¤è¤Ó¥¨¥¯¥¹¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£v3¤Î¾ÚÌÀ½ñ¤òÀ¸À®¤·¤Þ¤¹¡£ +.sp +X\&.509 Version 1¤Ï¡¢1988ǯ¤«¤éÍøÍѤµ¤ì¤Æ¹­¤¯ÉáµÚ¤·¤Æ¤ª¤ê¡¢ºÇ¤â°ìÈÌŪ¤Ç¤¹¡£ +.sp +X\&.509 Version 2¤Ç¤Ï¡¢Subject¤äȯ¹Ô¼Ô¤Î̾Á°¤ò¤¢¤È¤ÇºÆÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¡¢Subject¤Èȯ¹Ô¼Ô¤Î°ì°Õ¼±Ê̻ҤγµÇ°¤¬Æ³Æþ¤µ¤ì¤Þ¤·¤¿¡£¤Û¤È¤ó¤É¤Î¾ÚÌÀ½ñ¥×¥í¥Õ¥¡¥¤¥ëʸ½ñ¤Ç¤Ï¡¢Ì¾Á°¤òºÆ»ÈÍѤ·¤Ê¤¤¤³¤È¤È¡¢¾ÚÌÀ½ñ¤Ç°ì°Õ¤Î¼±Ê̻Ҥò»ÈÍѤ·¤Ê¤¤¤³¤È¤¬¡¢¶¯¤¯¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Version 2¤Î¾ÚÌÀ½ñ¤Ï¡¢¹­¤¯¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +.sp +X\&.509 Version 3¤ÏºÇ¤â¿·¤·¤¤(1996ǯ)µ¬³Ê¤Ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Î³µÇ°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ïï¤Ç¤âÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¾ÚÌÀ½ñ¤Ë´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°ìÈÌŪ¤Ê¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤È¤·¤Æ¤Ï¡¢KeyUsage(\fB½ð̾ÀìÍÑ\fR¤Ê¤É¡¢¸°¤Î»ÈÍѤòÆÃÄê¤ÎÌÜŪ¤ËÀ©¸Â¤¹¤ë)¡¢AlternativeNames(DNS̾¡¢ÅŻҥ᡼¥ë¡¦¥¢¥É¥ì¥¹¡¢IP¥¢¥É¥ì¥¹¤Ê¤É¡¢Â¾¤Î¥¢¥¤¥Ç¥ó¥Æ¥£¥Æ¥£¤ò¸ø³«¸°¤Ë´ØÏ¢ÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë)¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ë¤Ï¡¢critical¤È¤¤¤¦¥Þ¡¼¥¯¤òÉÕ¤±¤Æ¡¢¤½¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Î¥Á¥§¥Ã¥¯¤È»ÈÍѤòµÁ̳¤Å¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢critical¤È¥Þ¡¼¥¯¤µ¤ì¡¢\fBkeyCertSign\fR¤¬ÀßÄꤵ¤ì¤¿KeyUsage¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬¾ÚÌÀ½ñ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤Î¾ÚÌÀ½ñ¤òSSLÄÌ¿®Ãæ¤ËÄ󼨤¹¤ë¤È¡¢¾ÚÌÀ½ñ¤¬µñÈݤµ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¾ÚÌÀ½ñ¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢´ØÏ¢¤¹¤ëÈëÌ©¸°¤¬¾ÚÌÀ½ñ¤Î½ð̾ÀìÍѤȤ·¤Æ»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢SSL¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¤¿¤á¤Ç¤¹¡£ +.sp +\fB¥·¥ê¥¢¥ëÈÖ¹æ\fR: ¾ÚÌÀ½ñ¤òºîÀ®¤·¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤Ï¡¢¤½¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤¬È¯¹Ô¤¹¤ë¾¤Î¾ÚÌÀ½ñ¤È¶èÊ̤¹¤ë¤¿¤á¤Ë¡¢¾ÚÌÀ½ñ¤Ë¥·¥ê¥¢¥ëÈÖ¹æ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢ÍÍ¡¹¤ÊÊýË¡¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¾ÚÌÀ½ñ¤¬¼è¤ê¾Ã¤µ¤ì¤ë¤È¡¢¥·¥ê¥¢¥ëÈֹ椬¾ÚÌÀ½ñ¼º¸ú¥ê¥¹¥È(CRL)¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ +.sp +\fB¾ÚÌÀ½ñ¥¢¥ë¥´¥ê¥º¥à¼±ÊÌ»Ò\fR: ¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤ë¤È¤­¤ËCA¤¬»ÈÍѤ·¤¿¥¢¥ë¥´¥ê¥º¥à¤òÆÃÄꤷ¤Þ¤¹¡£ +.sp +\fBȯ¹Ô¼Ô̾\fR: ¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤ÎX\&.500¼±ÊÌ̾¤Ç¤¹¡£X\&.500¼±ÊÌ̾¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Ä̾ï¤ÏCA¤Ç¤¹¡£¤³¤Î¾ÚÌÀ½ñ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¡¢¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤ò¿®Íꤹ¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¥ë¡¼¥È¤Ä¤Þ¤ê¥È¥Ã¥×¥ì¥Ù¥ë¤ÎCA¤Î¾ÚÌÀ½ñ¤Ê¤É¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ïȯ¹Ô¼Ô¤¬¼«¿È¤Î¾ÚÌÀ½ñ¤Ë½ð̾¤òÉÕ¤±¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fBÍ­¸ú´ü´Ö\fR: ³Æ¾ÚÌÀ½ñ¤Ï¸Â¤é¤ì¤¿´ü´Ö¤Î¤ßÍ­¸ú¤Ç¤¹¡£¤³¤Î´ü´Ö¤Ï³«»Ï¤ÎÆü»þ¤È½ªÎ»¤ÎÆü»þ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¡¢¿ôÉäÎû¤¤´ü´Ö¤«¤é100ǯ¤È¤¤¤¦Ä¹´ü¤Ë¤ï¤¿¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ÁªÂò¤µ¤ì¤ëÍ­¸ú´ü´Ö¤Ï¡¢¾ÚÌÀ½ñ¤Ø¤Î½ð̾¤Ë»ÈÍѤµ¤ì¤ëÈëÌ©¸°¤Î¶¯ÅÙ¤ä¾ÚÌÀ½ñ¤Ë»Ùʧ¤¦¶â³Û¤Ê¤É¡¢ÍÍ¡¹¤ÊÍ×°ø¤Ç°Û¤Ê¤ê¤Þ¤¹¡£Í­¸ú´ü´Ö¤Ï¡¢´ØÏ¢¤¹¤ëÈëÌ©¸°¤¬Â»¤ï¤ì¤Ê¤¤¾ì¹ç¤Ë¡¢¥¨¥ó¥Æ¥£¥Æ¥£¤¬¸ø³«¸°¤ò¿®Íê¤Ç¤­¤ë¤È´üÂÔ¤µ¤ì¤ë´ü´Ö¤Ç¤¹¡£ +.sp +\fB¼çÂÎ̾\fR: ¾ÚÌÀ½ñ¤Ç¸ø³«¸°¤òǧ¾Ú¤¹¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤Î̾Á°¡£¤³¤Î̾Á°¤ÏX\&.500ɸ½à¤ò»ÈÍѤ¹¤ë¤Î¤Ç¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÁ´ÂΤǰì°Õ¤Ê¤â¤Î¤ÈÁÛÄꤵ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£¤ÎX\&.500¼±ÊÌ̾(DN)¤Ç¤¹¡£X\&.500¼±ÊÌ̾¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¼çÂΤÎÄ̾Î(CN)¡¢ÁÈ¿¥Ã±°Ì(OU)¡¢ÁÈ¿¥(O)¡¢¹ñ(C)¤òɽ¤·¤Þ¤¹¡£ +.sp +\fB¼çÂΤθø³«¸°¾ðÊó\fR: ̾Á°¤òÉÕ¤±¤é¤ì¤¿¥¨¥ó¥Æ¥£¥Æ¥£¤Î¸ø³«¸°¤È¥¢¥ë¥´¥ê¥º¥à¼±Ê̻ҤǤ¹¡£¥¢¥ë¥´¥ê¥º¥à¼±Ê̻ҤǤϡ¢¸ø³«¸°¤ËÂФ·¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¸ø³«¸°°Å¹æ²½¥·¥¹¥Æ¥à¤ª¤è¤Ó´ØÏ¢¤¹¤ë¸°¥Ñ¥é¥á¡¼¥¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +.RE +.PP +¾ÚÌÀ½ñ¥Á¥§¡¼¥ó +.RS 4 +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢ÈëÌ©¸°¤ª¤è¤Ó´ØÏ¢¤¹¤ë¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò´Þ¤à¥­¡¼¥¹¥È¥¢¤Î¸°¥¨¥ó¥È¥ê¤òºîÀ®¤·¡¢´ÉÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¥¨¥ó¥È¥ê¤Ç¤Ï¡¢ÈëÌ©¸°¤ËÂбþ¤¹¤ë¸ø³«¸°¤Ï¡¢¥Á¥§¡¼¥ó¤ÎºÇ½é¤Î¾ÚÌÀ½ñ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ +.sp +¸°¤ò½é¤á¤ÆºîÀ®¤¹¤ë¤È¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤È¤¤¤¦1¤Ä¤ÎÍ×ÁǤΤߤò´Þ¤à¥Á¥§¡¼¥ó¤¬³«»Ï¤µ¤ì¤Þ¤¹¡£¥³¥Þ¥ó¥É¤Î\fB\-genkeypair\fR¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ïȯ¹Ô¼Ô(½ð̾¼Ô)¤¬¼çÂÎ¤ÈÆ±¤¸¤Ç¤¹¡£¼çÂΤϡ¢¤½¤Î¸ø³«¸°¤¬¾ÚÌÀ½ñ¤Ë¤è¤Ã¤ÆÇ§¾Ú¤µ¤ì¤ë¥¨¥ó¥Æ¥£¥Æ¥£¤Ç¤¹¡£\fB\-genkeypair\fR¥³¥Þ¥ó¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¿·¤·¤¤¸ø³«¸°¤ÈÈëÌ©¸°¤Î¥Ú¥¢¤òºîÀ®¤¹¤ë¤È¡¢¸ø³«¸°¤Ï¾ï¤Ë¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ç¥é¥Ã¥×¤µ¤ì¤Þ¤¹¡£ +.sp +¤³¤Î¸å¡¢¾ÚÌÀ½ñ½ð̾¥ê¥¯¥¨¥¹¥È(CSR)¤¬\fB\-certreq\fR¥³¥Þ¥ó¥É¤ÇÀ¸À®¤µ¤ì¤Æ¡¢CSR¤¬Ç§¾Ú¶É(CA)¤ËÁ÷¿®¤µ¤ì¤ë¤È¡¢CA¤«¤é¤Î¥ì¥¹¥Ý¥ó¥¹¤¬\fB\-importcert\fR¤Ç¥¤¥ó¥Ý¡¼¥È¤µ¤ì¡¢¸µ¤Î¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ï¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£\fB¤Î\fR\-certreq\fB¤ª¤è¤Ó\fR\-importcert¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¥Á¥§¡¼¥ó¤ÎºÇ¸å¤Ë¤¢¤ë¤Î¤Ï¡¢Subject¤Î¸ø³«¸°¤òǧ¾Ú¤·¤¿CA¤¬È¯¹Ô¤·¤¿¾ÚÌÀ½ñ(±þÅú)¤Ç¤¹¡£¥Á¥§¡¼¥óÆâ¤Î¤½¤ÎÁ°¤Î¾ÚÌÀ½ñ¤Ï¡¢CA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Ç¤¹¡£ +.sp +CA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Ï¡¢Â¿¤¯¤Î¾ì¹ç¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ(¤Ä¤Þ¤êCA¤¬¼«¿È¤Î¸ø³«¸°¤òǧ¾Ú¤·¤¿¾ÚÌÀ½ñ)¤Ç¤¢¤ê¡¢¤³¤ì¤Ï¥Á¥§¡¼¥ó¤ÎºÇ½é¤Î¾ÚÌÀ½ñ¤Ë¤Ê¤ê¤Þ¤¹¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢CA¤¬¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó¤òÊÖ¤¹¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥Á¥§¡¼¥óÆâ¤ÎºÇ¸å¤Î¾ÚÌÀ½ñ(CA¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¡¢¸°¥¨¥ó¥È¥ê¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ)¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥Á¥§¡¼¥óÆâ¤Î¤½¤ÎÁ°¤Î¾ÚÌÀ½ñ¤Ï¡¢CSR¤ÎÁ÷¿®Àè¤ÎCA¤È¤ÏÊ̤ÎCA¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¡¢CSR¤ÎÁ÷¿®Àè¤ÎCA¤Î¸ø³«¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Ë¤Ê¤ê¤Þ¤¹¡£¥Á¥§¡¼¥óÆâ¤Î¤½¤ÎÁ°¤Î¾ÚÌÀ½ñ¤Ï¡¢¼¡¤ÎCA¤Î¸°¤òǧ¾Ú¤¹¤ë¾ÚÌÀ½ñ¤Ë¤Ê¤ê¤Þ¤¹¡£°Ê²¼Æ±Íͤˡ¢¼«¸Ê½ð̾¤µ¤ì¤¿¡Ö¥ë¡¼¥È¡×¾ÚÌÀ½ñ¤Ë㤹¤ë¤Þ¤Ç¥Á¥§¡¼¥ó¤¬Â³¤­¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥Á¥§¡¼¥óÆâ¤Î(ºÇ½é¤Î¾ÚÌÀ½ñ°Ê¸å¤Î)³Æ¾ÚÌÀ½ñ¤Ç¤Ï¡¢¥Á¥§¡¼¥óÆâ¤Î¼¡¤Î¾ÚÌÀ½ñ¤Î½ð̾¼Ô¤Î¸ø³«¸°¤¬Ç§¾Ú¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.sp +¿¤¯¤ÎCA¤Ï¡¢¥Á¥§¡¼¥ó¤ò¥µ¥Ý¡¼¥È¤»¤º¤Ëȯ¹ÔºÑ¤Î¾ÚÌÀ½ñ¤Î¤ß¤òÊÖ¤·¤Þ¤¹¡£ÆÃ¤Ë¡¢Ãæ´Ö¤ÎCA¤¬Â¸ºß¤·¤Ê¤¤¥Õ¥é¥Ã¥È¤Ê³¬Áع½Â¤¤Î¾ì¹ç¤Ï¡¢¤½¤Î·¹¸þ¤¬¸²Ãø¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¡¢¥­¡¼¥¹¥È¥¢¤Ë¤¹¤Ç¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¾ðÊ󤫤顢¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò³ÎΩ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +Ê̤αþÅú·Á¼°(PKCS#7¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë·Á¼°)¤Ç¤Ï¡¢È¯¹ÔºÑ¾ÚÌÀ½ñ¤Ë²Ã¤¨¡¢¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Î¥µ¥Ý¡¼¥È¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¤É¤Á¤é¤Î±þÅú·Á¼°¤â°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +¥È¥Ã¥×¥ì¥Ù¥ë(¥ë¡¼¥È)CA¤Î¾ÚÌÀ½ñ¤Ï¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ç¤¹¡£¤¿¤À¤·¡¢¥ë¡¼¥È¤Î¸ø³«¸°¤Ø¤Î¿®Íê¤Ï¡¢¥ë¡¼¥È¾ÚÌÀ½ñ¼«ÂΤ«¤é¤Ç¤Ï¤Ê¤¯¡¢¿·Ê¹¤Ê¤É¾¤Î¥½¡¼¥¹¤«¤é¼èÆÀ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢VeriSign¥ë¡¼¥ÈCA¤Ê¤É¤Î¼±ÊÌ̾¤ò»ÈÍѤ·¤Æ¡¢Ã¯¤Ç¤â¼«¸Ê½ð̾·¿¾ÚÌÀ½ñ¤òÀ¸À®¤Ç¤­¤ë¤¿¤á¤Ç¤¹¡£¥ë¡¼¥ÈCA¤Î¸ø³«¸°¤Ï¹­¤¯ÃΤé¤ì¤Æ¤¤¤Þ¤¹¡£¥ë¡¼¥ÈCA¤Î¸ø³«¸°¤ò¾ÚÌÀ½ñ¤Ë³ÊǼ¤¹¤ëÍýͳ¤Ï¡¢¾ÚÌÀ½ñ¤È¤¤¤¦·Á¼°¤Ë¤¹¤ë¤³¤È¤Ç¿¤¯¤Î¥Ä¡¼¥ë¤«¤éÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ë¤¹¤®¤Þ¤»¤ó¡£¤Ä¤Þ¤ê¡¢¾ÚÌÀ½ñ¤Ï¡¢¥ë¡¼¥ÈCA¤Î¸ø³«¸°¤ò±¿¤Ö¡ÖÇÞÂΡפȤ·¤ÆÍøÍѤµ¤ì¤ë¤Î¤ß¤Ç¤¹¡£¥ë¡¼¥ÈCA¤Î¾ÚÌÀ½ñ¤ò¥­¡¼¥¹¥È¥¢¤ËÄɲ乤ë¤È¤­¤Ï¡¢\fB\-printcert\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢¤½¤ÎÁ°¤Ë¾ÚÌÀ½ñ¤ÎÆâÍÆ¤òɽ¼¨¤·¡¢É½¼¨¤µ¤ì¤¿¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¡¢¿·Ê¹¤ä¥ë¡¼¥ÈCA¤ÎWeb¥Ú¡¼¥¸¤Ê¤É¤«¤éÆþ¼ê¤·¤¿´ûÃΤΥե£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¤òÈæ³Ó¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +cacerts¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë +.RS 4 +\fBcacerts\fR¤È¤¤¤¦Ì¾Á°¤Î¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë¤Ï¡¢Windows¤Ç¤Ï¥»¥­¥å¥ê¥Æ¥£¡¦¥×¥í¥Ñ¥Æ¥£¡¦¥Ç¥£¥ì¥¯¥È¥ê\fBjava\&.home\elib\esecurity\fR¡¢Oracle Solaris¤Ç¤Ï\fBjava\&.home/lib/security\fR¤ËÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£\fBjava\&.home\fR¤Ï¡¢¼Â¹Ô´Ä¶­¤Î¥Ç¥£¥ì¥¯¥È¥ê(SDK¤Î\fBjre\fR¥Ç¥£¥ì¥¯¥È¥ê¤Þ¤¿¤ÏJRE¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê)¤Ç¤¹¡£ +.sp +\fBcacerts\fR¥Õ¥¡¥¤¥ë¤Ï¡¢CA¤Î¾ÚÌÀ½ñ¤ò´Þ¤à¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥ­¡¼¥¹¥È¥¢¤Ç¤¹¡£¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¡¢¥­¡¼¥¹¥È¥¢¡¦¥¿¥¤¥×¤Ë\fBjks\fR¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤Î¹½À®¤È´ÉÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤Ï¡¢¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤Î¥Ç¥Õ¥©¥ë¥È¡¦¥»¥Ã¥È¤ò´Þ¤ó¤À¾õÂ֤ǽв٤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¾ÚÌÀ½ñ¤ò°ìÍ÷ɽ¼¨¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-list \-keystore java\&.home/lib/security/cacerts\fR + +.fi +.if n \{\ +.RE +.\} +\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤Î½é´ü¥Ñ¥¹¥ï¡¼¥É¤Ï¡¢\fBchangeit\fR¤Ç¤¹¡£¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¡¢SDK¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¤È¥Ç¥Õ¥©¥ë¥È¡¦¥¢¥¯¥»¥¹¸¢¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fBÃí°Õ:\fR +\fBcacerts\fR¥Õ¥¡¥¤¥ë¤ò³Îǧ¤¹¤ë¤³¤È¤¬½ÅÍפǤ¹¡£\fBcacerts\fR¥Õ¥¡¥¤¥ëÆâ¤ÎCA¤Ï¡¢½ð̾¤ª¤è¤Ó¾¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤Ø¤Î¾ÚÌÀ½ñȯ¹Ô¤Î¤¿¤á¤Î¥¨¥ó¥Æ¥£¥Æ¥£¤È¤·¤Æ¿®Íꤵ¤ì¤ë¤¿¤á¡¢\fBcacerts\fR¥Õ¥¡¥¤¥ë¤Î´ÉÍý¤Ï¿µ½Å¤Ë¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£\fBcacerts\fR¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¿®Íꤹ¤ëCA¤Î¾ÚÌÀ½ñ¤Î¤ß¤¬´Þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤Ï¡¢¼«¿È¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¡¢\fBcacerts\fR¥Õ¥¡¥¤¥ë¤Ë¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤¤¤ë¿®Íê¤Ç¤­¤ë¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤ò¸¡¾Ú¤·¡¢¿®ÍêÀ­¤Ë´Ø¤¹¤ëÆÈ¼«¤Î·èÄê¤ò¹Ô¤¤¤Þ¤¹¡£ +.sp +¿®Íê¤Ç¤­¤Ê¤¤CA¾ÚÌÀ½ñ¤ò\fBcacerts\fR¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤¹¤ë¤Ë¤Ï¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Î\fBdelete\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Þ¤¹¡£\fBcacerts\fR¥Õ¥¡¥¤¥ë¤ÏJRE¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¥¢¥¯¥»¥¹¸¢¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à´ÉÍý¼Ô¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤ +.RE +.PP +¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421¾ÚÌÀ½ñÉ乿²½µ¬³Ê +.RS 4 +¿¤¯¤Î¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï¡¢¥Ð¥¤¥Ê¥êÉ乿²½¤Ç¤Ï¤Ê¤¯¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈRFC 1421µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë½ÐÎϲÄǽÉ乿²½Êý¼°¤ò»ÈÍѤ·¤Æ³ÊǼ¤µ¤ì¤Þ¤¹¡£Base 64É乿²½¤È¤â¸Æ¤Ð¤ì¤ë¤³¤Î¾ÚÌÀ½ñ·Á¼°¤Ç¤Ï¡¢ÅŻҥ᡼¥ë¤ä¤½¤Î¾¤Îµ¡¹½¤òÄ̤¸¤Æ¡¢Â¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¾ÚÌÀ½ñ¤òÍÆ°×¤Ë¥¨¥¯¥¹¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£ +.sp +\fB\-importcert\fR¤È\fB\-printcert\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¤³¤Î·Á¼°¤Î¾ÚÌÀ½ñ¤È¥Ð¥¤¥Ê¥êÉ乿²½¤Î¾ÚÌÀ½ñ¤òÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\fB\-exportcert\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥Ð¥¤¥Ê¥êÉ乿²½¤Î¾ÚÌÀ½ñ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£¤¿¤À¤·¡¢\fB\-rfc\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢½ÐÎϲÄǽÉ乿²½Êý¼°¤Î¾ÚÌÀ½ñ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +.sp +\fB\-list\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¾ÚÌÀ½ñ¤ÎSHA1¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£\fB\-v\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï¿Í¤¬Íý²ò¤Ç¤­¤ë·Á¼°¤Ç½ÐÎϤµ¤ì¤Þ¤¹¡£\fB\-rfc\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï½ÐÎϲÄǽÉ乿²½Êý¼°¤Ç½ÐÎϤµ¤ì¤Þ¤¹¡£ +.sp +½ÐÎϲÄǽÉ乿²½Êý¼°¤ÇÉ乿²½¤µ¤ì¤¿¾ÚÌÀ½ñ¤Ï¡¢¼¡¤Î¥Æ¥­¥¹¥È¤Ç»Ï¤Þ¤ê¡¢¼¡¤Î¥Æ¥­¥¹¥È¤Ç½ªÎ»¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\fR + +\fBencoded certificate goes here\&. \fR + +\fB\-\-\-\-\-END CERTIFICATE\-\-\-\-\-\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +X\&.500¼±ÊÌ̾ +.RS 4 +X\&.500¼±ÊÌ̾¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£¤òÆÃÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢X\&.509¾ÚÌÀ½ñ¤Î\fBsubject\fR¥Õ¥£¡¼¥ë¥É¤È\fBissuer\fR(½ð̾¼Ô)¥Õ¥£¡¼¥ë¥É¤Ç»ØÄꤵ¤ì¤ë̾Á°¤Ï¡¢X\&.500¼±ÊÌ̾¤Ç¤¹¡£\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¼¡¤Î¥µ¥Ö¥Ñ¡¼¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +.sp +\fBcommonName\fR: Susan Jones¤Ê¤É¡¢¿Í¤ÎÄ̾Ρ£ +.sp +\fBorganizationUnit\fR: ¾®¤µ¤ÊÁÈ¿¥(Éô¡¢²Ý¤Ê¤É)¤Î̾¾Î¡£Purchasing¤Ê¤É¤Ç¤¹¡£ +.sp +\fBlocalityName\fR: Ãϰè(ÅÔ»Ô)̾¡£Palo Alto¤Ê¤É¡£ +.sp +\fBstateName\fR: ½£Ì¾¤Þ¤¿¤ÏÃÏÊý̾¡£California¤Ê¤É¡£ +.sp +\fBcountry\fR: 2ʸ»ú¤Î¹ñ¥³¡¼¥É¡£CH¤Ê¤É¡£ +.sp +¼±ÊÌ̾ʸ»úÎó¤ò\fB\-dname\fR¥ª¥×¥·¥ç¥ó¤ÎÃͤȤ·¤Æ»ØÄꤹ¤ë¾ì¹ç(¤¿¤È¤¨¤Ð\fB\-genkeypair\fR¥³¥Þ¥ó¥É¤Ë)¡¢Ê¸»úÎó¤Ï¼¡¤Î·Á¼°¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCN=cName, OU=orgUnit, O=org, L=city, S=state, C=countryCode\fR + +.fi +.if n \{\ +.RE +.\} +¥¤¥¿¥ê¥Ã¥¯¤Î¹àÌܤϡ¢¼ÂºÝ¤Ë»ØÄꤹ¤ëÃͤòɽ¤·¤Þ¤¹¡£Ã»½Ì·Á¤Î¥­¡¼¥ï¡¼¥É¤Î°ÕÌ£¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCN=commonName\fR +\fBOU=organizationUnit\fR +\fBO=organizationName\fR +\fBL=localityName\fR +\fBS=stateName\fR +\fBC=country\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤Ë¼¨¤¹¤Î¤Ï¡¢¼±ÊÌ̾ʸ»úÎó¤ÎÎã¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US\fR + +.fi +.if n \{\ +.RE +.\} +¤³¤Îʸ»úÎó¤ò»ÈÍѤ·¤¿¥³¥Þ¥ó¥É¤ÎÎã¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBkeytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino,\fR +\fBS=California, C=US" \-alias mark\fR + +.fi +.if n \{\ +.RE +.\} +¥­¡¼¥ï¡¼¥É¤Îû½Ì·Á¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢CN¡¢cn¤ª¤è¤ÓCn¤Ï¡¢¤É¤ì¤âƱ¤¸¤â¤Î¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ +.sp +°ìÊý¡¢¥­¡¼¥ï¡¼¥É¤Î»ØÄê½ç½ø¤Ë¤Ï°ÕÌ£¤¬¤¢¤ê¡¢³Æ¥µ¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¾å¤Ë¼¨¤·¤¿½ç½ø¤Ç»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¿¤À¤·¡¢¥µ¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¤¹¤Ù¤Æ»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë°ìÉô¤Î¥µ¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¤ß¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCN=Steve Meier, OU=Java, O=Oracle, C=US\fR + +.fi +.if n \{\ +.RE +.\} +¼±ÊÌ̾ʸ»úÎó¤ÎÃͤ˥«¥ó¥Þ¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¤Çʸ»úÎó¤ò»ØÄꤹ¤ë¤È¤­¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥«¥ó¥Þ¤ò¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åʸ»ú(\e)¤Ç¥¨¥¹¥±¡¼¥×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBcn=Peter Schuster, ou=Java\e, Product Development, o=Oracle, c=US\fR + +.fi +.if n \{\ +.RE +.\} +¼±ÊÌ̾ʸ»úÎó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¼±ÊÌ̾¤òɬÍפȤ¹¤ë¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¤Ç¼±ÊÌ̾¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢³Æ¥µ¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢¥«¥ó¥Þ¤ò¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å(\e)¤Ç¥¨¥¹¥±¡¼¥×¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ +.RE +.SH "·Ù¹ð" +.SS "¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥¤¥ó¥Ý¡¼¥È·Ù¹ð" +.PP +\fB½ÅÍ×\fR: ¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¤·¤Æ¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëÁ°¤Ë¡¢¾ÚÌÀ½ñ¤ÎÆâÍÆ¤ò¿µ½Å¤ËÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£ +.PP +Windows¤ÎÎã: +.PP +¤Þ¤º¡¢\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤻ¤º¤Ë\fB\-printcert\fR¥³¥Þ¥ó¥É¤Þ¤¿¤Ï\fB\-importcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¢¾ÚÌÀ½ñ¤òɽ¼¨¤·¤Þ¤¹¡£É½¼¨¤µ¤ì¤¿¾ÚÌÀ½ñ¤Î¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬¡¢´üÂÔ¤µ¤ì¤ë¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È°ìÃפ¹¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¾ÚÌÀ½ñ¤¬Á÷¤é¤ì¤Æ¤­¤Æ¡¢¤³¤Î¾ÚÌÀ½ñ¤ò\fB\etmp\ecert\fR¤È¤¤¤¦Ì¾Á°¤Ç¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤·¤Æ¤¤¤ë¤È¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤Ë¤³¤Î¾ÚÌÀ½ñ¤òÄɲ乤ëÁ°¤Ë¡¢\fB\-printcert\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB keytool \-printcert \-file \etmp\ecert\fR +\fB Owner: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fR +\fB Issuer: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fR +\fB Serial Number: 59092b34\fR +\fB Valid from: Thu Sep 25 18:01:13 PDT 1997 until: Wed Dec 24 17:01:13 PST 1997\fR +\fB Certificate Fingerprints:\fR +\fB MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F\fR +\fB SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE\fR +\fB SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90:\fR +\fB 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4\fR +.fi +.if n \{\ +.RE +.\} +.PP +Oracle Solaris¤ÎÎã: +.PP +¤Þ¤º¡¢\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤻ¤º¤Ë\fB\-printcert\fR¥³¥Þ¥ó¥É¤Þ¤¿¤Ï\fB\-importcert\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¢¾ÚÌÀ½ñ¤òɽ¼¨¤·¤Þ¤¹¡£É½¼¨¤µ¤ì¤¿¾ÚÌÀ½ñ¤Î¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬¡¢´üÂÔ¤µ¤ì¤ë¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È°ìÃפ¹¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤¢¤ë¥æ¡¼¥¶¡¼¤«¤é¾ÚÌÀ½ñ¤¬Á÷¤é¤ì¤Æ¤­¤Æ¡¢¤³¤Î¾ÚÌÀ½ñ¤ò\fB/tmp/cert\fR¤È¤¤¤¦Ì¾Á°¤Ç¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤·¤Æ¤¤¤ë¤È¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤Ë¤³¤Î¾ÚÌÀ½ñ¤òÄɲ乤ëÁ°¤Ë¡¢\fB\-printcert\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB keytool \-printcert \-file /tmp/cert\fR +\fB Owner: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fR +\fB Issuer: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fR +\fB Serial Number: 59092b34\fR +\fB Valid from: Thu Sep 25 18:01:13 PDT 1997 until: Wed Dec 24 17:01:13 PST 1997\fR +\fB Certificate Fingerprints:\fR +\fB MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F\fR +\fB SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE\fR +\fB SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90:\fR +\fB 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¼¡¤Ë¡¢¾ÚÌÀ½ñ¤òÁ÷¿®¤·¤¿¿Íʪ¤ËÏ¢Íí¤·¡¢¤³¤Î¿Íʪ¤¬Ä󼨤·¤¿¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¡¢¾å¤Î¥³¥Þ¥ó¥É¤Çɽ¼¨¤µ¤ì¤¿¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¤òÈæ³Ó¤·¤Þ¤¹¡£¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤¬°ìÃפ¹¤ì¤Ð¡¢Á÷¿®ÅÓÃæ¤Ç¾¤Î²¿¼Ô¤«(¹¶·â¼Ô¤Ê¤É)¤Ë¤è¤ë¾ÚÌÀ½ñ¤Î¤¹¤êÂØ¤¨¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£Á÷¿®ÅÓÃæ¤Ç¤³¤Î¼ï¤Î¹¶·â¤¬¹Ô¤ï¤ì¤Æ¤¤¤¿¾ì¹ç¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤ï¤º¤Ë¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È¡¢¹¶·â¼Ô¤Ë¤è¤Ã¤Æ½ð̾¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¤â¤Î(¹¶·âŪ°Õ¿Þ¤ò»ý¤Ä¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤ò´Þ¤ó¤ÀJAR¥Õ¥¡¥¤¥ë¤Ê¤É)¤ò¿®Íꤹ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +.PP +\fBÃí°Õ:\fR +¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëÁ°¤Ë\fB\-printcert\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¥­¡¼¥¹¥È¥¢Æâ¤Î¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥ê¥¹¥È¤Ë¾ÚÌÀ½ñ¤òÄɲ乤ëÁ°¤Ë¡¢\fB\-importcert\fR¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¾ÚÌÀ½ñ¤Î¾ðÊó¤¬É½¼¨¤µ¤ì¡¢³Îǧ¤òµá¤á¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤¿¤á¤Ç¤¹¡£¥æ¡¼¥¶¡¼¤Ï¥¤¥ó¥Ý¡¼¥ÈÁàºî¤òÄä»ß¤Ç¤­¤Þ¤¹¡£¤¿¤À¤·¡¢¤³¤ì¤ò¼Â¹Ô¤Ç¤­¤ë¤Î¤Ï¡¢\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤻ¤º¤Ë\fB\-importcert\fR¥³¥Þ¥ó¥É¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤Î¤ß¤Ç¤¹¡£\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤È¤ÎÂÐÏäϹԤï¤ì¤Þ¤»¤ó¡£ +.SS "¥Ñ¥¹¥ï¡¼¥É·Ù¹ð" +.PP +¥­¡¼¥¹¥È¥¢¤ËÂФ¹¤ëÁàºî¤ò¹Ô¤¦¤Û¤È¤ó¤É¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹¡£¤Þ¤¿¡¢°ìÉô¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¢Èó¸ø³«/ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬Íפˤʤ뤳¤È¤¬¤¢¤ê¤Þ¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤Ï¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄê¤Ç¤­¤Þ¤¹(\fB\-storepass\fR¥ª¥×¥·¥ç¥ó¤È\fB\-keypass\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍÑ)¡£¤¿¤À¤·¡¢¥Æ¥¹¥ÈÌÜŪ¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï¥»¥­¥å¥¢¤Ê¥·¥¹¥Æ¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç°Ê³°¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤ä¥¹¥¯¥ê¥×¥È¤Ç¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£É¬Íפʥѥ¹¥ï¡¼¥É¤Î¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.SS "¾ÚÌÀ½ñ¤Î½àµò¤Ë´Ø¤¹¤ë·Ù¹ð" +.PP +¥¤¥ó¥¿¡¼¥Í¥Ã¥Èɸ½àRFC 5280¤Ç¤Ï¡¢X\&.509¾ÚÌÀ½ñ¤Î½àµò¤Ë´Ø¤¹¤ë¥×¥í¥Õ¥¡¥¤¥ë¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¾ÚÌÀ½ñ¤Î¥Õ¥£¡¼¥ë¥É¤ª¤è¤Ó¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ËÍ­¸ú¤ÊÃͤª¤è¤ÓÃͤÎÁȹ礻¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£É¸½à¤Ë¤Ä¤¤¤Æ¤Ï¡¢ +http://tools\&.ietf\&.org/rfc/rfc5280\&.txt¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤ +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ë¡¼¥ë¤¹¤Ù¤Æ¤¬Å¬ÍѤµ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢É¸½à¤Ë½àµò¤·¤Ê¤¤¾ÚÌÀ½ñ¤òÀ¸À®¤Ç¤­¤Þ¤¹¡£É¸½à¤Ë½àµò¤·¤Ê¤¤¾ÚÌÀ½ñ¤Ï¡¢JRE¤ä¾¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇµñÈݤµ¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤Ï¡¢\fB\-dname\fR¤ä\fB\-ext\fR¤Ê¤É¤ÇŬÀµ¤Ê¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ +.SH "Ãí°Õ" +.SS "¿·¤·¤¤¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥¤¥ó¥Ý¡¼¥È" +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¥­¡¼¥¹¥È¥¢¤Ë¾ÚÌÀ½ñ¤òÄɲ乤ëÁ°¤Ë¡¢¥­¡¼¥¹¥È¥¢Æâ¤Ë¤¹¤Ç¤Ë¸ºß¤¹¤ë¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤ò»ÈÍѤ·¤Æ¡¢¥¤¥ó¥Ý¡¼¥È¤¹¤ë¾ÚÌÀ½ñ¤«¤é(¥ë¡¼¥ÈCA¤Î)¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ë»ê¤ë¤Þ¤Ç¤Î¿®Íê¤Î¥Á¥§¡¼¥ó¤Î¹½ÃÛ¤ò»î¤ß¤Þ¤¹¡£ +.PP +\fB\-trustcacerts\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ÄɲäξÚÌÀ½ñ¤Ï¿®Íê¤Ç¤­¤ë¤¹¤Ê¤ï¤Á\fBcacerts\fR¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£ +.PP +\fBkeytool\fR¥³¥Þ¥ó¥É¤¬¡¢¥¤¥ó¥Ý¡¼¥È¤¹¤ë¾ÚÌÀ½ñ¤«¤é¼«¸Ê½ð̾¾ÚÌÀ½ñ(¥­¡¼¥¹¥È¥¢¤Þ¤¿¤Ï\fBcacerts\fR¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¼«¸Ê½ð̾¾ÚÌÀ½ñ)¤Ë»ê¤ë¤Þ¤Ç¤Î¿®Íê¤Î¥Ñ¥¹¤Î¹½Ãۤ˼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥¤¥ó¥Ý¡¼¥È¤¹¤ë¾ÚÌÀ½ñ¤Î¾ðÊó¤òɽ¼¨¤·¡¢¥æ¡¼¥¶¡¼¤Ë³Îǧ¤òµá¤á¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï¡¢É½¼¨¤µ¤ì¤¿¾ÚÌÀ½ñ¤Î¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¡¢Â¾¤Î¤Ê¤ó¤é¤«¤Î(¿®Íê¤Ç¤­¤ë)¾ðÊó¸»(¾ÚÌÀ½ñ¤Î½êÍ­¼Ô¤Ê¤É)¤«¤éÆþ¼ê¤·¤¿¥Õ¥£¥ó¥¬¡¼¥×¥ê¥ó¥È¤È¤òÈæ³Ó¤·¤Þ¤¹¡£¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤È¤·¤Æ¾ÚÌÀ½ñ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È¤­¤Ï¡¢¾ÚÌÀ½ñ¤¬Í­¸ú¤Ç¤¢¤ë¤³¤È¤ò¿µ½Å¤Ë³Îǧ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤Î¥¤¥ó¥Ý¡¼¥È·Ù¹ð¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¥¤¥ó¥Ý¡¼¥ÈÁàºî¤Ï¡¢¾ÚÌÀ½ñ¤ò³Îǧ¤¹¤ë»þÅÀ¤ÇÃæ»ß¤Ç¤­¤Þ¤¹¡£\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥æ¡¼¥¶¡¼¤È¤ÎÂÐÏäϹԤï¤ì¤Þ¤»¤ó¡£ +.SS "¾ÚÌÀ½ñ±þÅú¤Î¥¤¥ó¥Ý¡¼¥È" +.PP +¾ÚÌÀ½ñ±þÅú¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È¤­¤Ï¡¢¥­¡¼¥¹¥È¥¢Æâ¤Î¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¡¢¤ª¤è¤Ó(\fB\-trustcacert\fR\fBs\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï)\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ë¤Ç¹½À®¤µ¤ì¤¿¾ÚÌÀ½ñ¤ò»ÈÍѤ·¤Æ¾ÚÌÀ½ñ±þÅú¤¬¸¡ºº¤µ¤ì¤Þ¤¹¡£cacerts¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.PP +¾ÚÌÀ½ñ±þÅú¤¬¿®Íê¤Ç¤­¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ëÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¾ÚÌÀ½ñ±þÅú¤¬Ã±°ì¤ÎX\&.509¾ÚÌÀ½ñ¤Ç¤¢¤ë¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¾ÚÌÀ½ñ±þÅú¤«¤é(¥ë¡¼¥ÈCA¤Î)¼«¸Ê½ð̾¾ÚÌÀ½ñ¤Ë»ê¤ë¤Þ¤Ç¤Î¿®Íê¥Á¥§¡¼¥ó¤Î³ÎΩ¤ò»î¤ß¤Þ¤¹¡£¾ÚÌÀ½ñ±þÅú¤È¡¢¾ÚÌÀ½ñ±þÅú¤Îǧ¾Ú¤Ë»ÈÍѤµ¤ì¤ë¾ÚÌÀ½ñ¤Î³¬Áع½Â¤¤Ï¡¢alias¤Î¿·¤·¤¤¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò·ÁÀ®¤·¤Þ¤¹¡£¿®Íê¥Á¥§¡¼¥ó¤¬³ÎΩ¤µ¤ì¤Ê¤¤¾ì¹ç¡¢¾ÚÌÀ½ñ±þÅú¤Ï¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£¤³¤Î¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¾ÚÌÀ½ñ¤ò½ÐÎϤ»¤º¡¢¥æ¡¼¥¶¡¼¤Ë¸¡¾Ú¤òµá¤á¤ë¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤¬¾ÚÌÀ½ñ±þÅú¤Î¿®ÍêÀ­¤òȽÃǤ¹¤ë¤Î¤ÏÈó¾ï¤ËÆñ¤·¤¤¤¿¤á¤Ç¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¾ÚÌÀ½ñ±þÅú¤¬PKCS#7·Á¼°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Þ¤¿¤Ï°ìÏ¢¤ÎX\&.509¾ÚÌÀ½ñ¤Ç¤¢¤ë¾ì¹ç¡¢¥Á¥§¡¼¥ó¤Ï¡¢¥æ¡¼¥¶¡¼¤Î¾ÚÌÀ½ñ¤¬ºÇ½é¤Ë¡¢0°Ê¾å¤ÎCA¾ÚÌÀ½ñ¤¬¤½¤Î¼¡¤Ë¤¯¤ë¤è¤¦¤Ëʤ٤é¤ì¤Þ¤¹¡£¥Á¥§¡¼¥ó¤¬¼«¸Ê½ð̾¤Î¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤Ç½ª¤ï¤ê¡¢\fB \-trustcacerts\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¤½¤Î¾ÚÌÀ½ñ¤È¡¢¥­¡¼¥¹¥È¥¢Æâ¤Þ¤¿¤Ï\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ëÆâ¤Î¿®Íê¤Ç¤­¤ë¤¹¤Ù¤Æ¤Î¾ÚÌÀ½ñ¤ò¾È¹ç¤·¤è¤¦¤È¤·¤Þ¤¹¡£¥Á¥§¡¼¥ó¤¬¼«¸Ê½ð̾¤Î¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤Ç½ª¤ï¤Ã¤Æ¤ª¤é¤º¡¢\fB\-trustcacerts\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢\fBkeytool\fR¥³¥Þ¥ó¥É¤Ï¡¢¥­¡¼¥¹¥È¥¢Æâ¤Þ¤¿¤Ï\fBcacerts\fR¥­¡¼¥¹¥È¥¢¡¦¥Õ¥¡¥¤¥ëÆâ¤Î¿®Íê¤Ç¤­¤ë¾ÚÌÀ½ñ¤«¤é¼«¸Ê½ð̾¤Î¥ë¡¼¥ÈCA¾ÚÌÀ½ñ¤ò¸«¤Ä¤±¤Æ¤½¤ì¤ò¥Á¥§¡¼¥ó¤ÎËöÈø¤ËÄɲ䷤褦¤È¤·¤Þ¤¹¡£¤½¤Î¾ÚÌÀ½ñ¤¬¸«¤Ä¤«¤é¤º¡¢\fB\-noprompt\fR¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥Á¥§¡¼¥óÆâ¤ÎºÇ¸å¤Î¾ÚÌÀ½ñ¤Î¾ðÊ󤬽ÐÎϤµ¤ì¡¢¥æ¡¼¥¶¡¼¤Ï³Îǧ¤òµá¤á¤é¤ì¤Þ¤¹¡£ +.RE +.PP +¾ÚÌÀ½ñ±þÅúÆâ¤Î¸ø³«¸°¤¬\fBalias\fR¤Ç¤¹¤Ç¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Î¸ø³«¸°¤Ë°ìÃפ·¤¿¾ì¹ç¡¢¸Å¤¤¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤¬±þÅúÆâ¤Î¿·¤·¤¤¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£°ÊÁ°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òÍ­¸ú¤Ê\fBkeypass\fR¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ï¡¢¥¨¥ó¥È¥ê¤ÎÈëÌ©¸°¤òÊݸ¤ë¤¿¤á¤Î¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤¿¾ì¹ç¤Î¤ß¤Ç¤¹¡£¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Æ¤ª¤é¤º¡¢ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¥­¡¼¥¹¥È¥¢¤Î¥Ñ¥¹¥ï¡¼¥É¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢ÈëÌ©¸°¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÆþÎϤòµá¤á¤é¤ì¤Þ¤¹¡£ +.PP +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï\fB\-import\fR¤È¤¤¤¦Ì¾Á°¤Ç¤·¤¿¡£¤³¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢°ú¤­Â³¤­¸Å¤¤Ì¾Á°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£º£¸å¤Ï¡¢¿·¤·¤¤Ì¾Á°\fB\-importcert\fR¤¬Í¥À褵¤ì¤Þ¤¹¡£ +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jarsigner(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +http://docs\&.oracle\&.com/javase/tutorial/security/index\&.html¤Ë¤¢¤ë +¡Ö¥³¡¼¥¹: Java SE¤Î¥»¥­¥å¥ê¥Æ¥£µ¡Ç½¡× +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/pack200.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/pack200.1 new file mode 100755 index 0000000..7fbe0f2 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/pack200.1 @@ -0,0 +1,373 @@ +'\" t +.\" Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: pack200 +.\" Language: Japanese +.\" Date: 2013ǯ11·î21Æü +.\" SectDesc: Java¥Ç¥×¥í¥¤¥á¥ó¥È¡¦¥Ä¡¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "pack200" "1" "2013ǯ11·î21Æü" "JDK 8" "Java¥Ç¥×¥í¥¤¥á¥ó¥È¡¦¥Ä¡¼¥ë" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +pack200 \- Web¥Ç¥×¥í¥¤¥á¥ó¥È¤Î¤¿¤á¤ËJAR¥Õ¥¡¥¤¥ë¤òpack200°µ½Ì¥Õ¥¡¥¤¥ë¤Ë¥Ñ¥Ã¥±¡¼¥¸¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpack200\fR [\fIoptions\fR] \fIoutput\-file\fR \fIJAR\-file\fR +.fi +.if n \{\ +.RE +.\} +.PP +¥ª¥×¥·¥ç¥ó¤ÏǤ°Õ¤Î½ç½ø¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¤Þ¤¿¤Ïproperties¥Õ¥¡¥¤¥ë¤Ë»ØÄꤵ¤ì¤¿ºÇ¸å¤Î¥ª¥×¥·¥ç¥ó¤¬¡¢¤½¤ì°ÊÁ°¤Ë»ØÄꤵ¤ì¤¿¤¹¤Ù¤Æ¤Î¥ª¥×¥·¥ç¥ó¤è¤êÍ¥À褵¤ì¤Þ¤¹¡£ +.PP +\fIoptions\fR +.RS 4 +¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡£¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fIoutput\-file\fR +.RS 4 +½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£ +.RE +.PP +\fIJAR\-file\fR +.RS 4 +ÆþÎÏ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBpack200\fR¥³¥Þ¥ó¥É¤Ï¡¢Java gzip¥³¥ó¥×¥ì¥Ã¥µ¤ò»ÈÍѤ·¤ÆJAR¥Õ¥¡¥¤¥ë¤òpack200°µ½Ì¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤¹¤ëJava¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¡£pack200¥Õ¥¡¥¤¥ë¤Ï¹â°µ½Ì¤Î¥Õ¥¡¥¤¥ë¤Ç¡¢Ä¾ÀÜ¥Ç¥×¥í¥¤¤Ç¤­¡¢ÂÓ°èÉý¤ÎÀáÌó¤ä¥À¥¦¥ó¥í¡¼¥É»þ´Ö¤Îû½Ì¤¬²Äǽ¤Ç¤¹¡£ +.PP +\fBpack200\fR¥³¥Þ¥ó¥É¤Ë¤Ï¡¢°µ½Ì¥¨¥ó¥¸¥ó¤ÎÀßÄê¤äÈùÄ´À°¤ò¹Ô¤¦¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£°ìÈÌŪ¤Ê»ÈÍÑÊýË¡¤ò¼¡¤ÎÎã¤Ë¼¨¤·¤Þ¤¹¡£\fBmyarchive\&.pack\&.gz\fR¤¬¥Ç¥Õ¥©¥ë¥È¤Î\fBpack200\fR¥³¥Þ¥ó¥ÉÀßÄê¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpack200 myarchive\&.pack\&.gz myarchive\&.jar\fR + +.fi +.if n \{\ +.RE +.\} +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\-r +.br +\-\-repack +.RS 4 +JAR¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥¯¤·¤¿¸å¥¢¥ó¥Ñ¥Ã¥¯¤·¤Æ¡¢JAR¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£À¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï\fBjarsigner\fR(1)¥Ä¡¼¥ë¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤È¤·¤Æ»ÈÍѤǤ­¤Þ¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢myarchive\&.jar¥Õ¥¡¥¤¥ë¤ò¥Ñ¥Ã¥¯¤·¤¿¸å¡¢¥¢¥ó¥Ñ¥Ã¥¯¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpack200 \-\-repack myarchive\-packer\&.jar myarchive\&.jar\fR +\fBpack200 \-\-repack myarchive\&.jar\fR + +.fi +.if n \{\ +.RE +.\} +¼¡¤ÎÎã¤Ç¤Ï¡¢ÆþÎÏ¥Õ¥¡¥¤¥ëÆâ¤Î¥Õ¥¡¥¤¥ë¤Î½ç½ø¤òÊÝ»ý¤·¤Þ¤¹¡£ +.RE +.PP +\-g +.br +\-\-no\-gzip +.RS 4 +\fBpack200\fR¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤­¤Ï¡¢Å¬Àڤʰµ½Ì¥Ä¡¼¥ë¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¥¿¡¼¥²¥Ã¥È¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Âбþ¤¹¤ë°µ½Ì²ò½ü¥Ä¡¼¥ë¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpack200 \-\-no\-gzip myarchive\&.pack myarchive\&.jar\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-G +.br +\-\-strip\-debug +.RS 4 +½ÐÎϤ«¤é¥Ç¥Ð¥Ã¥°Â°À­¤òºï½ü¤·¤Þ¤¹¡£¤³¤ì¤Ë¤Ï¡¢\fBSourceFile\fR¡¢\fBLineNumberTable\fR¡¢\fBLocalVariableTable\fR¡¢\fBLocalVariableTypeTable\fR¤¬´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î°À­¤òºï½ü¤¹¤ì¤Ð¡¢¥À¥¦¥ó¥í¡¼¥É¤È¥¤¥ó¥¹¥È¡¼¥ë¤Î¥µ¥¤¥º¤Ï¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¥Ç¥Ð¥Ã¥¬¤Îµ¡Ç½¤ÏÀ©¸Â¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-\-keep\-file\-order +.RS 4 +ÆþÎÏ¥Õ¥¡¥¤¥ëÆâ¤Î¥Õ¥¡¥¤¥ë¤Î½ç½ø¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¹¡£ +.RE +.PP +\-O +.br +\-\-no\-keep\-file\-order +.RS 4 +¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ï¡¢¤¹¤Ù¤Æ¤ÎÍ×ÁǤòʤÙÂØ¤¨¤ÆÁ÷¿®¤·¤Þ¤¹¡£¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ï¡¢JAR¥Ç¥£¥ì¥¯¥È¥ê̾¤òºï½ü¤·¤Æ¥À¥¦¥ó¥í¡¼¥É¡¦¥µ¥¤¥º¤òºï¸º¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¿¤À¤·¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ê¤É¡¢ÆÃÄê¤ÎJAR¥Õ¥¡¥¤¥ë¤ÎºÇŬ²½µ¡Ç½¤¬Àµ¾ï¤Ëưºî¤·¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-S\fIvalue\fR +.br +\-\-segment\-limit=\fIvalue\fR +.RS 4 +¤³¤ÎÃͤϡ¢³Æ¥¢¡¼¥«¥¤¥Ö¡¦¥»¥°¥á¥ó¥È¤ÎͽÁÛ¥¿¡¼¥²¥Ã¥È¡¦¥µ¥¤¥º\fIN\fR +(¥Ð¥¤¥Èñ°Ì)¤Ç¤¹¡£Ã±°ì¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ÎɬÍ×¥µ¥¤¥º¤¬\fIN\fR¥Ð¥¤¥È¤òͤ¨¤ë¤È¡¢¸ÇÍ­¤Î¥¢¡¼¥«¥¤¥Ö¡¦¥»¥°¥á¥ó¥È¤¬Ä󶡤µ¤ì¤Þ¤¹¡£ÆÃ¼ì¤Ê¥±¡¼¥¹¤È¤·¤Æ¡¢Ãͤ¬\fB\-1\fR¤Î¾ì¹ç¤Ï¡¢¤¹¤Ù¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ò´Þ¤àÂ礭¤Êñ°ì¤Î¥»¥°¥á¥ó¥È¤¬À¸À®¤µ¤ì¡¢Ãͤ¬0¤Î¾ì¹ç¤Ï¡¢¥¯¥é¥¹¤´¤È¤Ë¥»¥°¥á¥ó¥È¤¬1¤Ä¤º¤ÄÀ¸À®¤µ¤ì¤Þ¤¹¡£¥¢¡¼¥«¥¤¥Ö¡¦¥»¥°¥á¥ó¥È¤¬Â礭¤¯¤Ê¤ë¤È¡¢ÃÇÊÒ²½¤¬¾¯¤Ê¤¯¤Ê¤ê°µ½ÌΨ¤¬¹â¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤Î½èÍý¤Ë¤Ï¿¤¯¤Î¥á¥â¥ê¡¼¤¬É¬ÍפǤ¹¡£ +.sp +³Æ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤Ï¡¢¥»¥°¥á¥ó¥È¤ËÊÑ´¹¤µ¤ì¤ë¤½¤ì¤¾¤ì¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Î¤Û¤«¡¢¤½¤Î̾Á°¤È¾¤ÎÁ÷¿®¤µ¤ì¤ë¥×¥í¥Ñ¥Æ¥£¤Î¥µ¥¤¥º¤ò·×»»¤·¤Æ¿ä¬¤µ¤ì¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ï\-1¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ïñ°ì¤Î¥»¥°¥á¥ó¥È½ÐÎÏ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£¶Ëü¤ËÂ礭¤Ê½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò¥»¥°¥á¥ó¥È²½(ʬ³ä)¤·¤Æ¤è¤ê¾®¤µ¤ÊJAR¤Ë¤¹¤ë¤³¤È¤ò¶¯¤¯¤ªÁ¦¤á¤·¤Þ¤¹¡£ +.sp +¤³¤ÎÀ©¸Â¤¬²Ý¤µ¤ì¤Æ¤¤¤Ê¤¤10 MB¤ÎJAR¥Ñ¥Ã¥¯¡¦¥Õ¥¡¥¤¥ë¤ÏÄ̾Ìó10%¾®¤µ¤¯¥Ñ¥Ã¥¯¤µ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ç¤è¤êÂ礭¤ÊJava¥Ò¡¼¥×(¥»¥°¥á¥ó¥È¤ÎÀ©¸Â¤ÎÌó10ÇÜ)¤òɬÍפȤ¹¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£ +.RE +.PP +\-E\fIvalue\fR +.br +\-\-effort=\fIvalue\fR +.RS 4 +ñ°ì¤Î10¿Ê¿ôÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿°µ½ÌΨ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò°µ½Ì¤·¤Þ¤¹¡£¥ì¥Ù¥ë1¤Î¾ì¹ç¤Ï¡¢Èæ³ÓŪû¤¤°µ½Ì»þ´Ö¤Ç¿¾¯Â礭¤á¤Î¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¤¬¡¢¥ì¥Ù¥ë9¤Î¾ì¹ç¤Ï¡¢Èó¾ï¤ËŤ¤»þ´Ö¤¬¤«¤«¤ë¤â¤Î¤Î¡¢¤è¤ê°µ½ÌΨ¤Î¹â¤¤¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ÆÃ¼ì¤ÊÃÍ0¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢\fBpack200\fR¥³¥Þ¥ó¥É¤Ï¸µ¤ÎJAR¥Õ¥¡¥¤¥ë¤ò°µ½Ì¤Ê¤·¤ÇľÀÜ¥³¥Ô¡¼¤·¤Þ¤¹¡£JSR 200ɸ½à¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î²òÅà¥×¥í¥°¥é¥à¤¬¡¢¤³¤ÎÆÃÊ̤ʾì¹ç¤ò¥¢¡¼¥«¥¤¥ÖÁ´ÂΤΥѥ¹¥¹¥ë¡¼¤È²ò¼á¤¹¤ë¤è¤¦¤Ëµ¬Äꤷ¤Æ¤¤¤Þ¤¹¡£ +.sp +¥Ç¥Õ¥©¥ë¥È¤Ï5¤Ç¤¹¡£¤³¤Î¾ì¹ç¡¢É¸½àŪ¤Ê»þ´Ö¤ÇŬÀڤʰµ½Ì¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ +.RE +.PP +\-H\fIvalue\fR +.br +\-\-deflate\-hint=\fIvalue\fR +.RS 4 +ÆþÎϾðÊó¤òÊݸ¤¹¤ë¤È¤¤¤¦¥Ç¥Õ¥©¥ë¥ÈÃͤò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹¡£Å¾Á÷¤µ¤ì¤ë¥¢¡¼¥«¥¤¥Ö¤Î¥µ¥¤¥º¤ÏÂ礭¤¯¤Ê¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£»ØÄê²Äǽ¤ÊÃͤϡ¢\fBtrue\fR¡¢\fBfalse\fR¤Þ¤¿¤Ï\fBkeep\fR¤Ç¤¹¡£ +.sp +\fBvalue\fR¤¬\fBtrue\fR¤Þ¤¿¤Ïfalse¤Î¾ì¹ç¡¢\fBpacker200\fR¥³¥Þ¥ó¥É¤Ï»ØÄê¤Ë½¾¤Ã¤Æ¥Ç¥Õ¥ì¡¼¥·¥ç¥ó¡¦¥Ò¥ó¥È¤ò½ÐÎÏ¥¢¡¼¥«¥¤¥Ö¤ËÀßÄꤷ¤Þ¤¹¡£¥¢¡¼¥«¥¤¥ÖÍ×ÁǤθġ¹¤Î¥Ç¥Õ¥ì¡¼¥·¥ç¥ó¡¦¥Ò¥ó¥È¤ÏžÁ÷¤µ¤ì¤Þ¤»¤ó¡£ +.sp +\fBkeep\fRÃͤϡ¢ÆþÎÏJAR¤Ç³Îǧ¤µ¤ì¤¿¥Ç¥Õ¥ì¡¼¥·¥ç¥ó¡¦¥Ò¥ó¥È¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£ +.RE +.PP +\-m\fIvalue\fR +.br +\-\-modification\-time=\fIvalue\fR +.RS 4 +»ØÄê²Äǽ¤ÊÃͤÏ\fBlatest\fR¤È\fBkeep\fR¤Ç¤¹¡£ +.sp +Ãͤ¬ºÇ¿·¤Î¾ì¹ç¡¢¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ï¡¢¸µ¤Î¥¢¡¼¥«¥¤¥Ö¤Î»ÈÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤Î¤¦¤Á¤ÎºÇ½ª¹¹¿·»þ¹ï¤«¡¢¤½¤Î¥»¥°¥á¥ó¥È¤Î»ÈÍѲÄǽ¤Ê¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤ÎºÇ½ª¹¹¿·»þ¹ï¤òÆÃÄꤷ¤è¤¦¤È¤·¤Þ¤¹¡£¤³¤Îñ°ì¤ÎÃͤϥ»¥°¥á¥ó¥È¤Î°ìÉô¤È¤·¤ÆÅ¾Á÷¤µ¤ì¡¢³Æ¥»¥°¥á¥ó¥È¤ÎÁ´¥¨¥ó¥È¥ê¤ËŬÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¤¹¤Ù¤Æ¤Î¥¤¥ó¥¹¥È¡¼¥ë¡¦¥Õ¥¡¥¤¥ë¤Ëñ°ì¤ÎÆüÉÕ¤¬ÀßÄꤵ¤ì¤ë¤È¤¤¤¦ÌäÂê¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¥¢¡¼¥«¥¤¥Ö¤ÎžÁ÷¥µ¥¤¥º¤ò¾¯¤·¾®¤µ¤¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +Ãͤ¬\fBkeep\fR¤Î¾ì¹ç¡¢ÆþÎÏJAR¤Ç³Îǧ¤µ¤ì¤¿Êѹ¹»þ´Ö¤¬ÊÝ»ý¤µ¤ì¤Þ¤¹¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£ +.RE +.PP +\-P\fIfile\fR +.br +\-\-pass\-file=\fIfile\fR +.RS 4 +¥Õ¥¡¥¤¥ë¤ò°µ½Ì¤»¤º¡¢¥Ð¥¤¥Èñ°Ì¤ÇžÁ÷¤¹¤ë¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò·«ÊÖ¤·»ÈÍѤ·¤Æ¡¢Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¥·¥¹¥Æ¥à¡¦¥Õ¥¡¥¤¥ë¡¦¥»¥Ñ¥ì¡¼¥¿¤¬JAR¥Õ¥¡¥¤¥ë¡¦¥»¥Ñ¥ì¡¼¥¿¤Î¥¹¥é¥Ã¥·¥å(/)¤ËÃÖ¤­´¹¤¨¤é¤ì¤ëÅÀ¤ò½ü¤­¡¢¥Ñ¥¹Ì¾¤ÎÊÑ´¹¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£·ë²Ì¤È¤·¤ÆÆÀ¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤Ï¡¢Ê¸»úÎó¤È¤·¤ÆÀµ³Î¤ËJAR¥Õ¥¡¥¤¥ë¤Ç¤Î½Ð¸½¤È°ìÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£\fBfile\fR¤Ë¥Ç¥£¥ì¥¯¥È¥ê̾¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤¬Å¾Á÷¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-U\fIaction\fR +.br +\-\-unknown\-attribute=\fIaction\fR +.RS 4 +¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ÉÔÌÀ¤Ê°À­¤ò´Þ¤à¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤¬¡¢»ØÄꤷ¤¿\fBaction\fR¤Ë¤è¤Ã¤ÆÅϤµ¤ì¤Þ¤¹¡£¥¢¥¯¥·¥ç¥ó¤È¤·¤Æ»ØÄê²Äǽ¤ÊÃͤϡ¢\fBerror\fR¡¢\fBstrip\fR¤Þ¤¿¤Ï\fBpass\fR¤Ç¤¹¡£ +.sp +Ãͤ¬\fBerror\fR¤Î¾ì¹ç¡¢\fBpack200\fR¥³¥Þ¥ó¥ÉÁàºîÁ´ÂΤ¬¼ºÇÔ¤·¤ÆÅ¬ÀÚ¤ÊÀâÌÀ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +.sp +Ãͤ¬\fBstrip\fR¤Î¾ì¹ç¡¢Â°À­¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£Java Virtual Machine (JVM)ɬ¿Ü°À­¤òºï½ü¤¹¤ë¤È¡¢¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤Î¾ã³²¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ +.sp +Ãͤ¬\fBpass\fR¤Î¾ì¹ç¡¢¥¯¥é¥¹Á´ÂΤ¬1¤Ä¤Î¥ê¥½¡¼¥¹¤È¤·¤ÆÅ¾Á÷¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-C\fIattribute\-name\fR=\fIlayout\fR +.br +\-\-class\-attribute=\fIattribute\-name\fR=\fIaction\fR +.RS 4 +¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-F\fIattribute\-name\fR=\fIlayout\fR +.br +\-\-field\-attribute=\fIattribute\-name\fR=\fIaction\fR +.RS 4 +¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-M\fIattribute\-name\fR=\fIlayout\fR +.br +\-\-method\-attribute=\fIattribute\-name\fR=\fIaction\fR +.RS 4 +¼¡¤Î¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\-D\fIattribute\-name\fR=\fIlayout\fR +.br +\-\-code\-attribute=\fIattribute\-name\fR=\fIaction\fR +.RS 4 +Á°½Ò¤Î4¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢¥¯¥é¥¹¡¦¥¨¥ó¥Æ¥£¥Æ¥£¤Ë\fBclass\-attribute\fR¡¢\fBfield\-attribute\fR¡¢\fBmethod\-attribute\fR¤ª¤è¤Ó\fBcode\-attribute\fR¤Ê¤É¤Î°À­¤Î¥ì¥¤¥¢¥¦¥È¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£\fIattribute\-name\fR¤Ë¤Ï¡¢¤³¤ì¤«¤é¥ì¥¤¥¢¥¦¥È¤Þ¤¿¤Ï¥¢¥¯¥·¥ç¥ó¤òÄêµÁ¤¹¤ë°À­¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£\fIaction\fR¤È¤·¤Æ»ØÄê²Äǽ¤ÊÃͤϡ¢\fBsome\-layout\-string\fR¡¢\fBerror\fR¡¢\fBstrip\fR¡¢\fBpass\fR¤Ç¤¹¡£ +.sp +\fBsome\-layout\-string\fR: ¥ì¥¤¥¢¥¦¥È¸À¸ì¤ÏJSR 200»ÅÍͤÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Îã: +\fB\-\-class\-attribute=SourceFile=RUH\fR¡£ +.sp +Ãͤ¬\fBerror\fR¤Î¾ì¹ç¡¢\fBpack200\fRÁàºî¤¬¼ºÇÔ¤·¤ÆÀâÌÀ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +.sp +Ãͤ¬\fBstrip\fR¤Î¾ì¹ç¡¢Â°À­¤¬½ÐÎϤ«¤éºï½ü¤µ¤ì¤Þ¤¹¡£VMɬ¿Ü°À­¤òºï½ü¤¹¤ë¤È¥¯¥é¥¹¡¦¥í¡¼¥À¡¼¤Î¾ã³²¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fB\-\-class\-attribute=CompilationID=pass\fR¤È¤¤¤¦¤³¤Î°À­¤ò´Þ¤à¥¯¥é¥¹¡¦¥Õ¥¡¥¤¥ë¤òžÁ÷¤·¤Þ¤¹¡£¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤Ï¡¢¤½¤Î¾¤Î¥¢¥¯¥·¥ç¥ó¤ò¹Ô¤¤¤Þ¤»¤ó¡£ +.sp +Ãͤ¬\fBpass\fR¤Î¾ì¹ç¡¢¥¯¥é¥¹Á´ÂΤ¬1¤Ä¤Î¥ê¥½¡¼¥¹¤È¤·¤ÆÅ¾Á÷¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-f \fIpack\&.properties\fR +.br +\-\-config\-file=\fIpack\&.properties\fR +.RS 4 +¥³¥Þ¥ó¥É¹Ô¤Ë¡¢¥Ñ¥Ã¥¯¡¦¥Ä¡¼¥ë¤ò½é´ü²½¤¹¤ë¤¿¤á¤ÎJava¥×¥í¥Ñ¥Æ¥£¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¹½À®¥Õ¥¡¥¤¥ë¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpack200 \-f pack\&.properties myarchive\&.pack\&.gz myarchive\&.jar\fR +\fBmore pack\&.properties\fR +\fB# Generic properties for the packer\&.\fR +\fBmodification\&.time=latest\fR +\fBdeflate\&.hint=false\fR +\fBkeep\&.file\&.order=false\fR +\fB# This option will cause the files bearing new attributes to\fR +\fB# be reported as an error rather than passed uncompressed\&.\fR +\fBunknown\&.attribute=error\fR +\fB# Change the segment limit to be unlimited\&.\fR +\fBsegment\&.limit=\-1\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-v +.br +\-\-verbose +.RS 4 +ºÇ¾®¸Â¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÊ£¿ô»ØÄꤹ¤ë¤È¡¢¤è¤êŤ¤¥á¥Ã¥»¡¼¥¸¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-q +.br +\-\-quiet +.RS 4 +¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤»¤º¤Ëưºî¤¹¤ë¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-l\fIfilename\fR +.br +\-\-log\-file=\fIfilename\fR +.RS 4 +½ÐÎÏ¥á¥Ã¥»¡¼¥¸¤Î¥í¥°¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-? +.br +\-h +.br +\-\-help +.RS 4 +¤³¤Î¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ë¥Ø¥ë¥×¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-V +.br +\-\-version +.RS 4 +¤³¤Î¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-J\fIoption\fR +.RS 4 +»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó¤òJava Virtual Machine¤ËÅϤ·¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢java(1)¥³¥Þ¥ó¥É¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¡¦¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢\fB\-J\-Xms48m\fR¤È»ØÄꤹ¤ë¤È¡¢¥¹¥¿¡¼¥È¥¢¥Ã¥×¡¦¥á¥â¥ê¡¼¤Ï48MB¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ +.RE +.SH "½ªÎ»¥¹¥Æ¡¼¥¿¥¹" +.PP +¼¡¤Î½ªÎ»Ãͤ¬ÊÖ¤µ¤ì¤Þ¤¹: Àµ¾ï½ªÎ»¤Î¾ì¹ç¤Ï0¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï0¤è¤êÂ礭¤¤ÃÍ¡£ +.SH "Ãí°Õ" +.PP +¤³¤Î¥³¥Þ¥ó¥É¤È\fBpack\fR(1)¤òº®Æ±¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\fBpack\fR¤ª¤è¤Ó\fBpack200\fR¥³¥Þ¥ó¥É¤Ï¡¢ÊÌ¡¹¤ÎÀ½ÉʤǤ¹¡£ +.PP +JDK¤ËÉÕ°¤¹¤ëJava SE API»ÅÍͤȤÎÁê°ã¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»ÅÍͤòÍ¥À褷¤Æ¤¯¤À¤µ¤¤¡£ +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +unpack200(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jarsigner(1) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmid.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmid.1 new file mode 100755 index 0000000..1e2c1f8 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmid.1 @@ -0,0 +1,373 @@ +'\" t +.\" Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: rmid +.\" Language: Japanese +.\" Date: 2013ǯ11·î21Æü +.\" SectDesc: Remote Method Invocation (RMI)¥Ä¡¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "rmid" "1" "2013ǯ11·î21Æü" "JDK 8" "Remote Method Invocation (RMI)" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +rmid \- µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤ò³«»Ï¤¹¤ë¤È¡¢¥ª¥Ö¥¸¥§¥¯¥È¤òJava Virtual Machine(VM)¤ËÅÐÏ¿¤·¤Æ¥¢¥¯¥Æ¥£¥Ö²½¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid\fR [\fIoptions\fR] +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡£¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBrmid\fR¥³¥Þ¥ó¥É¤Ï¡¢µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤ò³«»Ï¤·¤Þ¤¹¡£µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤ò³«»Ï¤·¤Æ¤«¤é¤Ç¤Ê¤¤¤È¡¢¥¢¥¯¥Æ¥£¥Ö²½²Äǽ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥¯¥Æ¥£¥Ö²½¥·¥¹¥Æ¥à¤ËÅÐÏ¿¤·¤¿¤ê¡¢JVMÆâ¤Ç¥¢¥¯¥Æ¥£¥Ö²½¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¥¢¥¯¥Æ¥£¥Ö²½²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ò»ÈÍѤ¹¤ë¥×¥í¥°¥é¥à¤ÎºîÀ®ÊýË¡¤Î¾ÜºÙ¤Ï¡¢\fI¥¢¥¯¥Æ¥£¥Ö²½¤Î»ÈÍÑ\fR¤Ë´Ø¤¹¤ë¥Á¥å¡¼¥È¥ê¥¢¥ë(http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/rmi/activation/overview\&.html)¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤ +.PP +\fBrmid\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¡¢¼¡¤Î¤è¤¦¤Ë¥»¥­¥å¥ê¥Æ¥£¡¦¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¡¢¥Ç¡¼¥â¥ó¤òµ¯Æ°¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy\fR + +.fi +.if n \{\ +.RE +.\} +.PP +\fBrmid\fR¥³¥Þ¥ó¥É¤ÎOracle¤Î¼ÂÁõ¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¡¦¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤ì¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬µ¯Æ°¥°¥ë¡¼¥×ÍѤËJVM¤òµ¯Æ°¤¹¤ë¤¿¤á¤Ë³Æ\fBActivationGroupDesc\fRÆâ¤Î¾ðÊó¤ò»ÈÍѤǤ­¤ë¤«¤É¤¦¤«¤ò¸¡¾Ú¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹ÆÃ¤Ë¡¢\fBActivationGroupDesc\fR¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÅϤµ¤ì¤ë\fBCommandEnvironment\fR¤äǤ°Õ¤Î¥×¥í¥Ñ¥Æ¥£¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¥³¥Þ¥ó¥É¤ª¤è¤Ó¥ª¥×¥·¥ç¥ó¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Î¥»¥­¥å¥ê¥Æ¥£¡¦¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÌÀ¼¨Åª¤Ëµö²Ä¤¹¤ë¤³¤È¤¬É¬Íפˤʤê¤Þ¤·¤¿¡£\fBsun\&.rmi\&.activation\&.execPolicy\fR¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϡ¢µ¯Æ°¥°¥ë¡¼¥×ÍѤËJVM¤òµ¯Æ°¤¹¤ë¤¿¤á¤Ë\fBActivationGroupDesc\fRÆâ¤Î¾ðÊó¤ò»ÈÍѤǤ­¤ë¤«¤É¤¦¤«¤òȽÃǤ¹¤ë¤È¤­¤Ë\fBrmid\fR¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë¥Ý¥ê¥·¡¼¤ò·èÄꤷ¤Þ¤¹¡£¾ÜºÙ¤Ï¡¢\-J\-Dsun\&.rmi\&.activation\&.execPolicy=policy¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.PP +\fBrmid\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¡¦¥Ý¡¼¥È1098¤Ç¥¢¥¯¥Æ¥£¥Ù¡¼¥¿¤ÈÆâÉô¥ì¥¸¥¹¥È¥ê¤¬µ¯Æ°¤µ¤ì¡¢\fBActivationSystem\fR¤¬¤³¤ÎÆâÉô¥ì¥¸¥¹¥È¥êÆâ¤Î̾Á°\fBjava\&.rmi\&.activation\&.ActivationSystem\fR¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Þ¤¹¡£ +.PP +¥ì¥¸¥¹¥È¥ê¤Ë¾¤Î¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Î¼Â¹Ô»þ¤Ë\fB\-port\fR¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥ì¥¸¥¹¥È¥ê¤Î¥Ç¥Õ¥©¥ë¥È¡¦¥Ý¡¼¥È1099¤Ç¡¢µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤È¥ì¥¸¥¹¥È¥ê¤òµ¯Æ°¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy \-port 1099\fR + +.fi +.if n \{\ +.RE +.\} +.SH "ɬÍפ˱þ¤¸¤ÆRMID¤ò³«»Ï" +.PP +\fBrmid\fR¤ò¥³¥Þ¥ó¥É¹Ô¤«¤é³«»Ï¤¹¤ë¤Ë¤Ï¡¢\fBinetd\fR(Oracle Solaris¤Î¾ì¹ç)¡¢¤Þ¤¿¤Ï\fBxinetd\fR(Linux¤Î¾ì¹ç)¤ò¹½À®¤·¤Æ\fBrmid\fR¤òɬÍפ˱þ¤¸¤Æ³«»Ï¤¹¤ëÊýË¡¤â¤¢¤ê¤Þ¤¹¡£ +.PP +RMID¤ò³«»Ï¤¹¤ë¤È¡¢\fBSystem\&.inheritedChannel\fR¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢·Ñ¾µ¤µ¤ì¤¿¥Á¥ã¥ó¥Í¥ë(\fBinetd\fR/\fBxinetd\fR¤«¤é·Ñ¾µ)¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Þ¤¹¡£·Ñ¾µ¤µ¤ì¤¿¥Á¥ã¥ó¥Í¥ë¤¬null¤Ç¤¢¤ë¤«¡¢\fBjava\&.nio\&.channels\&.ServerSocketChannel\fR¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤Ê¤«¤Ã¤¿¾ì¹ç¡¢RMID¤Ï¤½¤Î¥Á¥ã¥ó¥Í¥ë¤Ï\fBinetd\fR/\fBxinetd\fR¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¤ÈȽÃǤ·¡¢Á°½Ò¤Î¤è¤¦¤Ëµ¯Æ°¤·¤Þ¤¹¡£ +.PP +·Ñ¾µ¤µ¤ì¤¿¥Á¥ã¥ó¥Í¥ë¤¬\fBServerSocketChannel\fR¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢RMID¤Ï¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¢¤Ä¤Þ¤ê\fBjava\&.rmi\&.activation\&.ActivationSystem\fR¤¬¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¥ì¥¸¥¹¥È¥ê¤È\fBjava\&.rmi\&.activation\&.Activator\fR¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥ê¥¯¥¨¥¹¥È¤ò¼õ¿®¤¹¤ë¥µ¡¼¥Ð¡¼¡¦¥½¥±¥Ã¥È¤È¤·¤Æ¡¢\fBServerSocketChannel\fR¤«¤é¼èÆÀ¤·¤¿\fBjava\&.net\&.ServerSocket\fR¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢RMID¤Îưºî¤Ï¡¢¼¡¤Î¤³¤È¤ò½ü¤¤¤Æ¡¢¥³¥Þ¥ó¥É¹Ô¤«¤éµ¯Æ°¤·¤¿¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBSystem\&.err\fR¤ËÂФ¹¤ë½ÐÎϤϡ¢¥Õ¥¡¥¤¥ë¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï\fBjava\&.io\&.tmpdir\fR¥·¥¹¥Æ¥à¡¦¥×¥í¥Ñ¥Æ¥£¤Ç»ØÄꤵ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê(Ä̾ï¤Ï\fB/var/tmp\fR¤Þ¤¿¤Ï\fB/tmp\fR)¤Ë¤¢¤ë¡£¥Õ¥¡¥¤¥ë̾¤ÎÀÜÆ¬¼­¤Ï\fBrmid\-err\fR¤Ç¡¢ÀÜÈø¼­¤Ï\fBtmp\fR¤Ç¤¢¤ë¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-port\fR¥ª¥×¥·¥ç¥ó¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢RMID¤Ï¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Æ½ªÎ»¤·¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-log\fR¥ª¥×¥·¥ç¥ó¤Ïɬ¿Ü¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢RMID¤Ï¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Æ½ªÎ»¤·¤Þ¤¹¡£ +.RE +.PP +ɬÍפ˱þ¤¸¤Æ¥µ¡¼¥Ó¥¹¤ò³«»Ï¤¹¤ë¤è¤¦¤Ë¹½À®¤¹¤ëÊýË¡¤Î¾ÜºÙ¤Ï¡¢\fBinetd\fR +(Oracle Solaris¤Î¾ì¹ç)¡¢¤Þ¤¿¤Ï\fBxinetd\fR +(Linux)¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\-C\fI¥ª¥×¥·¥ç¥ó\fR +.RS 4 +\fBrmid\fR¥³¥Þ¥ó¥É¤Î»Ò¥×¥í¥»¥¹(µ¯Æ°¥°¥ë¡¼¥×)¤¬ºîÀ®¤µ¤ì¤¿¤È¤­¤Ë¡¢¤½¤ì¤¾¤ì¤Î»Ò¥×¥í¥»¥¹¤Ë¥³¥Þ¥ó¥É¹Ô°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë»ØÄꤹ¤ë¤È¡¢µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë³Æ²¾ÁÛ¥Þ¥·¥ó¤Ë¥×¥í¥Ñ¥Æ¥£¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid \-C\-Dsome\&.property=value\fR + +.fi +.if n \{\ +.RE +.\} +¥³¥Þ¥ó¥É¹Ô°ú¿ô¤ò»Ò¥×¥í¥»¥¹¤ËÅϤ¹µ¡Ç½¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ò¹Ô¤¦¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î»ÒJVM¤Çserver\-call¥í¥®¥ó¥°¤¬²Äǽ¤Ç¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid \-C\-Djava\&.rmi\&.server\&.logCalls=true\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-J\fIoption\fR +.RS 4 +RMID¤ò¼Â¹Ô¤·¤Æ¤¤¤ëJava¥¤¥ó¥¿¥×¥ê¥¿¤ËÅϤ¹¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬\fBrmid\&.policy\fR¤È¤¤¤¦Ì¾Á°¤Î¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¤Ë¤Ï¡¢\fBrmid\fR¤Î¥³¥Þ¥ó¥É¹Ô¤Ç\fB\-J\fR¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢\fBjava\&.security\&.policy\fR¥×¥í¥Ñ¥Æ¥£¤òÄêµÁ¤·¤Þ¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmid \-J\-Djava\&.security\&.policy\-rmid\&.policy\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-J\-Dsun\&.rmi\&.activation\&.execPolicy=\fIpolicy\fR +.RS 4 +µ¯Æ°¥°¥ë¡¼¥×¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ëJVM¤Îµ¯Æ°¤Ë»ÈÍѤ¹¤ë¥³¥Þ¥ó¥É¤ª¤è¤Ó¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¡¢RMID¤¬ºÎÍѤ¹¤ë¥Ý¥ê¥·¡¼¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢Java RMIµ¯Æ°¥Ç¡¼¥â¥ó¤ÎOracle¤Î¼ÂÁõ¤Î¤ß¤Ë¸ºß¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¥³¥Þ¥ó¥É¹Ô¤Ë¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢·ë²Ì¤Ï\fB\-J\-Dsun\&.rmi\&.activation\&.execPolicy=default\fR¤ò»ØÄꤷ¤¿¾ì¹ç¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£\fBpolicy\fR¤Ë»ØÄê²Äǽ¤ÊÃͤϡ¢\fBdefault\fR¡¢\fBpolicyClassName\fR¤Þ¤¿¤Ï\fBnone\fR¤Ç¤¹¡£ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥Ç¥Õ¥©¥ë¥È +.sp +\fBdefault\fR¤Þ¤¿¤Ï̤»ØÄêÃͤÎ\fBexecPolicy\fR¤Î¾ì¹ç¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤Ç¤­¤ë¤Î¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë¥»¥­¥å¥ê¥Æ¥£¡¦¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¡¢¼Â¹Ô¤¹¤ë¸¢¸Â¤¬\fBrmid\fR¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤ë¥³¥Þ¥ó¥É¤ª¤è¤Ó¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î¤ß¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¼Â¹Ô¥Ý¥ê¥·¡¼¤Ç»ÈÍѤǤ­¤ë¤Î¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Îµ¯Æ°¥°¥ë¡¼¥×¼ÂÁõ¤Î¤ß¤Ç¤¹¡£ +.sp +\fBrmid\fR¥³¥Þ¥ó¥É¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×ÍѤÎJVM¤òµ¯Æ°¤¹¤ë¤È¤­¤Ë¡¢¤½¤Î¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤ÆÅÐÏ¿¤µ¤ì¤¿µ¯Æ°¥°¥ë¡¼¥×µ­½Ò»Ò¤Ç¤¢¤ë\fBActivationGroupDesc\fRÆâ¤Î¾ðÊó¤ò»ÈÍѤ·¤Þ¤¹¡£¥°¥ë¡¼¥×µ­½Ò»Ò¤Ï¡¢\fBActivationGroupDesc\&.CommandEnvironment\fR¤ò»ØÄꤷ¤Þ¤¹(¾Êά²Äǽ)¡£¤³¤ì¤Ë¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¥³¥Þ¥ó¥É¤È¡¢¤½¤Î¥³¥Þ¥ó¥É¹Ô¤ËÄɲäǤ­¤ë¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Ï\fBjava\&.home\fR¤Ë¤¢¤ë\fBjava\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£¥°¥ë¡¼¥×µ­½Ò»Ò¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤Ë¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÄɲ䵤ì¤ë¥×¥í¥Ñ¥Æ¥£¡¦¥ª¡¼¥Ð¡¼¥é¥¤¥É¤â´Þ¤Þ¤ì¤Þ¤¹(\fB\-D=\fR¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ¤¹)¡£\fBcom\&.sun\&.rmi\&.rmid\&.ExecPermission\fR¸¢¸Â¤Ï\fBrmid\fR¥³¥Þ¥ó¥É¤Ë¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë¥°¥ë¡¼¥×µ­½Ò»Ò¤Î\fBCommandEnvironment\fR¤Ç»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¸¢¸Â¤òÉÕÍ¿¤·¤Þ¤¹¡£\fBcom\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR¸¢¸Â¤Ïµ¯Æ°¥°¥ë¡¼¥×¤Î³«»Ï»þ¤Ë¡¢¥°¥ë¡¼¥×µ­½Ò»Ò¤Ç¥×¥í¥Ñ¥Æ¥£¡¦¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤·¤Æ¡¢¤Þ¤¿¤Ï\fBCommandEnvironment\fR¤Ç¥ª¥×¥·¥ç¥ó¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë¤³¤È¤òµö²Ä¤·¤Þ¤¹¡£\fBrmid\fR¥³¥Þ¥ó¥É¤ËÍÍ¡¹¤Ê¥³¥Þ¥ó¥É¤ª¤è¤Ó¥ª¥×¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ë¸¢¸Â¤òÉÕÍ¿¤¹¤ë¾ì¹ç¡¢¸¢¸Â\fBExecPermission\fR¤ª¤è¤Ó\fBExecOptionPermission\fR¤ò¤¹¤Ù¤Æ¤Î¥³¡¼¥É¡¦¥½¡¼¥¹¤ËÉÕÍ¿¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +\fBExecPermission\fR +.sp +\fBExecPermission\fR¥¯¥é¥¹¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¤¿¤á¤Ë\fBrmid\fR¥³¥Þ¥ó¥É¤¬ÆÃÄê¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¸¢¸Â¤òɽ¤·¤Þ¤¹¡£ +.sp +\fB¹½Ê¸\fR: +\fBExecPermission\fR¤Î̾Á°¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Ë¼Â¹Ô¤òµö²Ä¤¹¤ë¥³¥Þ¥ó¥É¤Î¥Ñ¥¹Ì¾¤Ç¤¹¡£¥¹¥é¥Ã¥·¥å(/)¤ª¤è¤Ó¥¢¥¹¥¿¥ê¥¹¥¯(*)¤Ç½ª¤ï¤ë¥Ñ¥¹Ì¾¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤·¤Þ¤¹¡£¥¹¥é¥Ã¥·¥å¤Ï¥Õ¥¡¥¤¥ë¶èÀÚ¤êʸ»ú\fBFile\&.separatorChar\fR¤Ç¤¹¡£¥¹¥é¥Ã¥·¥å(/)¤ª¤è¤Ó¥Þ¥¤¥Ê¥¹É乿(\-)¤Ç½ª¤ï¤ë¥Ñ¥¹Ì¾¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê(ºÆµ¢Åª¤Ë)¤ò¼¨¤·¤Þ¤¹¡£ÆÃ¼ì¤Ê¥È¡¼¥¯¥ó\fB<>\fR¤Ç¹½À®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¤È¤â°ìÃפ·¤Þ¤¹¡£ +.sp +¥Ñ¥¹Ì¾¤Ë¥¢¥¹¥¿¥ê¥¹¥¯(*)¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤·¤Þ¤¹¡£¥Ñ¥¹Ì¾¤Ë¥Þ¥¤¥Ê¥¹É乿(\-)¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ª¤è¤Ó(ºÆµ¢Åª¤Ë)¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò¼¨¤·¤Þ¤¹¡£ +.sp +\fBExecOptionPermission\fR +.sp +\fBExecOptionPermission\fR¥¯¥é¥¹¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¤È¤­¤Ë\fBrmid\fR¥³¥Þ¥ó¥É¤ÇÆÃÄê¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤǤ­¤ë¸¢¸Â¤òɽ¤·¤Þ¤¹¡£\fBExecOptionPermission\fR¤Î̾Á°¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ÎÃͤǤ¹¡£ +.sp +\fB¹½Ê¸\fR: ¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¤¬¸ÂÄêŪ¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£¥¢¥¹¥¿¥ê¥¹¥¯¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥Þ¥Ã¥Á¤òɽ¤·¤Þ¤¹¡£¥¢¥¹¥¿¥ê¥¹¥¯(*)¤Ï¡¢¥ª¥×¥·¥ç¥ó̾¤½¤Î¤â¤Î¤È¤·¤Æ»ÈÍѤǤ­¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Ç¤°Õ¤Î¥ª¥×¥·¥ç¥ó¤òɽ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢¥ª¥×¥·¥ç¥ó̾¤ÎËöÈø¤Ë»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤¿¤À¤·¡¢¥É¥Ã¥È(\&.)¤«Åù¹æ(=)¤Îľ¸å¤Ë¥¢¥¹¥¿¥ê¥¹¥¯(*)¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +.sp +Îã: +\fB*\fR¤ä\fB\-Dmydir\&.*\fR¤ä\fB\-Da\&.b\&.c=*\fR¤ÏÍ­¸ú¤Ç¤¹¤¬¡¢\fB*mydir\fR¤ä\fB\-Da*b\fR¤ä\fBab*\fR¤Ï̵¸ú¤Ç¤¹¡£ +.sp +\fBrmid¤Î¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë\fR +.sp +\fBrmid\fR¥³¥Þ¥ó¥É¤ËÍÍ¡¹¤Ê¥³¥Þ¥ó¥É¤ª¤è¤Ó¥ª¥×¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ë¸¢¸Â¤òµö²Ä¤¹¤ë¾ì¹ç¤Ï¡¢¸¢¸Â\fBExecPermission\fR¤ª¤è¤Ó\fBExecOptionPermission\fR¤ò¤¹¤Ù¤Æ¤Î¥³¡¼¥É¡¦¥½¡¼¥¹¤ËÉÕÍ¿¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹(ÈÆÍÑŪ¤Ë)¡£¤³¤ì¤é¤Î¸¢¸Â¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤Ï\fBrmid\fR¥³¥Þ¥ó¥É¤Î¤ß¤Ê¤Î¤Ç¡¢¤³¤ì¤é¤Î¸¢¸Â¤òÈÆÍÑŪ¤ËÉÕÍ¿¤·¤Æ¤â°ÂÁ´¤Ç¤¹¡£ +.sp +\fBrmid\fR¥³¥Þ¥ó¥É¤Ë³Æ¼ï¤Î¼Â¹Ô¸¢¸Â¤òÉÕÍ¿¤¹¤ë¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¡¢¼¡¤Ë¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBgrant {\fR +\fB permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fR +\fB "/files/apps/java/jdk1\&.7\&.0/solaris/bin/java";\fR +\fB \fR +\fB permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fR +\fB "/files/apps/rmidcmds/*";\fR +\fB \fR +\fB permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR +\fB "\-Djava\&.security\&.policy=/files/policies/group\&.policy";\fR +\fB \fR +\fB permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR +\fB "\-Djava\&.security\&.debug=*";\fR +\fB \fR +\fB permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR +\fB "\-Dsun\&.rmi\&.*";\fR +\fB};\fR + +.fi +.if n \{\ +.RE +.\} +ºÇ½é¤ËÉÕÍ¿¤µ¤ì¤Æ¤¤¤ë¸¢¸Â¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤ËÂФ·¡¢¥Ñ¥¹Ì¾¤Ë¤è¤êÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤ë\fBjava\fR¥³¥Þ¥ó¥É¤Î1\&.7\&.0¥ê¥ê¡¼¥¹¤Î¼Â¹Ô¤òµö²Ä¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\fBjava\&.home\fR¤Ë¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Î\fBjava\fR¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£\fBrmid\fR¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë¤Î¤ÈƱ¤¸¥Ð¡¼¥¸¥ç¥ó¤¬»ÈÍѤµ¤ì¤ë¤¿¤á¡¢¤½¤Î¥³¥Þ¥ó¥É¤Ï¡¢¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤Ç»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£2ÈÖÌܤθ¢¸Â¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê\fB/files/apps/rmidcmds\fRÆâ¤ÎǤ°Õ¤Î¥³¥Þ¥ó¥É¤Î¼Â¹Ô¸¢¸Â¤òµö²Ä¤·¤Þ¤¹¡£ +.sp +3ÈÖÌܤËÉÕÍ¿¤µ¤ì¤Æ¤¤¤ë¸¢¸Â\fBExecOptionPermission\fR¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¡¦¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ò\fB/files/policies/group\&.policy\fR¤È¤·¤ÆÄêµÁ¤·¤Æ¤¤¤ëµ¯Æ°¥°¥ë¡¼¥×¤Î³«»Ï¤òµö²Ä¤·¤Þ¤¹¡£¼¡¤Î¸¢¸Â¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤¬\fBjava\&.security\&.debug property\fR¤ò»ÈÍѤ¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤Þ¤¹¡£ºÇ¸å¤Î¸¢¸Â¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤¬\fBsun\&.rmi property\fR̾¤Î³¬ÁØÆâ¤ÎǤ°Õ¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ÈÍѤ¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤Þ¤¹¡£ +.sp +¥Ý¥ê¥·¡¼¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ\fBrmid\fR¥³¥Þ¥ó¥É¤òµ¯Æ°¤¹¤ë¤Ë¤Ï¡¢\fBrmid\fR¤Î¥³¥Þ¥ó¥É¹Ô¤Ç\fBjava\&.security\&.policy\fR¥×¥í¥Ñ¥Æ¥£¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} + +.sp +¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤Ï½½Ê¬¤Ê½ÀÆðÀ­¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¡¢´ÉÍý¼Ô¤Ï¡¢\fBrmid\fR¤Îµ¯Æ°»þ¤Ë¡¢\fBcheckExecCommand\fR¥á¥½¥Ã¥É¤¬½ê°¤¹¤ë¥¯¥é¥¹¤Î̾Á°¤ò»ØÄꤷ¤Æ¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +.sp +\fBpolicyClassName\fR¤Ë¤Ï¡¢°ú¿ô¤Ê¤·¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ò»ý¤Á¡¢¼¡¤Î¤è¤¦¤Ê\fBcheckExecCommand\fR¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ëpublic¥¯¥é¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB public void checkExecCommand(ActivationGroupDesc desc, String[] command)\fR +\fB throws SecurityException;\fR + +.fi +.if n \{\ +.RE +.\} +µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Ï¡¢¥Ý¥ê¥·¡¼¤Î\fBcheckExecCommand\fR¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤³¤Î¤È¤­¡¢µ¯Æ°¥°¥ë¡¼¥×¤Îµ­½Ò»Ò¤È¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¤¿¤á¤Î´°Á´¤Ê¥³¥Þ¥ó¥É¤ò´Þ¤àÇÛÎó¤ò¤½¤Î¥á¥½¥Ã¥É¤ËÅϤ·¤Þ¤¹¡£\fBcheckExecCommand\fR¤¬\fBSecurityException\fR¤ò¥¹¥í¡¼¤¹¤ë¤È¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Ï¤½¤Îµ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤»¤º¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Îµ¯Æ°¤ò»î¹Ô¤·¤Æ¤¤¤ë¸Æ½Ð¤·Â¦¤Ë¤Ï\fBActivationException\fR¤¬¥¹¥í¡¼¤µ¤ì¤Þ¤¹¡£ +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +none +.sp +\fBsun\&.rmi\&.activation\&.execPolicy\fR¥×¥í¥Ñ¥Æ¥£¤ÎÃͤ¬\fBnone\fR¤Î¾ì¹ç¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤Ï¡¢µ¯Æ°¥°¥ë¡¼¥×¤ò³«»Ï¤¹¤ë¥³¥Þ¥ó¥É¤ò¤Þ¤Ã¤¿¤¯¸¡¾Ú¤·¤Þ¤»¤ó¡£ +.RE +.RE +.PP +\-log \fIdir\fR +.RS 4 +µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¤ª¤è¤Ó´ØÏ¢¾ðÊó¤ò½ñ¤­¹þ¤à¤Î¤Ë»ÈÍѤ¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢\fBrmid\fR¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢log¤È¤¤¤¦¥í¥°¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-port \fIport\fR +.RS 4 +¥ì¥¸¥¹¥È¥ê¤¬»ÈÍѤ¹¤ë¥Ý¡¼¥È¤ò»ØÄꤷ¤Þ¤¹¡£µ¯Æ°¥·¥¹¥Æ¥à¡¦¥Ç¡¼¥â¥ó¤Ï¡¢¤³¤Î¥ì¥¸¥¹¥È¥ê¤ÎÃæ¤Ç¡¢\fBjava\&.rmi\&.activation\&.ActivationSystem\fR¤È¤¤¤¦Ì¾Á°¤Ç\fBActivationSystem\fR¤ò¥Ð¥¤¥ó¥É¤·¤Þ¤¹¡£¥í¡¼¥«¥ë¡¦¥Þ¥·¥ó¾å¤Î\fBActivationSystem\fR¤Ï¡¢¼¡¤Î¤è¤¦¤Ë\fBNaming\&.lookup\fR¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤Æ¼èÆÀ¤Ç¤­¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBimport java\&.rmi\&.*; \fR +\fB import java\&.rmi\&.activation\&.*;\fR +\fB \fR +\fB ActivationSystem system; system = (ActivationSystem)\fR +\fB Naming\&.lookup("//:port/java\&.rmi\&.activation\&.ActivationSystem");\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-stop +.RS 4 +\fB\-port\fR¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥Ý¡¼¥È¤Î¡¢¸½ºß¤Î\fBrmid\fR¥³¥Þ¥ó¥É¤Î¸Æ½Ð¤·¤òÄä»ß¤·¤Þ¤¹¡£¥Ý¡¼¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ý¡¼¥È1098¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë\fBrmid\fR¤Î¸Æ½Ð¤·¤òÄä»ß¤·¤Þ¤¹¡£ +.RE +.SH "´Ä¶­ÊÑ¿ô" +.PP +CLASSPATH +.RS 4 +¥æ¡¼¥¶¡¼ÄêµÁ¥¯¥é¥¹¤Ø¤Î¥Ñ¥¹¤ò¥·¥¹¥Æ¥à¤Ë»ØÄꤷ¤Þ¤¹¡£¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤Þ¤¹¡£Îã: +\fB\&.:/usr/local/java/classes\fR +.RE +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +java(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¥¯¥é¥¹¡¦¥Ñ¥¹¤ÎÀßÄê +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmiregistry.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmiregistry.1 new file mode 100755 index 0000000..4e71921 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/rmiregistry.1 @@ -0,0 +1,135 @@ +'\" t +.\" Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: rmiregistry +.\" Language: Japanese +.\" Date: 2013ǯ11·î21Æü +.\" SectDesc: Remote Method Invocation (RMI)¥Ä¡¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "rmiregistry" "1" "2013ǯ11·î21Æü" "JDK 8" "Remote Method Invocation (RMI)" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +rmiregistry \- ¸½ºß¤Î¥Û¥¹¥È¤Î»ØÄꤷ¤¿¥Ý¡¼¥È¾å¤Ë¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ì¥¸¥¹¥È¥ê¤ò³«»Ï¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmiregistry\fR [ \fIport\fR ] +.fi +.if n \{\ +.RE +.\} +.PP +\fIport\fR +.RS 4 +¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ì¥¸¥¹¥È¥ê¤ò³«»Ï¤¹¤ë¸½ºß¤Î¥Û¥¹¥È¾å¤Î\fBport\fR¤Î¿ô¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBrmiregistry\fR¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤Î¥Û¥¹¥È¤Î»ØÄꤷ¤¿¥Ý¡¼¥È¾å¤Ë¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ì¥¸¥¹¥È¥ê¤òºîÀ®¤·¡¢³«»Ï¤·¤Þ¤¹¡£port¤Î»ØÄê¤ò¾Êά¤·¤¿¾ì¹ç¡¢¥ì¥¸¥¹¥È¥ê¤Ï¥Ý¡¼¥È1099¤Ç³«»Ï¤·¤Þ¤¹¡£\fBrmiregistry\fR¥³¥Þ¥ó¥É¤Ë¡¢½ÐÎϵ¡Ç½¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ä̾¤³¤ì¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBrmiregistry &\fR + +.fi +.if n \{\ +.RE +.\} +.PP +¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ì¥¸¥¹¥È¥ê¤Ï¡¢¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Î¥Í¡¼¥à¡¦¥µ¡¼¥Ó¥¹¤Ç¤¹¡£Æ±°ì¥Û¥¹¥È¤ÎRMI¥µ¡¼¥Ð¡¼¤¬¡¢¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò̾Á°¤Ë¥Ð¥¤¥ó¥É¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£¼¡¤Ë¡¢¥í¡¼¥«¥ë¤ª¤è¤Ó¥ê¥â¡¼¥È¡¦¥Û¥¹¥È¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ï¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡º÷¤·¡¢¥ê¥â¡¼¥È¡¦¥á¥½¥Ã¥É¤Î¸Æ½Ð¤·¤ò¹Ô¤¤¤Þ¤¹¡£ +.PP +¥ì¥¸¥¹¥È¥ê¤Ï¡¢°ìÈÌŪ¤Ë¡¢ºÇ½é¤Î¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤ò»ØÄꤷ¤Þ¤¹¡£¤½¤³¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¸å¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó»ØÄê¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¡¢Â¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òõ¤·¤Þ¤¹¡£ +.PP +\fBjava\&.rmi\&.registry\&.LocateRegistry\fR¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤Ï¡¢¥í¡¼¥«¥ë¡¦¥Û¥¹¥È¡¢¤Þ¤¿¤Ï¥í¡¼¥«¥ë¡¦¥Û¥¹¥È¤È¥Ý¡¼¥È¤Çưºî¤¹¤ë¥ì¥¸¥¹¥È¥ê¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ +.PP +\fBjava\&.rmi\&.Naming\fR¥¯¥é¥¹¤ÎURL¥Ù¡¼¥¹¡¦¥á¥½¥Ã¥É¤Ï¥ì¥¸¥¹¥È¥ê¤ËÂФ·¤ÆÁàºî¤ò¼Â¹Ô¤·¡¢Ç¤°Õ¤Î¥Û¥¹¥È¤ª¤è¤Ó¥í¡¼¥«¥ë¡¦¥Û¥¹¥È¤Ç¤Î¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¸¡º÷¤Ë»ÈÍѤǤ­¤Þ¤¹¡£Ã±½ã̾(ʸ»úÎó)¤ò¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥Ð¥¤¥ó¥É¤·¡¢¿·¤·¤¤Ì¾Á°¤ò¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËºÆ¥Ð¥¤¥ó¥É¤·(¸Å¤¤¥Ð¥¤¥ó¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É)¡¢¥ê¥â¡¼¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥ó¥Ð¥¤¥ó¥É¤·¡¢¥ì¥¸¥¹¥È¥ê¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ëURL¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£ +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\-J +.RS 4 +Java¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»ÈÍѤ·¤Æ¡¢\fB\-J\fR¤Î¸å¤í¤Ë³¤¯¥ª¥×¥·¥ç¥ó¤òJava¥¤¥ó¥¿¥×¥ê¥¿¤Ë°ú¤­ÅϤ·¤Þ¤¹(\fB\-J\fR¤È¥ª¥×¥·¥ç¥ó¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤ÏÆþ¤ì¤Þ¤»¤ó)¡£ +.RE +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +java(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB¡Öjava\&.rmi\&.registry\&.LocateRegistry¡×\fR(http://docs\&.oracle\&.com/javase/8/docs/api/java/rmi/registry/LocateRegistry\&.html) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB¡Öjava\&.rmi\&.Naming class description¡×\fR(http://docs\&.oracle\&.com/javase/8/docs/api/java/rmi/Naming\&.html) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/unpack200.1 b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/unpack200.1 new file mode 100755 index 0000000..195a85a --- /dev/null +++ b/.local/bin/IPMIView/jre/man/ja_JP.UTF-8/man1/unpack200.1 @@ -0,0 +1,205 @@ +'\" t +.\" Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: unpack200 +.\" Language: Japanese +.\" Date: 2013ǯ11·î21Æü +.\" SectDesc: Java¥Ç¥×¥í¥¤¥á¥ó¥È¡¦¥Ä¡¼¥ë +.\" Software: JDK 8 +.\" Arch: ÈÆÍÑ +.\" Part Number: E58103-01 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "unpack200" "1" "2013ǯ11·î21Æü" "JDK 8" "Java¥Ç¥×¥í¥¤¥á¥ó¥È¡¦¥Ä¡¼¥ë" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "̾Á°" +unpack200 \- \fBpack200\fR(1)¤ÇºîÀ®¤µ¤ì¤¿¥Ñ¥Ã¥¯¡¦¥Õ¥¡¥¤¥ë¤ò¡¢Web¥Ç¥×¥í¥¤¥á¥ó¥È¤Î¤¿¤á¤ËJAR¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤¹¡£ +.SH "³µÍ×" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBunpack200\fR [ \fIoptions\fR ] input\-file \fIJAR\-file\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡£¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.PP +\fIinput\-file\fR +.RS 4 +ÆþÎÏ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£pack200 gzip¥Õ¥¡¥¤¥ë¤«pack200¥Õ¥¡¥¤¥ë¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢\fBpack200\fR(1)¤ÇºîÀ®¤µ¤ì¤¿JAR¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹(¼ê´Ö¤Ï\fB0\fR¤Ç¤¹)¡£¤³¤Î¾ì¹ç¡¢ÆþÎÏ¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ÏPack2000¥Þ¡¼¥«¡¼¤Ç½ÐÎÏJAR¥Õ¥¡¥¤¥ë¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\fIJAR\-file\fR +.RS 4 +½ÐÎÏJAR¥Õ¥¡¥¤¥ë̾¡£ +.RE +.SH "ÀâÌÀ" +.PP +\fBunpack200\fR¥³¥Þ¥ó¥É¤Ï¡¢\fBpack200\fR\fB(1)\fR¤ÇºîÀ®¤µ¤ì¤¿¥Ñ¥Ã¥¯¡¦¥Õ¥¡¥¤¥ë¤òJAR¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤¹¤ë¥Í¥¤¥Æ¥£¥Ö¼ÂÁõ¤Ç¤¹¡£°ìÈÌŪ¤Ê»ÈÍÑÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£¼¡¤ÎÎã¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î\fBunpack200\fR¥³¥Þ¥ó¥ÉÀßÄê¤Ç¡¢\fBmyarchive\&.jar\fR¥Õ¥¡¥¤¥ë¤¬\fBmyarchive\&.pack\&.gz\fR¤«¤éºîÀ®¤µ¤ì¤Þ¤¹¡£ +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBunpack200 myarchive\&.pack\&.gz myarchive\&.jar\fR + +.fi +.if n \{\ +.RE +.\} +.SH "¥ª¥×¥·¥ç¥ó" +.PP +\-Hvalue \-\-deflate\-hint=\fIvalue\fR +.RS 4 +JAR¥Õ¥¡¥¤¥ëÆâ¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤Ë\fBtrue\fR¡¢\fBfalse\fR¤Þ¤¿¤Ï\fBkeep\fR¤Î¥Ç¥Õ¥ì¡¼¥·¥ç¥ó¤òÀßÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¡¦¥â¡¼¥É¤Ï\fBkeep\fR¤Ç¤¹¡£Ãͤ¬\fBtrue\fR¤Þ¤¿¤Ï\fBfalse\fR¾ì¹ç¡¢\fB\-\-deflate=hint\fR¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¡¢½ÐÎÏJAR¥Õ¥¡¥¤¥ëÆâ¤Î¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤Î¥Ç¥Õ¥ì¡¼¥·¥ç¥ó¡¦¥â¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ +.RE +.PP +\-r \-\-remove\-pack\-file +.RS 4 +ÆþÎϥѥ寡¦¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ +.RE +.PP +\-v \-\-verbose +.RS 4 +ºÇ¾®¸Â¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÊ£¿ô¤Î»ÅÍͤˤϡ¢¤è¤ê¾ÜºÙ¤Ê¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +.RE +.PP +\-q \-\-quiet +.RS 4 +¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤»¤º¤Ëưºî¤¹¤ë¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-lfilename \-\-log\-file=\fIfilename\fR +.RS 4 +½ÐÎÏ¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤ë¥í¥°¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ +.RE +.PP +\-? \-h \-\-help +.RS 4 +\fBunpack200\fR¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ë¥Ø¥ë¥×¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-V \-\-version +.RS 4 +\fBunpack200\fR¥³¥Þ¥ó¥É¤Ë´Ø¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹¡£ +.RE +.PP +\-J\fIoption\fR +.RS 4 +Java Virtual Machine¤Ëoption¤òÅϤ·¤Þ¤¹¡£\fBoption\fR¤Ë¤Ï¡¢Java¥¢¥×¥ê¥±¡¼¥·¥ç¥óµ¯Æ°¥Ä¡¼¥ë¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¡¦¥Ú¡¼¥¸¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó¤ò1¤Ä»ØÄꤷ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\fB\-J\-Xms48m\fR¤È»ØÄꤹ¤ë¤È¡¢¥¹¥¿¡¼¥È¥¢¥Ã¥×¡¦¥á¥â¥ê¡¼¤Ï48MB¤ËÀßÄꤵ¤ì¤Þ¤¹¡£java(1)¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +.RE +.SH "Ãí°Õ" +.PP +¤³¤Î¥³¥Þ¥ó¥É¤È\fBunpack\fR¥³¥Þ¥ó¥É¤òº®Æ±¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤ÏÊÌÀ½ÉʤǤ¹¡£ +.PP +JDK¤ËÉÕ°¤¹¤ëJava SE API»ÅÍͤȤÎÁê°ã¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢»ÅÍͤòÍ¥À褷¤Æ¤¯¤À¤µ¤¤¡£ +.SH "½ªÎ»¥¹¥Æ¡¼¥¿¥¹" +.PP +¼¡¤Î½ªÎ»Ãͤ¬ÊÖ¤µ¤ì¤Þ¤¹: Àµ¾ï½ªÎ»¤Î¾ì¹ç¤Ï0¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï0¤è¤êÂ礭¤¤ÃÍ¡£ +.SH "´ØÏ¢¹àÌÜ" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +pack200(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jarsigner(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¡ÖCompression Formats for Network Deployment¡× + +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jweb/networking/compression_formats\&.html +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +¡ÖJava SE Technical Documentation¡× +(http://docs\&.oracle\&.com/javase/) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/alt-java.1 b/.local/bin/IPMIView/jre/man/man1/alt-java.1 new file mode 100755 index 0000000..8729f6a --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/alt-java.1 @@ -0,0 +1,3727 @@ +Hardened java binary recommended for launching untrusted code from the Web e.g. javaws +'\" t +.\" Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: java +.\" Language: English +.\" Date: 03 March 2015 +.\" SectDesc: Basic Tools +.\" Software: JDK 8 +.\" Arch: generic +.\" Part Number: E38207-04 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "java" "1" "03 March 2015" "JDK 8" "Basic Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +java \- Launches a Java application\&. +.SH "SYNOPSIS" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fIclassname\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fB\-jar\fR \fIfilename\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +Command\-line options separated by spaces\&. See Options\&. +.RE +.PP +\fIclassname\fR +.RS 4 +The name of the class to be launched\&. +.RE +.PP +\fIfilename\fR +.RS 4 +The name of the Java Archive (JAR) file to be called\&. Used only with the +\fB\-jar\fR +option\&. +.RE +.PP +\fIargs\fR +.RS 4 +The arguments passed to the +\fBmain()\fR +method separated by spaces\&. +.RE +.SH "DESCRIPTION" +.PP +The +\fBjava\fR +command starts a Java application\&. It does this by starting the Java Runtime Environment (JRE), loading the specified class, and calling that class\*(Aqs +\fBmain()\fR +method\&. The method must be declared +\fIpublic\fR +and +\fIstatic\fR, it must not return any value, and it must accept a +\fBString\fR +array as a parameter\&. The method declaration has the following form: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpublic static void main(String[] args)\fR + +.fi +.if n \{\ +.RE +.\} +.PP +The +\fBjava\fR +command can be used to launch a JavaFX application by loading a class that either has a +\fBmain()\fR +method or that extends +\fBjavafx\&.application\&.Application\fR\&. In the latter case, the launcher constructs an instance of the +\fBApplication\fR +class, calls its +\fBinit()\fR +method, and then calls the +\fBstart(javafx\&.stage\&.Stage)\fR +method\&. +.PP +By default, the first argument that is not an option of the +\fBjava\fR +command is the fully qualified name of the class to be called\&. If the +\fB\-jar\fR +option is specified, its argument is the name of the JAR file containing class and resource files for the application\&. The startup class must be indicated by the +\fBMain\-Class\fR +manifest header in its source code\&. +.PP +The JRE searches for the startup class (and other classes used by the application) in three sets of locations: the bootstrap class path, the installed extensions, and the user\(cqs class path\&. +.PP +Arguments after the class file name or the JAR file name are passed to the +\fBmain()\fR +method\&. +.SH "OPTIONS" +.PP +The +\fBjava\fR +command supports a wide range of options that can be divided into the following categories: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Standard Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Non\-Standard Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Runtime Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced JIT Compiler Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Serviceability Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Garbage Collection Options +.RE +.PP +Standard options are guaranteed to be supported by all implementations of the Java Virtual Machine (JVM)\&. They are used for common actions, such as checking the version of the JRE, setting the class path, enabling verbose output, and so on\&. +.PP +Non\-standard options are general purpose options that are specific to the Java HotSpot Virtual Machine, so they are not guaranteed to be supported by all JVM implementations, and are subject to change\&. These options start with +\fB\-X\fR\&. +.PP +Advanced options are not recommended for casual use\&. These are developer options used for tuning specific areas of the Java HotSpot Virtual Machine operation that often have specific system requirements and may require privileged access to system configuration parameters\&. They are also not guaranteed to be supported by all JVM implementations, and are subject to change\&. Advanced options start with +\fB\-XX\fR\&. +.PP +To keep track of the options that were deprecated or removed in the latest release, there is a section named Deprecated and Removed Options at the end of the document\&. +.PP +Boolean options are used to either enable a feature that is disabled by default or disable a feature that is enabled by default\&. Such options do not require a parameter\&. Boolean +\fB\-XX\fR +options are enabled using the plus sign (\fB\-XX:+\fR\fIOptionName\fR) and disabled using the minus sign (\fB\-XX:\-\fR\fIOptionName\fR)\&. +.PP +For options that require an argument, the argument may be separated from the option name by a space, a colon (:), or an equal sign (=), or the argument may directly follow the option (the exact syntax differs for each option)\&. If you are expected to specify the size in bytes, you can use no suffix, or use the suffix +\fBk\fR +or +\fBK\fR +for kilobytes (KB), +\fBm\fR +or +\fBM\fR +for megabytes (MB), +\fBg\fR +or +\fBG\fR +for gigabytes (GB)\&. For example, to set the size to 8 GB, you can specify either +\fB8g\fR, +\fB8192m\fR, +\fB8388608k\fR, or +\fB8589934592\fR +as the argument\&. If you are expected to specify the percentage, use a number from 0 to 1 (for example, specify +\fB0\&.25\fR +for 25%)\&. +.SS "Standard Options" +.PP +These are the most commonly used options that are supported by all implementations of the JVM\&. +.PP +\-agentlib:\fIlibname\fR[=\fIoptions\fR] +.RS 4 +Loads the specified native agent library\&. After the library name, a comma\-separated list of options specific to the library can be used\&. +.sp +If the option +\fB\-agentlib:foo\fR +is specified, then the JVM attempts to load the library named +\fBlibfoo\&.so\fR +in the location specified by the +\fBLD_LIBRARY_PATH\fR +system variable (on OS X this variable is +\fBDYLD_LIBRARY_PATH\fR)\&. +.sp +The following example shows how to load the heap profiling tool (HPROF) library and get sample CPU information every 20 ms, with a stack depth of 3: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:hprof=cpu=samples,interval=20,depth=3\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to load the Java Debug Wire Protocol (JDWP) library and listen for the socket connection on port 8000, suspending the JVM before the main class loads: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:jdwp=transport=dt_socket,server=y,address=8000\fR + +.fi +.if n \{\ +.RE +.\} +For more information about the native agent libraries, refer to the following: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The +\fBjava\&.lang\&.instrument\fR +package description at http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Agent Command Line Options in the JVM Tools Interface guide at http://docs\&.oracle\&.com/javase/8/docs/platform/jvmti/jvmti\&.html#starting +.RE +.RE +.PP +\-agentpath:\fIpathname\fR[=\fIoptions\fR] +.RS 4 +Loads the native agent library specified by the absolute path name\&. This option is equivalent to +\fB\-agentlib\fR +but uses the full path and file name of the library\&. +.RE +.PP +\-client +.RS 4 +Selects the Java HotSpot Client VM\&. The 64\-bit version of the Java SE Development Kit (JDK) currently ignores this option and instead uses the Server JVM\&. +.sp +For default JVM selection, see Server\-Class Machine Detection at +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html +.RE +.PP +\-D\fIproperty\fR=\fIvalue\fR +.RS 4 +Sets a system property value\&. The +\fIproperty\fR +variable is a string with no spaces that represents the name of the property\&. The +\fIvalue\fR +variable is a string that represents the value of the property\&. If +\fIvalue\fR +is a string with spaces, then enclose it in quotation marks (for example +\fB\-Dfoo="foo bar"\fR)\&. +.RE +.PP +\-d32 +.RS 4 +Runs the application in a 32\-bit environment\&. If a 32\-bit environment is not installed or is not supported, then an error will be reported\&. By default, the application is run in a 32\-bit environment unless a 64\-bit system is used\&. +.RE +.PP +\-d64 +.RS 4 +Runs the application in a 64\-bit environment\&. If a 64\-bit environment is not installed or is not supported, then an error will be reported\&. By default, the application is run in a 32\-bit environment unless a 64\-bit system is used\&. +.sp +Currently only the Java HotSpot Server VM supports 64\-bit operation, and the +\fB\-server\fR +option is implicit with the use of +\fB\-d64\fR\&. The +\fB\-client\fR +option is ignored with the use of +\fB\-d64\fR\&. This is subject to change in a future release\&. +.RE +.PP +\-disableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-da[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +Disables assertions\&. By default, assertions are disabled in all packages and classes\&. +.sp +With no arguments, +\fB\-disableassertions\fR +(\fB\-da\fR) disables assertions in all packages and classes\&. With the +\fIpackagename\fR +argument ending in +\fB\&.\&.\&.\fR, the switch disables assertions in the specified package and any subpackages\&. If the argument is simply +\fB\&.\&.\&.\fR, then the switch disables assertions in the unnamed package in the current working directory\&. With the +\fIclassname\fR +argument, the switch disables assertions in the specified class\&. +.sp +The +\fB\-disableassertions\fR +(\fB\-da\fR) option applies to all class loaders and to system classes (which do not have a class loader)\&. There is one exception to this rule: if the option is provided with no arguments, then it does not apply to system classes\&. This makes it easy to disable assertions in all classes except for system classes\&. The +\fB\-disablesystemassertions\fR +option enables you to disable assertions in all system classes\&. +.sp +To explicitly enable assertions in specific packages or classes, use the +\fB\-enableassertions\fR +(\fB\-ea\fR) option\&. Both options can be used at the same time\&. For example, to run the +\fBMyClass\fR +application with assertions enabled in package +\fBcom\&.wombat\&.fruitbat\fR +(and any subpackages) but disabled in class +\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR, use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-disablesystemassertions +.br +\-dsa +.RS 4 +Disables assertions in all system classes\&. +.RE +.PP +\-enableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-ea[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +Enables assertions\&. By default, assertions are disabled in all packages and classes\&. +.sp +With no arguments, +\fB\-enableassertions\fR +(\fB\-ea\fR) enables assertions in all packages and classes\&. With the +\fIpackagename\fR +argument ending in +\fB\&.\&.\&.\fR, the switch enables assertions in the specified package and any subpackages\&. If the argument is simply +\fB\&.\&.\&.\fR, then the switch enables assertions in the unnamed package in the current working directory\&. With the +\fIclassname\fR +argument, the switch enables assertions in the specified class\&. +.sp +The +\fB\-enableassertions\fR +(\fB\-ea\fR) option applies to all class loaders and to system classes (which do not have a class loader)\&. There is one exception to this rule: if the option is provided with no arguments, then it does not apply to system classes\&. This makes it easy to enable assertions in all classes except for system classes\&. The +\fB\-enablesystemassertions\fR +option provides a separate switch to enable assertions in all system classes\&. +.sp +To explicitly disable assertions in specific packages or classes, use the +\fB\-disableassertions\fR +(\fB\-da\fR) option\&. If a single command contains multiple instances of these switches, then they are processed in order before loading any classes\&. For example, to run the +\fBMyClass\fR +application with assertions enabled only in package +\fBcom\&.wombat\&.fruitbat\fR +(and any subpackages) but disabled in class +\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR, use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-enablesystemassertions +.br +\-esa +.RS 4 +Enables assertions in all system classes\&. +.RE +.PP +\-help +.br +\-? +.RS 4 +Displays usage information for the +\fBjava\fR +command without actually running the JVM\&. +.RE +.PP +\-jar \fIfilename\fR +.RS 4 +Executes a program encapsulated in a JAR file\&. The +\fIfilename\fR +argument is the name of a JAR file with a manifest that contains a line in the form +\fBMain\-Class:\fR\fIclassname\fR +that defines the class with the +\fBpublic static void main(String[] args)\fR +method that serves as your application\*(Aqs starting point\&. +.sp +When you use the +\fB\-jar\fR +option, the specified JAR file is the source of all user classes, and other class path settings are ignored\&. +.sp +For more information about JAR files, see the following resources: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The Java Archive (JAR) Files guide at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jar/index\&.html +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lesson: Packaging Programs in JAR Files at + +http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.html +.RE +.RE +.PP +\-javaagent:\fIjarpath\fR[=\fIoptions\fR] +.RS 4 +Loads the specified Java programming language agent\&. For more information about instrumenting Java applications, see the +\fBjava\&.lang\&.instrument\fR +package description in the Java API documentation at http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html +.RE +.PP +\-jre\-restrict\-search +.RS 4 +Includes user\-private JREs in the version search\&. +.RE +.PP +\-no\-jre\-restrict\-search +.RS 4 +Excludes user\-private JREs from the version search\&. +.RE +.PP +\-server +.RS 4 +Selects the Java HotSpot Server VM\&. The 64\-bit version of the JDK supports only the Server VM, so in that case the option is implicit\&. +.sp +For default JVM selection, see Server\-Class Machine Detection at +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html +.RE +.PP +\-showversion +.RS 4 +Displays version information and continues execution of the application\&. This option is equivalent to the +\fB\-version\fR +option except that the latter instructs the JVM to exit after displaying version information\&. +.RE +.PP +\-splash:\fIimgname\fR +.RS 4 +Shows the splash screen with the image specified by +\fIimgname\fR\&. For example, to show the +\fBsplash\&.gif\fR +file from the +\fBimages\fR +directory when starting your application, use the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-splash:images/splash\&.gif\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-verbose:class +.RS 4 +Displays information about each loaded class\&. +.RE +.PP +\-verbose:gc +.RS 4 +Displays information about each garbage collection (GC) event\&. +.RE +.PP +\-verbose:jni +.RS 4 +Displays information about the use of native methods and other Java Native Interface (JNI) activity\&. +.RE +.PP +\-version +.RS 4 +Displays version information and then exits\&. This option is equivalent to the +\fB\-showversion\fR +option except that the latter does not instruct the JVM to exit after displaying version information\&. +.RE +.PP +\-version:\fIrelease\fR +.RS 4 +Specifies the release version to be used for running the application\&. If the version of the +\fBjava\fR +command called does not meet this specification and an appropriate implementation is found on the system, then the appropriate implementation will be used\&. +.sp +The +\fIrelease\fR +argument specifies either the exact version string, or a list of version strings and ranges separated by spaces\&. A +\fIversion string\fR +is the developer designation of the version number in the following form: +\fB1\&.\fR\fIx\fR\fB\&.0_\fR\fIu\fR +(where +\fIx\fR +is the major version number, and +\fIu\fR +is the update version number)\&. A +\fIversion range\fR +is made up of a version string followed by a plus sign (\fB+\fR) to designate this version or later, or a part of a version string followed by an asterisk (\fB*\fR) to designate any version string with a matching prefix\&. Version strings and ranges can be combined using a space for a logical +\fIOR\fR +combination, or an ampersand (\fB&\fR) for a logical +\fIAND\fR +combination of two version strings/ranges\&. For example, if running the class or JAR file requires either JRE 6u13 (1\&.6\&.0_13), or any JRE 6 starting from 6u10 (1\&.6\&.0_10), specify the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-version:"1\&.6\&.0_13 1\&.6* & 1\&.6\&.0_10+"\fR + +.fi +.if n \{\ +.RE +.\} +Quotation marks are necessary only if there are spaces in the +\fIrelease\fR +parameter\&. +.sp +For JAR files, the preference is to specify version requirements in the JAR file manifest rather than on the command line\&. +.RE +.SS "Non\-Standard Options" +.PP +These options are general purpose options that are specific to the Java HotSpot Virtual Machine\&. +.PP +\-X +.RS 4 +Displays help for all available +\fB\-X\fR +options\&. +.RE +.PP +\-Xbatch +.RS 4 +Disables background compilation\&. By default, the JVM compiles the method as a background task, running the method in interpreter mode until the background compilation is finished\&. The +\fB\-Xbatch\fR +flag disables background compilation so that compilation of all methods proceeds as a foreground task until completed\&. +.sp +This option is equivalent to +\fB\-XX:\-BackgroundCompilation\fR\&. +.RE +.PP +\-Xbootclasspath:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to search for boot class files\&. These are used in place of the boot class files included in the JDK\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xbootclasspath/a:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to append to the end of the default bootstrap class path\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xbootclasspath/p:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to prepend to the front of the default bootstrap class path\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xcheck:jni +.RS 4 +Performs additional checks for Java Native Interface (JNI) functions\&. Specifically, it validates the parameters passed to the JNI function and the runtime environment data before processing the JNI request\&. Any invalid data encountered indicates a problem in the native code, and the JVM will terminate with an irrecoverable error in such cases\&. Expect a performance degradation when this option is used\&. +.RE +.PP +\-Xcomp +.RS 4 +Forces compilation of methods on first invocation\&. By default, the Client VM (\fB\-client\fR) performs 1,000 interpreted method invocations and the Server VM (\fB\-server\fR) performs 10,000 interpreted method invocations to gather information for efficient compilation\&. Specifying the +\fB\-Xcomp\fR +option disables interpreted method invocations to increase compilation performance at the expense of efficiency\&. +.sp +You can also change the number of interpreted method invocations before compilation using the +\fB\-XX:CompileThreshold\fR +option\&. +.RE +.PP +\-Xdebug +.RS 4 +Does nothing\&. Provided for backward compatibility\&. +.RE +.PP +\-Xdiag +.RS 4 +Shows additional diagnostic messages\&. +.RE +.PP +\-Xfuture +.RS 4 +Enables strict class\-file format checks that enforce close conformance to the class\-file format specification\&. Developers are encouraged to use this flag when developing new code because the stricter checks will become the default in future releases\&. +.RE +.PP +\-Xint +.RS 4 +Runs the application in interpreted\-only mode\&. Compilation to native code is disabled, and all bytecode is executed by the interpreter\&. The performance benefits offered by the just in time (JIT) compiler are not present in this mode\&. +.RE +.PP +\-Xinternalversion +.RS 4 +Displays more detailed JVM version information than the +\fB\-version\fR +option, and then exits\&. +.RE +.PP +\-Xloggc:\fIfilename\fR +.RS 4 +Sets the file to which verbose GC events information should be redirected for logging\&. The information written to this file is similar to the output of +\fB\-verbose:gc\fR +with the time elapsed since the first GC event preceding each logged event\&. The +\fB\-Xloggc\fR +option overrides +\fB\-verbose:gc\fR +if both are given with the same +\fBjava\fR +command\&. +.sp +Example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xloggc:garbage\-collection\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-Xmaxjitcodesize=\fIsize\fR +.RS 4 +Specifies the maximum code cache size (in bytes) for JIT\-compiled code\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default maximum code cache size is 240 MB; if you disable tiered compilation with the option +\fB\-XX:\-TieredCompilation\fR, then the default size is 48 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmaxjitcodesize=240m\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-XX:ReservedCodeCacheSize\fR\&. +.RE +.PP +\-Xmixed +.RS 4 +Executes all bytecode by the interpreter except for hot methods, which are compiled to native code\&. +.RE +.PP +\-Xmn\fIsize\fR +.RS 4 +Sets the initial and maximum size (in bytes) of the heap for the young generation (nursery)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The young generation region of the heap is used for new objects\&. GC is performed in this region more often than in other regions\&. If the size for the young generation is too small, then a lot of minor garbage collections will be performed\&. If the size is too large, then only full garbage collections will be performed, which can take a long time to complete\&. Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size\&. +.sp +The following examples show how to set the initial and maximum size of young generation to 256 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmn256m\fR +\fB\-Xmn262144k\fR +\fB\-Xmn268435456\fR + +.fi +.if n \{\ +.RE +.\} +Instead of the +\fB\-Xmn\fR +option to set both the initial and maximum size of the heap for the young generation, you can use +\fB\-XX:NewSize\fR +to set the initial size and +\fB\-XX:MaxNewSize\fR +to set the maximum size\&. +.RE +.PP +\-Xms\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the heap\&. This value must be a multiple of 1024 and greater than 1 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The following examples show how to set the size of allocated memory to 6 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xms6291456\fR +\fB\-Xms6144k\fR +\fB\-Xms6m\fR + +.fi +.if n \{\ +.RE +.\} +If you do not set this option, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation\&. The initial size of the heap for the young generation can be set using the +\fB\-Xmn\fR +option or the +\fB\-XX:NewSize\fR +option\&. +.RE +.PP +\-Xmx\fIsize\fR +.RS 4 +Specifies the maximum size (in bytes) of the memory allocation pool in bytes\&. This value must be a multiple of 1024 and greater than 2 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. For server deployments, +\fB\-Xms\fR +and +\fB\-Xmx\fR +are often set to the same value\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmx83886080\fR +\fB\-Xmx81920k\fR +\fB\-Xmx80m\fR + +.fi +.if n \{\ +.RE +.\} +The +\fB\-Xmx\fR +option is equivalent to +\fB\-XX:MaxHeapSize\fR\&. +.RE +.PP +\-Xnoclassgc +.RS 4 +Disables garbage collection (GC) of classes\&. This can save some GC time, which shortens interruptions during the application run\&. +.sp +When you specify +\fB\-Xnoclassgc\fR +at startup, the class objects in the application will be left untouched during GC and will always be considered live\&. This can result in more memory being permanently occupied which, if not used carefully, will throw an out of memory exception\&. +.RE +.PP +\-Xrs +.RS 4 +Reduces the use of operating system signals by the JVM\&. +.sp +Shutdown hooks enable orderly shutdown of a Java application by running user cleanup code (such as closing database connections) at shutdown, even if the JVM terminates abruptly\&. +.sp +The JVM catches signals to implement shutdown hooks for unexpected termination\&. The JVM uses +\fBSIGHUP\fR, +\fBSIGINT\fR, and +\fBSIGTERM\fR +to initiate the running of shutdown hooks\&. +.sp +The JVM uses a similar mechanism to implement the feature of dumping thread stacks for debugging purposes\&. The JVM uses +\fBSIGQUIT\fR +to perform thread dumps\&. +.sp +Applications embedding the JVM frequently need to trap signals such as +\fBSIGINT\fR +or +\fBSIGTERM\fR, which can lead to interference with the JVM signal handlers\&. The +\fB\-Xrs\fR +option is available to address this issue\&. When +\fB\-Xrs\fR +is used, the signal masks for +\fBSIGINT\fR, +\fBSIGTERM\fR, +\fBSIGHUP\fR, and +\fBSIGQUIT\fR +are not changed by the JVM, and signal handlers for these signals are not installed\&. +.sp +There are two consequences of specifying +\fB\-Xrs\fR: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBSIGQUIT\fR +thread dumps are not available\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +User code is responsible for causing shutdown hooks to run, for example, by calling +\fBSystem\&.exit()\fR +when the JVM is to be terminated\&. +.RE +.RE +.PP +\-Xshare:\fImode\fR +.RS 4 +Sets the class data sharing (CDS) mode\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +auto +.RS 4 +Use CDS if possible\&. This is the default value for Java HotSpot 32\-Bit Client VM\&. +.RE +.PP +on +.RS 4 +Require the use of CDS\&. Print an error message and exit if class data sharing cannot be used\&. +.RE +.PP +off +.RS 4 +Do not use CDS\&. This is the default value for Java HotSpot 32\-Bit Server VM, Java HotSpot 64\-Bit Client VM, and Java HotSpot 64\-Bit Server VM\&. +.RE +.PP +dump +.RS 4 +Manually generate the CDS archive\&. Specify the application class path as described in "Setting the Class Path "\&. +.sp +You should regenerate the CDS archive with each new JDK release\&. +.RE +.RE +.PP +\-XshowSettings:\fIcategory\fR +.RS 4 +Shows settings and continues\&. Possible +\fIcategory\fR +arguments for this option include the following: +.PP +all +.RS 4 +Shows all categories of settings\&. This is the default value\&. +.RE +.PP +locale +.RS 4 +Shows settings related to locale\&. +.RE +.PP +properties +.RS 4 +Shows settings related to system properties\&. +.RE +.PP +vm +.RS 4 +Shows the settings of the JVM\&. +.RE +.RE +.PP +\-Xss\fIsize\fR +.RS 4 +Sets the thread stack size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate KB, +\fBm\fR +or +\fBM\fR +to indicate MB, +\fBg\fR +or +\fBG\fR +to indicate GB\&. The default value depends on the platform: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64\-bit): 1024 KB +.RE +.sp +The following examples set the thread stack size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xss1m\fR +\fB\-Xss1024k\fR +\fB\-Xss1048576\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-XX:ThreadStackSize\fR\&. +.RE +.PP +\-Xusealtsigs +.RS 4 +Use alternative signals instead of +\fBSIGUSR1\fR +and +\fBSIGUSR2\fR +for JVM internal signals\&. This option is equivalent to +\fB\-XX:+UseAltSigs\fR\&. +.RE +.PP +\-Xverify:\fImode\fR +.RS 4 +Sets the mode of the bytecode verifier\&. Bytecode verification helps to troubleshoot some problems, but it also adds overhead to the running application\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +none +.RS 4 +Do not verify the bytecode\&. This reduces startup time and also reduces the protection provided by Java\&. +.RE +.PP +remote +.RS 4 +Verify those classes that are not loaded by the bootstrap class loader\&. This is the default behavior if you do not specify the +\fB\-Xverify\fR +option\&. +.RE +.PP +all +.RS 4 +Verify all classes\&. +.RE +.RE +.SS "Advanced Runtime Options" +.PP +These options control the runtime behavior of the Java HotSpot VM\&. +.PP +\-XX:+DisableAttachMechanism +.RS 4 +Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as +\fBjcmd\fR, +\fBjstack\fR, +\fBjmap\fR, and +\fBjinfo\fR\&. +.RE +.PP +\-XX:ErrorFile=\fIfilename\fR +.RS 4 +Specifies the path and file name to which error data is written when an irrecoverable error occurs\&. By default, this file is created in the current working directory and named +\fBhs_err_pid\fR\fIpid\fR\fB\&.log\fR +where +\fIpid\fR +is the identifier of the process that caused the error\&. The following example shows how to set the default log file (note that the identifier of the process is specified as +\fB%p\fR): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=\&./hs_err_pid%p\&.log\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to set the error log to +\fB/var/log/java/java_error\&.log\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=/var/log/java/java_error\&.log\fR + +.fi +.if n \{\ +.RE +.\} +If the file cannot be created in the specified directory (due to insufficient space, permission problem, or another issue), then the file is created in the temporary directory for the operating system\&. The temporary directory is +\fB/tmp\fR\&. +.RE +.PP +\-XX:+FailOverToOldVerifier +.RS 4 +Enables automatic failover to the old verifier when the new type checker fails\&. By default, this option is disabled and it is ignored (that is, treated as disabled) for classes with a recent bytecode version\&. You can enable it for classes with older versions of the bytecode\&. +.RE +.PP +\-XX:LargePageSizeInBytes=\fIsize\fR +.RS 4 +On Solaris, sets the maximum size (in bytes) for large pages used for Java heap\&. The +\fIsize\fR +argument must be a power of 2 (2, 4, 8, 16, \&.\&.\&.)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the size is set to 0, meaning that the JVM chooses the size for large pages automatically\&. +.sp +The following example illustrates how to set the large page size to 4 megabytes (MB): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LargePageSizeInBytes=4m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxDirectMemorySize=\fIsize\fR +.RS 4 +Sets the maximum total size (in bytes) of the New I/O (the +\fBjava\&.nio\fR +package) direct\-buffer allocations\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the size is set to 0, meaning that the JVM chooses the size for NIO direct\-buffer allocations automatically\&. +.sp +The following examples illustrate how to set the NIO size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxDirectMemorySize=1m\fR +\fB\-XX:MaxDirectMemorySize=1024k\fR +\fB\-XX:MaxDirectMemorySize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NativeMemoryTracking=\fImode\fR +.RS 4 +Specifies the mode for tracking JVM native memory usage\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +off +.RS 4 +Do not track JVM native memory usage\&. This is the default behavior if you do not specify the +\fB\-XX:NativeMemoryTracking\fR +option\&. +.RE +.PP +summary +.RS 4 +Only track memory usage by JVM subsystems, such as Java heap, class, code, and thread\&. +.RE +.PP +detail +.RS 4 +In addition to tracking memory usage by JVM subsystems, track memory usage by individual +\fBCallSite\fR, individual virtual memory region and its committed regions\&. +.RE +.RE +.PP +\-XX:ObjectAlignmentInBytes=\fIalignment\fR +.RS 4 +Sets the memory alignment of Java objects (in bytes)\&. By default, the value is set to 8 bytes\&. The specified value should be a power of two, and must be within the range of 8 and 256 (inclusive)\&. This option makes it possible to use compressed pointers with large Java heap sizes\&. +.sp +The heap size limit in bytes is calculated as: +.sp +\fB4GB * ObjectAlignmentInBytes\fR +.sp +Note: As the alignment value increases, the unused space between objects will also increase\&. As a result, you may not realize any benefits from using compressed pointers with large Java heap sizes\&. +.RE +.PP +\-XX:OnError=\fIstring\fR +.RS 4 +Sets a custom command or a series of semicolon\-separated commands to run when an irrecoverable error occurs\&. If the string contains spaces, then it must be enclosed in quotation marks\&. +.sp +The following example shows how the +\fB\-XX:OnError\fR +option can be used to run the +\fBgcore\fR +command to create the core image, and the debugger is started to attach to the process in case of an irrecoverable error (the +\fB%p\fR +designates the current process): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:OnError="gcore %p;dbx \- %p"\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:OnOutOfMemoryError=\fIstring\fR +.RS 4 +Sets a custom command or a series of semicolon\-separated commands to run when an +\fBOutOfMemoryError\fR +exception is first thrown\&. If the string contains spaces, then it must be enclosed in quotation marks\&. For an example of a command string, see the description of the +\fB\-XX:OnError\fR +option\&. +.RE +.PP +\-XX:+PerfDataSaveToFile +.RS 4 +If enabled, saves +jstat(1) binary data when the Java application exits\&. This binary data is saved in a file named +\fBhsperfdata_\fR\fI\fR, where +\fI\fR +is the process identifier of the Java application you ran\&. Use +\fBjstat\fR +to display the performance data contained in this file as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjstat \-class file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +\fBjstat \-gc file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintCommandLineFlags +.RS 4 +Enables printing of ergonomically selected JVM flags that appeared on the command line\&. It can be useful to know the ergonomic values set by the JVM, such as the heap space size and the selected garbage collector\&. By default, this option is disabled and flags are not printed\&. +.RE +.PP +\-XX:+PrintNMTStatistics +.RS 4 +Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled (see +\fB\-XX:NativeMemoryTracking\fR)\&. By default, this option is disabled and native memory tracking data is not printed\&. +.RE +.PP +\-XX:+RelaxAccessControlCheck +.RS 4 +Decreases the amount of access control checks in the verifier\&. By default, this option is disabled, and it is ignored (that is, treated as disabled) for classes with a recent bytecode version\&. You can enable it for classes with older versions of the bytecode\&. +.RE +.PP +\-XX:+ShowMessageBoxOnError +.RS 4 +Enables displaying of a dialog box when the JVM experiences an irrecoverable error\&. This prevents the JVM from exiting and keeps the process active so that you can attach a debugger to it to investigate the cause of the error\&. By default, this option is disabled\&. +.RE +.PP +\-XX:ThreadStackSize=\fIsize\fR +.RS 4 +Sets the thread stack size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value depends on the platform: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64\-bit): 1024 KB +.RE +.sp +The following examples show how to set the thread stack size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ThreadStackSize=1m\fR +\fB\-XX:ThreadStackSize=1024k\fR +\fB\-XX:ThreadStackSize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-Xss\fR\&. +.RE +.PP +\-XX:+TraceClassLoading +.RS 4 +Enables tracing of classes as they are loaded\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceClassLoadingPreorder +.RS 4 +Enables tracing of all loaded classes in the order in which they are referenced\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceClassResolution +.RS 4 +Enables tracing of constant pool resolutions\&. By default, this option is disabled and constant pool resolutions are not traced\&. +.RE +.PP +\-XX:+TraceClassUnloading +.RS 4 +Enables tracing of classes as they are unloaded\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceLoaderConstraints +.RS 4 +Enables tracing of the loader constraints recording\&. By default, this option is disabled and loader constraints recording is not traced\&. +.RE +.PP +\-XX:+UseAltSigs +.RS 4 +Enables the use of alternative signals instead of +\fBSIGUSR1\fR +and +\fBSIGUSR2\fR +for JVM internal signals\&. By default, this option is disabled and alternative signals are not used\&. This option is equivalent to +\fB\-Xusealtsigs\fR\&. +.RE +.PP +\-XX:\-UseBiasedLocking +.RS 4 +Disables the use of biased locking\&. Some applications with significant amounts of uncontended synchronization may attain significant speedups with this flag enabled, whereas applications with certain patterns of locking may see slowdowns\&. For more information about the biased locking technique, see the example in Java Tuning White Paper at http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5 +.sp +By default, this option is enabled\&. +.RE +.PP +\-XX:\-UseCompressedOops +.RS 4 +Disables the use of compressed pointers\&. By default, this option is enabled, and compressed pointers are used when Java heap sizes are less than 32 GB\&. When this option is enabled, object references are represented as 32\-bit offsets instead of 64\-bit pointers, which typically increases performance when running the application with Java heap sizes less than 32 GB\&. This option works only for 64\-bit JVMs\&. +.sp +It is also possible to use compressed pointers when Java heap sizes are greater than 32GB\&. See the +\fB\-XX:ObjectAlignmentInBytes\fR +option\&. +.RE +.PP +\-XX:+UseHugeTLBFS +.RS 4 +This option for Linux is the equivalent of specifying +\fB\-XX:+UseLargePages\fR\&. This option is disabled by default\&. This option pre\-allocates all large pages up\-front, when memory is reserved; consequently the JVM cannot dynamically grow or shrink large pages memory areas; see +\fB\-XX:UseTransparentHugePages\fR +if you want this behavior\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseLargePages +.RS 4 +Enables the use of large page memory\&. By default, this option is disabled and large page memory is not used\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseMembar +.RS 4 +Enables issuing of membars on thread state transitions\&. This option is disabled by default on all platforms except ARM servers, where it is enabled\&. (It is recommended that you do not disable this option on ARM servers\&.) +.RE +.PP +\-XX:+UsePerfData +.RS 4 +Enables the +\fBperfdata\fR +feature\&. This option is enabled by default to allow JVM monitoring and performance testing\&. Disabling it suppresses the creation of the +\fBhsperfdata_userid\fR +directories\&. To disable the +\fBperfdata\fR +feature, specify +\fB\-XX:\-UsePerfData\fR\&. +.RE +.PP +\-XX:+UseTransparentHugePages +.RS 4 +On Linux, enables the use of large pages that can dynamically grow or shrink\&. This option is disabled by default\&. You may encounter performance problems with transparent huge pages as the OS moves other pages around to create huge pages; this option is made available for experimentation\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+AllowUserSignalHandlers +.RS 4 +Enables installation of signal handlers by the application\&. By default, this option is disabled and the application is not allowed to install signal handlers\&. +.RE +.SS "Advanced JIT Compiler Options" +.PP +These options control the dynamic just\-in\-time (JIT) compilation performed by the Java HotSpot VM\&. +.PP +\-XX:+AggressiveOpts +.RS 4 +Enables the use of aggressive performance optimization features, which are expected to become default in upcoming releases\&. By default, this option is disabled and experimental performance features are not used\&. +.RE +.PP +\-XX:AllocateInstancePrefetchLines=\fIlines\fR +.RS 4 +Sets the number of lines to prefetch ahead of the instance allocation pointer\&. By default, the number of lines to prefetch is set to 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocateInstancePrefetchLines=1\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchDistance=\fIsize\fR +.RS 4 +Sets the size (in bytes) of the prefetch distance for object allocation\&. Memory about to be written with the value of new objects is prefetched up to this distance starting from the address of the last allocated object\&. Each Java thread has its own allocation point\&. +.sp +Negative values denote that prefetch distance is chosen based on the platform\&. Positive values are bytes to prefetch\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is set to \-1\&. +.sp +The following example shows how to set the prefetch distance to 1024 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchDistance=1024\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchInstr=\fIinstruction\fR +.RS 4 +Sets the prefetch instruction to prefetch ahead of the allocation pointer\&. Only the Java HotSpot Server VM supports this option\&. Possible values are from 0 to 3\&. The actual instructions behind the values depend on the platform\&. By default, the prefetch instruction is set to 0: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchInstr=0\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchLines=\fIlines\fR +.RS 4 +Sets the number of cache lines to load after the last object allocation by using the prefetch instructions generated in compiled code\&. The default value is 1 if the last allocated object was an instance, and 3 if it was an array\&. +.sp +The following example shows how to set the number of loaded cache lines to 5: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchLines=5\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchStepSize=\fIsize\fR +.RS 4 +Sets the step size (in bytes) for sequential prefetch instructions\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the step size is set to 16 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchStepSize=16\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchStyle=\fIstyle\fR +.RS 4 +Sets the generated code style for prefetch instructions\&. The +\fIstyle\fR +argument is an integer from 0 to 3: +.PP +0 +.RS 4 +Do not generate prefetch instructions\&. +.RE +.PP +1 +.RS 4 +Execute prefetch instructions after each allocation\&. This is the default parameter\&. +.RE +.PP +2 +.RS 4 +Use the thread\-local allocation block (TLAB) watermark pointer to determine when prefetch instructions are executed\&. +.RE +.PP +3 +.RS 4 +Use BIS instruction on SPARC for allocation prefetch\&. +.RE +.sp +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+BackgroundCompilation +.RS 4 +Enables background compilation\&. This option is enabled by default\&. To disable background compilation, specify +\fB\-XX:\-BackgroundCompilation\fR +(this is equivalent to specifying +\fB\-Xbatch\fR)\&. +.RE +.PP +\-XX:CICompilerCount=\fIthreads\fR +.RS 4 +Sets the number of compiler threads to use for compilation\&. By default, the number of threads is set to 2 for the server JVM, to 1 for the client JVM, and it scales to the number of cores if tiered compilation is used\&. The following example shows how to set the number of threads to 2: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CICompilerCount=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CodeCacheMinimumFreeSpace=\fIsize\fR +.RS 4 +Sets the minimum free space (in bytes) required for compilation\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. When less than the minimum free space remains, compiling stops\&. By default, this option is set to 500 KB\&. The following example shows how to set the minimum free space to 1024 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CodeCacheMinimumFreeSpace=1024m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileCommand=\fIcommand\fR,\fImethod\fR[,\fIoption\fR] +.RS 4 +Specifies a command to perform on a method\&. For example, to exclude the +\fBindexOf()\fR +method of the +\fBString\fR +class from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +Note that the full class name is specified, including all packages and subpackages separated by a slash (\fB/\fR)\&. For easier cut and paste operations, it is also possible to use the method name format produced by the +\fB\-XX:+PrintCompilation\fR +and +\fB\-XX:+LogCompilation\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java\&.lang\&.String::indexOf\fR + +.fi +.if n \{\ +.RE +.\} +If the method is specified without the signature, the command will be applied to all methods with the specified name\&. However, you can also specify the signature of the method in the class file format\&. In this case, you should enclose the arguments in quotation marks, because otherwise the shell treats the semicolon as command end\&. For example, if you want to exclude only the +\fBindexOf(String)\fR +method of the +\fBString\fR +class from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude,java/lang/String\&.indexOf,(Ljava/lang/String;)I"\fR + +.fi +.if n \{\ +.RE +.\} +You can also use the asterisk (*) as a wildcard for class and method names\&. For example, to exclude all +\fBindexOf()\fR +methods in all classes from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,*\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +The commas and periods are aliases for spaces, making it easier to pass compiler commands through a shell\&. You can pass arguments to +\fB\-XX:CompileCommand\fR +using spaces as separators by enclosing the argument in quotation marks: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude java/lang/String indexOf"\fR + +.fi +.if n \{\ +.RE +.\} +Note that after parsing the commands passed on the command line using the +\fB\-XX:CompileCommand\fR +options, the JIT compiler then reads commands from the +\fB\&.hotspot_compiler\fR +file\&. You can add commands to this file or specify a different file using the +\fB\-XX:CompileCommandFile\fR +option\&. +.sp +To add several commands, either specify the +\fB\-XX:CompileCommand\fR +option multiple times, or separate each argument with the newline separator (\fB\en\fR)\&. The following commands are available: +.PP +break +.RS 4 +Set a breakpoint when debugging the JVM to stop at the beginning of compilation of the specified method\&. +.RE +.PP +compileonly +.RS 4 +Exclude all methods from compilation except for the specified method\&. As an alternative, you can use the +\fB\-XX:CompileOnly\fR +option, which allows to specify several methods\&. +.RE +.PP +dontinline +.RS 4 +Prevent inlining of the specified method\&. +.RE +.PP +exclude +.RS 4 +Exclude the specified method from compilation\&. +.RE +.PP +help +.RS 4 +Print a help message for the +\fB\-XX:CompileCommand\fR +option\&. +.RE +.PP +inline +.RS 4 +Attempt to inline the specified method\&. +.RE +.PP +log +.RS 4 +Exclude compilation logging (with the +\fB\-XX:+LogCompilation\fR +option) for all methods except for the specified method\&. By default, logging is performed for all compiled methods\&. +.RE +.PP +option +.RS 4 +This command can be used to pass a JIT compilation option to the specified method in place of the last argument (\fIoption\fR)\&. The compilation option is set at the end, after the method name\&. For example, to enable the +\fBBlockLayoutByFrequency\fR +option for the +\fBappend()\fR +method of the +\fBStringBuffer\fR +class, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=option,java/lang/StringBuffer\&.append,BlockLayoutByFrequency\fR + +.fi +.if n \{\ +.RE +.\} +You can specify multiple compilation options, separated by commas or spaces\&. +.RE +.PP +print +.RS 4 +Print generated assembler code after compilation of the specified method\&. +.RE +.PP +quiet +.RS 4 +Do not print the compile commands\&. By default, the commands that you specify with the \-\fBXX:CompileCommand\fR +option are printed; for example, if you exclude from compilation the +\fBindexOf()\fR +method of the +\fBString\fR +class, then the following will be printed to standard output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCompilerOracle: exclude java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +You can suppress this by specifying the +\fB\-XX:CompileCommand=quiet\fR +option before other +\fB\-XX:CompileCommand\fR +options\&. +.RE +.RE +.PP +\-XX:CompileCommandFile=\fIfilename\fR +.RS 4 +Sets the file from which JIT compiler commands are read\&. By default, the +\fB\&.hotspot_compiler\fR +file is used to store commands performed by the JIT compiler\&. +.sp +Each line in the command file represents a command, a class name, and a method name for which the command is used\&. For example, this line prints assembly code for the +\fBtoString()\fR +method of the +\fBString\fR +class: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBprint java/lang/String toString\fR + +.fi +.if n \{\ +.RE +.\} +For more information about specifying the commands for the JIT compiler to perform on methods, see the +\fB\-XX:CompileCommand\fR +option\&. +.RE +.PP +\-XX:CompileOnly=\fImethods\fR +.RS 4 +Sets the list of methods (separated by commas) to which compilation should be restricted\&. Only the specified methods will be compiled\&. Specify each method with the full class name (including the packages and subpackages)\&. For example, to compile only the +\fBlength()\fR +method of the +\fBString\fR +class and the +\fBsize()\fR +method of the +\fBList\fR +class, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\&.length,java/util/List\&.size\fR + +.fi +.if n \{\ +.RE +.\} +Note that the full class name is specified, including all packages and subpackages separated by a slash (\fB/\fR)\&. For easier cut and paste operations, it is also possible to use the method name format produced by the +\fB\-XX:+PrintCompilation\fR +and +\fB\-XX:+LogCompilation\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java\&.lang\&.String::length,java\&.util\&.List::size\fR + +.fi +.if n \{\ +.RE +.\} +Although wildcards are not supported, you can specify only the class or package name to compile all methods in that class or package, as well as specify just the method to compile methods with this name in any class: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\fR +\fB\-XX:CompileOnly=java/lang\fR +\fB\-XX:CompileOnly=\&.length\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileThreshold=\fIinvocations\fR +.RS 4 +Sets the number of interpreted method invocations before compilation\&. By default, in the server JVM, the JIT compiler performs 10,000 interpreted method invocations to gather information for efficient compilation\&. For the client JVM, the default setting is 1,500 invocations\&. This option is ignored when tiered compilation is enabled; see the option +\fB\-XX:+TieredCompilation\fR\&. The following example shows how to set the number of interpreted method invocations to 5,000: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileThreshold=5000\fR + +.fi +.if n \{\ +.RE +.\} +You can completely disable interpretation of Java methods before compilation by specifying the +\fB\-Xcomp\fR +option\&. +.RE +.PP +\-XX:+DoEscapeAnalysis +.RS 4 +Enables the use of escape analysis\&. This option is enabled by default\&. To disable the use of escape analysis, specify +\fB\-XX:\-DoEscapeAnalysis\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:InitialCodeCacheSize=\fIsize\fR +.RS 4 +Sets the initial code cache size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is set to 500 KB\&. The initial code cache size should be not less than the system\*(Aqs minimal memory page size\&. The following example shows how to set the initial code cache size to 32 KB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialCodeCacheSize=32k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+Inline +.RS 4 +Enables method inlining\&. This option is enabled by default to increase performance\&. To disable method inlining, specify +\fB\-XX:\-Inline\fR\&. +.RE +.PP +\-XX:InlineSmallCode=\fIsize\fR +.RS 4 +Sets the maximum code size (in bytes) for compiled methods that should be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. Only compiled methods with the size smaller than the specified size will be inlined\&. By default, the maximum code size is set to 1000 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InlineSmallCode=1000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+LogCompilation +.RS 4 +Enables logging of compilation activity to a file named +\fBhotspot\&.log\fR +in the current working directory\&. You can specify a different log file path and name using the +\fB\-XX:LogFile\fR +option\&. +.sp +By default, this option is disabled and compilation activity is not logged\&. The +\fB\-XX:+LogCompilation\fR +option has to be used together with the +\fB\-XX:UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.sp +You can enable verbose diagnostic output with a message printed to the console every time a method is compiled by using the +\fB\-XX:+PrintCompilation\fR +option\&. +.RE +.PP +\-XX:MaxInlineSize=\fIsize\fR +.RS 4 +Sets the maximum bytecode size (in bytes) of a method to be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the maximum bytecode size is set to 35 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxInlineSize=35\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNodeLimit=\fInodes\fR +.RS 4 +Sets the maximum number of nodes to be used during single method compilation\&. By default, the maximum number of nodes is set to 65,000: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxNodeLimit=65000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxTrivialSize=\fIsize\fR +.RS 4 +Sets the maximum bytecode size (in bytes) of a trivial method to be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the maximum bytecode size of a trivial method is set to 6 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTrivialSize=6\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+OptimizeStringConcat +.RS 4 +Enables the optimization of +\fBString\fR +concatenation operations\&. This option is enabled by default\&. To disable the optimization of +\fBString\fR +concatenation operations, specify +\fB\-XX:\-OptimizeStringConcat\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+PrintAssembly +.RS 4 +Enables printing of assembly code for bytecoded and native methods by using the external +\fBdisassembler\&.so\fR +library\&. This enables you to see the generated code, which may help you to diagnose performance issues\&. +.sp +By default, this option is disabled and assembly code is not printed\&. The +\fB\-XX:+PrintAssembly\fR +option has to be used together with the +\fB\-XX:UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.RE +.PP +\-XX:+PrintCompilation +.RS 4 +Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled\&. This enables you to see which methods actually get compiled\&. By default, this option is disabled and diagnostic output is not printed\&. +.sp +You can also log compilation activity to a file by using the +\fB\-XX:+LogCompilation\fR +option\&. +.RE +.PP +\-XX:+PrintInlining +.RS 4 +Enables printing of inlining decisions\&. This enables you to see which methods are getting inlined\&. +.sp +By default, this option is disabled and inlining information is not printed\&. The +\fB\-XX:+PrintInlining\fR +option has to be used together with the +\fB\-XX:+UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.RE +.PP +\-XX:ReservedCodeCacheSize=\fIsize\fR +.RS 4 +Sets the maximum code cache size (in bytes) for JIT\-compiled code\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default maximum code cache size is 240 MB; if you disable tiered compilation with the option +\fB\-XX:\-TieredCompilation\fR, then the default size is 48 MB\&. This option has a limit of 2 GB; otherwise, an error is generated\&. The maximum code cache size should not be less than the initial code cache size; see the option +\fB\-XX:InitialCodeCacheSize\fR\&. This option is equivalent to +\fB\-Xmaxjitcodesize\fR\&. +.RE +.PP +\-XX:RTMAbortRatio=\fIabort_ratio\fR +.RS 4 +The RTM abort ratio is specified as a percentage (%) of all executed RTM transactions\&. If a number of aborted transactions becomes greater than this ratio, then the compiled code will be deoptimized\&. This ratio is used when the +\fB\-XX:+UseRTMDeopt\fR +option is enabled\&. The default value of this option is 50\&. This means that the compiled code will be deoptimized if 50% of all transactions are aborted\&. +.RE +.PP +\-XX:RTMRetryCount=\fInumber_of_retries\fR +.RS 4 +RTM locking code will be retried, when it is aborted or busy, the number of times specified by this option before falling back to the normal locking mechanism\&. The default value for this option is 5\&. The +\fB\-XX:UseRTMLocking\fR +option must be enabled\&. +.RE +.PP +\-XX:\-TieredCompilation +.RS 4 +Disables the use of tiered compilation\&. By default, this option is enabled\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+UseAES +.RS 4 +Enables hardware\-based AES intrinsics for Intel, AMD, and SPARC hardware\&. Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), and SPARC (T4 and newer) are the supported hardware\&. UseAES is used in conjunction with UseAESIntrinsics\&. +.RE +.PP +\-XX:+UseAESIntrinsics +.RS 4 +UseAES and UseAESIntrinsics flags are enabled by default and are supported only for Java HotSpot Server VM 32\-bit and 64\-bit\&. To disable hardware\-based AES intrinsics, specify +\fB\-XX:\-UseAES \-XX:\-UseAESIntrinsics\fR\&. For example, to enable hardware AES, use the following flags: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:+UseAES \-XX:+UseAESIntrinsics\fR + +.fi +.if n \{\ +.RE +.\} +To support UseAES and UseAESIntrinsics flags for 32\-bit and 64\-bit use +\fB\-server\fR +option to choose Java HotSpot Server VM\&. These flags are not supported on Client VM\&. +.RE +.PP +\-XX:+UseCodeCacheFlushing +.RS 4 +Enables flushing of the code cache before shutting down the compiler\&. This option is enabled by default\&. To disable flushing of the code cache before shutting down the compiler, specify +\fB\-XX:\-UseCodeCacheFlushing\fR\&. +.RE +.PP +\-XX:+UseCondCardMark +.RS 4 +Enables checking of whether the card is already marked before updating the card table\&. This option is disabled by default and should only be used on machines with multiple sockets, where it will increase performance of Java applications that rely heavily on concurrent operations\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+UseRTMDeopt +.RS 4 +Auto\-tunes RTM locking depending on the abort ratio\&. This ratio is specified by +\fB\-XX:RTMAbortRatio\fR +option\&. If the number of aborted transactions exceeds the abort ratio, then the method containing the lock will be deoptimized and recompiled with all locks as normal locks\&. This option is disabled by default\&. The +\fB\-XX:+UseRTMLocking\fR +option must be enabled\&. +.RE +.PP +\-XX:+UseRTMLocking +.RS 4 +Generate Restricted Transactional Memory (RTM) locking code for all inflated locks, with the normal locking mechanism as the fallback handler\&. This option is disabled by default\&. Options related to RTM are only available for the Java HotSpot Server VM on x86 CPUs that support Transactional Synchronization Extensions (TSX)\&. +.sp +RTM is part of Intel\*(Aqs TSX, which is an x86 instruction set extension and facilitates the creation of multithreaded applications\&. RTM introduces the new instructions +\fBXBEGIN\fR, +\fBXABORT\fR, +\fBXEND\fR, and +\fBXTEST\fR\&. The +\fBXBEGIN\fR +and +\fBXEND\fR +instructions enclose a set of instructions to run as a transaction\&. If no conflict is found when running the transaction, the memory and register modifications are committed together at the +\fBXEND\fR +instruction\&. The +\fBXABORT\fR +instruction can be used to explicitly abort a transaction and the +\fBXEND\fR +instruction to check if a set of instructions are being run in a transaction\&. +.sp +A lock on a transaction is inflated when another thread tries to access the same transaction, thereby blocking the thread that did not originally request access to the transaction\&. RTM requires that a fallback set of operations be specified in case a transaction aborts or fails\&. An RTM lock is a lock that has been delegated to the TSX\*(Aqs system\&. +.sp +RTM improves performance for highly contended locks with low conflict in a critical region (which is code that must not be accessed by more than one thread concurrently)\&. RTM also improves the performance of coarse\-grain locking, which typically does not perform well in multithreaded applications\&. (Coarse\-grain locking is the strategy of holding locks for long periods to minimize the overhead of taking and releasing locks, while fine\-grained locking is the strategy of trying to achieve maximum parallelism by locking only when necessary and unlocking as soon as possible\&.) Also, for lightly contended locks that are used by different threads, RTM can reduce false cache line sharing, also known as cache line ping\-pong\&. This occurs when multiple threads from different processors are accessing different resources, but the resources share the same cache line\&. As a result, the processors repeatedly invalidate the cache lines of other processors, which forces them to read from main memory instead of their cache\&. +.RE +.PP +\-XX:+UseSHA +.RS 4 +Enables hardware\-based intrinsics for SHA crypto hash functions for SPARC hardware\&. +\fBUseSHA\fR +is used in conjunction with the +\fBUseSHA1Intrinsics\fR, +\fBUseSHA256Intrinsics\fR, and +\fBUseSHA512Intrinsics\fR +options\&. +.sp +The +\fBUseSHA\fR +and +\fBUseSHA*Intrinsics\fR +flags are enabled by default, and are supported only for Java HotSpot Server VM 64\-bit on SPARC T4 and newer\&. +.sp +This feature is only applicable when using the +\fBsun\&.security\&.provider\&.Sun\fR +provider for SHA operations\&. +.sp +To disable all hardware\-based SHA intrinsics, specify +\fB\-XX:\-UseSHA\fR\&. To disable only a particular SHA intrinsic, use the appropriate corresponding option\&. For example: +\fB\-XX:\-UseSHA256Intrinsics\fR\&. +.RE +.PP +\-XX:+UseSHA1Intrinsics +.RS 4 +Enables intrinsics for SHA\-1 crypto hash function\&. +.RE +.PP +\-XX:+UseSHA256Intrinsics +.RS 4 +Enables intrinsics for SHA\-224 and SHA\-256 crypto hash functions\&. +.RE +.PP +\-XX:+UseSHA512Intrinsics +.RS 4 +Enables intrinsics for SHA\-384 and SHA\-512 crypto hash functions\&. +.RE +.PP +\-XX:+UseSuperWord +.RS 4 +Enables the transformation of scalar operations into superword operations\&. This option is enabled by default\&. To disable the transformation of scalar operations into superword operations, specify +\fB\-XX:\-UseSuperWord\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.SS "Advanced Serviceability Options" +.PP +These options provide the ability to gather system information and perform extensive debugging\&. +.PP +\-XX:+ExtendedDTraceProbes +.RS 4 +Enables additional +\fBdtrace\fR +tool probes that impact the performance\&. By default, this option is disabled and +\fBdtrace\fR +performs only standard probes\&. +.RE +.PP +\-XX:+HeapDumpOnOutOfMemory +.RS 4 +Enables the dumping of the Java heap to a file in the current directory by using the heap profiler (HPROF) when a +\fBjava\&.lang\&.OutOfMemoryError\fR +exception is thrown\&. You can explicitly set the heap dump file path and name using the +\fB\-XX:HeapDumpPath\fR +option\&. By default, this option is disabled and the heap is not dumped when an +\fBOutOfMemoryError\fR +exception is thrown\&. +.RE +.PP +\-XX:HeapDumpPath=\fIpath\fR +.RS 4 +Sets the path and file name for writing the heap dump provided by the heap profiler (HPROF) when the +\fB\-XX:+HeapDumpOnOutOfMemoryError\fR +option is set\&. By default, the file is created in the current working directory, and it is named +\fBjava_pid\fR\fIpid\fR\fB\&.hprof\fR +where +\fIpid\fR +is the identifier of the process that caused the error\&. The following example shows how to set the default file explicitly (\fB%p\fR +represents the current process identificator): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=\&./java_pid%p\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to set the heap dump file to +\fB/var/log/java/java_heapdump\&.hprof\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=/var/log/java/java_heapdump\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:LogFile=\fIpath\fR +.RS 4 +Sets the path and file name where log data is written\&. By default, the file is created in the current working directory, and it is named +\fBhotspot\&.log\fR\&. +.sp +The following example shows how to set the log file to +\fB/var/log/java/hotspot\&.log\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LogFile=/var/log/java/hotspot\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintClassHistogram +.RS 4 +Enables printing of a class instance histogram after a +\fBControl+C\fR +event (\fBSIGTERM\fR)\&. By default, this option is disabled\&. +.sp +Setting this option is equivalent to running the +\fBjmap \-histo\fR +command, or the +\fBjcmd \fR\fIpid\fR\fB GC\&.class_histogram\fR +command, where +\fIpid\fR +is the current Java process identifier\&. +.RE +.PP +\-XX:+PrintConcurrentLocks +.RS 4 +Enables printing of locks after a event\&. By default, this option is disabled\&. +.sp +Enables printing of +\fBjava\&.util\&.concurrent\fR +locks after a +\fBControl+C\fR +event (\fBSIGTERM\fR)\&. By default, this option is disabled\&. +.sp +Setting this option is equivalent to running the +\fBjstack \-l\fR +command or the +\fBjcmd \fR\fIpid\fR\fB Thread\&.print \-l\fR +command, where +\fIpid\fR +is the current Java process identifier\&. +.RE +.PP +\-XX:+UnlockDiagnosticVMOptions +.RS 4 +Unlocks the options intended for diagnosing the JVM\&. By default, this option is disabled and diagnostic options are not available\&. +.RE +.SS "Advanced Garbage Collection Options" +.PP +These options control how garbage collection (GC) is performed by the Java HotSpot VM\&. +.PP +\-XX:+AggressiveHeap +.RS 4 +Enables Java heap optimization\&. This sets various parameters to be optimal for long\-running jobs with intensive memory allocation, based on the configuration of the computer (RAM and CPU)\&. By default, the option is disabled and the heap is not optimized\&. +.RE +.PP +\-XX:+AlwaysPreTouch +.RS 4 +Enables touching of every page on the Java heap during JVM initialization\&. This gets all pages into the memory before entering the +\fBmain()\fR +method\&. The option can be used in testing to simulate a long\-running system with all virtual memory mapped to physical memory\&. By default, this option is disabled and all pages are committed as JVM heap space fills\&. +.RE +.PP +\-XX:+CMSClassUnloadingEnabled +.RS 4 +Enables class unloading when using the concurrent mark\-sweep (CMS) garbage collector\&. This option is enabled by default\&. To disable class unloading for the CMS garbage collector, specify +\fB\-XX:\-CMSClassUnloadingEnabled\fR\&. +.RE +.PP +\-XX:CMSExpAvgFactor=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) used to weight the current sample when computing exponential averages for the concurrent collection statistics\&. By default, the exponential averages factor is set to 25%\&. The following example shows how to set the factor to 15%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSExpAvgFactor=15\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CMSInitiatingOccupancyFraction=\fIpercent\fR +.RS 4 +Sets the percentage of the old generation occupancy (0 to 100) at which to start a CMS collection cycle\&. The default value is set to \-1\&. Any negative value (including the default) implies that +\fB\-XX:CMSTriggerRatio\fR +is used to define the value of the initiating occupancy fraction\&. +.sp +The following example shows how to set the occupancy fraction to 20%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSInitiatingOccupancyFraction=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+CMSScavengeBeforeRemark +.RS 4 +Enables scavenging attempts before the CMS remark step\&. By default, this option is disabled\&. +.RE +.PP +\-XX:CMSTriggerRatio=\fIpercent\fR +.RS 4 +Sets the percentage (0 to 100) of the value specified by +\fB\-XX:MinHeapFreeRatio\fR +that is allocated before a CMS collection cycle commences\&. The default value is set to 80%\&. +.sp +The following example shows how to set the occupancy fraction to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSTriggerRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:ConcGCThreads=\fIthreads\fR +.RS 4 +Sets the number of threads used for concurrent GC\&. The default value depends on the number of CPUs available to the JVM\&. +.sp +For example, to set the number of threads for concurrent GC to 2, specify the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ConcGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+DisableExplicitGC +.RS 4 +Enables the option that disables processing of calls to +\fBSystem\&.gc()\fR\&. This option is disabled by default, meaning that calls to +\fBSystem\&.gc()\fR +are processed\&. If processing of calls to +\fBSystem\&.gc()\fR +is disabled, the JVM still performs GC when necessary\&. +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrent +.RS 4 +Enables invoking of concurrent GC by using the +\fBSystem\&.gc()\fR +request\&. This option is disabled by default and can be enabled only together with the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses +.RS 4 +Enables invoking of concurrent GC by using the +\fBSystem\&.gc()\fR +request and unloading of classes during the concurrent GC cycle\&. This option is disabled by default and can be enabled only together with the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. +.RE +.PP +\-XX:G1HeapRegionSize=\fIsize\fR +.RS 4 +Sets the size of the regions into which the Java heap is subdivided when using the garbage\-first (G1) collector\&. The value can be between 1 MB and 32 MB\&. The default region size is determined ergonomically based on the heap size\&. +.sp +The following example shows how to set the size of the subdivisions to 16 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1HeapRegionSize=16m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+G1PrintHeapRegions +.RS 4 +Enables the printing of information about which regions are allocated and which are reclaimed by the G1 collector\&. By default, this option is disabled\&. +.RE +.PP +\-XX:G1ReservePercent=\fIpercent\fR +.RS 4 +Sets the percentage of the heap (0 to 50) that is reserved as a false ceiling to reduce the possibility of promotion failure for the G1 collector\&. By default, this option is set to 10%\&. +.sp +The following example shows how to set the reserved heap to 20%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1ReservePercent=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitialHeapSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the memory allocation pool\&. This value must be either 0, or a multiple of 1024 and greater than 1 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the size of allocated memory to 6 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialHeapSize=6291456\fR +\fB\-XX:InitialHeapSize=6144k\fR +\fB\-XX:InitialHeapSize=6m\fR + +.fi +.if n \{\ +.RE +.\} +If you set this option to 0, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation\&. The size of the heap for the young generation can be set using the +\fB\-XX:NewSize\fR +option\&. +.RE +.PP +\-XX:InitialSurvivorRatio=\fIratio\fR +.RS 4 +Sets the initial survivor space ratio used by the throughput garbage collector (which is enabled by the +\fB\-XX:+UseParallelGC\fR +and/or \-\fBXX:+UseParallelOldGC\fR +options)\&. Adaptive sizing is enabled by default with the throughput garbage collector by using the +\fB\-XX:+UseParallelGC\fR +and +\fB\-XX:+UseParallelOldGC\fR +options, and survivor space is resized according to the application behavior, starting with the initial value\&. If adaptive sizing is disabled (using the +\fB\-XX:\-UseAdaptiveSizePolicy\fR +option), then the +\fB\-XX:SurvivorRatio\fR +option should be used to set the size of the survivor space for the entire execution of the application\&. +.sp +The following formula can be used to calculate the initial size of survivor space (S) based on the size of the young generation (Y), and the initial survivor space ratio (R): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBS=Y/(R+2)\fR + +.fi +.if n \{\ +.RE +.\} +The 2 in the equation denotes two survivor spaces\&. The larger the value specified as the initial survivor space ratio, the smaller the initial survivor space size\&. +.sp +By default, the initial survivor space ratio is set to 8\&. If the default value for the young generation space size is used (2 MB), the initial size of the survivor space will be 0\&.2 MB\&. +.sp +The following example shows how to set the initial survivor space ratio to 4: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialSurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitiatingHeapOccupancyPercent=\fIpercent\fR +.RS 4 +Sets the percentage of the heap occupancy (0 to 100) at which to start a concurrent GC cycle\&. It is used by garbage collectors that trigger a concurrent GC cycle based on the occupancy of the entire heap, not just one of the generations (for example, the G1 garbage collector)\&. +.sp +By default, the initiating value is set to 45%\&. A value of 0 implies nonstop GC cycles\&. The following example shows how to set the initiating heap occupancy to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitiatingHeapOccupancyPercent=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxGCPauseMillis=\fItime\fR +.RS 4 +Sets a target for the maximum GC pause time (in milliseconds)\&. This is a soft goal, and the JVM will make its best effort to achieve it\&. By default, there is no maximum pause time value\&. +.sp +The following example shows how to set the maximum target pause time to 500 ms: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxGCPauseMillis=500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxHeapSize=\fIsize\fR +.RS 4 +Sets the maximum size (in byes) of the memory allocation pool\&. This value must be a multiple of 1024 and greater than 2 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. For server deployments, +\fB\-XX:InitialHeapSize\fR +and +\fB\-XX:MaxHeapSize\fR +are often set to the same value\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapSize=83886080\fR +\fB\-XX:MaxHeapSize=81920k\fR +\fB\-XX:MaxHeapSize=80m\fR + +.fi +.if n \{\ +.RE +.\} +On Oracle Solaris 7 and Oracle Solaris 8 SPARC platforms, the upper limit for this value is approximately 4,000 MB minus overhead amounts\&. On Oracle Solaris 2\&.6 and x86 platforms, the upper limit is approximately 2,000 MB minus overhead amounts\&. On Linux platforms, the upper limit is approximately 2,000 MB minus overhead amounts\&. +.sp +The +\fB\-XX:MaxHeapSize\fR +option is equivalent to +\fB\-Xmx\fR\&. +.RE +.PP +\-XX:MaxHeapFreeRatio=\fIpercent\fR +.RS 4 +Sets the maximum allowed percentage of free heap space (0 to 100) after a GC event\&. If free heap space expands above this value, then the heap will be shrunk\&. By default, this value is set to 70%\&. +.sp +The following example shows how to set the maximum free heap ratio to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapFreeRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxMetaspaceSize=\fIsize\fR +.RS 4 +Sets the maximum amount of native memory that can be allocated for class metadata\&. By default, the size is not limited\&. The amount of metadata for an application depends on the application itself, other running applications, and the amount of memory available on the system\&. +.sp +The following example shows how to set the maximum class metadata size to 256 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxMetaspaceSize=256m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNewSize=\fIsize\fR +.RS 4 +Sets the maximum size (in bytes) of the heap for the young generation (nursery)\&. The default value is set ergonomically\&. +.RE +.PP +\-XX:MaxTenuringThreshold=\fIthreshold\fR +.RS 4 +Sets the maximum tenuring threshold for use in adaptive GC sizing\&. The largest value is 15\&. The default value is 15 for the parallel (throughput) collector, and 6 for the CMS collector\&. +.sp +The following example shows how to set the maximum tenuring threshold to 10: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTenuringThreshold=10\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MetaspaceSize=\fIsize\fR +.RS 4 +Sets the size of the allocated class metadata space that will trigger a garbage collection the first time it is exceeded\&. This threshold for a garbage collection is increased or decreased depending on the amount of metadata used\&. The default size depends on the platform\&. +.RE +.PP +\-XX:MinHeapFreeRatio=\fIpercent\fR +.RS 4 +Sets the minimum allowed percentage of free heap space (0 to 100) after a GC event\&. If free heap space falls below this value, then the heap will be expanded\&. By default, this value is set to 40%\&. +.sp +The following example shows how to set the minimum free heap ratio to 25%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MinHeapFreeRatio=25\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewRatio=\fIratio\fR +.RS 4 +Sets the ratio between young and old generation sizes\&. By default, this option is set to 2\&. The following example shows how to set the young/old ratio to 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewRatio=1\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the heap for the young generation (nursery)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The young generation region of the heap is used for new objects\&. GC is performed in this region more often than in other regions\&. If the size for the young generation is too low, then a large number of minor GCs will be performed\&. If the size is too high, then only full GCs will be performed, which can take a long time to complete\&. Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size\&. +.sp +The following examples show how to set the initial size of young generation to 256 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewSize=256m\fR +\fB\-XX:NewSize=262144k\fR +\fB\-XX:NewSize=268435456\fR + +.fi +.if n \{\ +.RE +.\} +The +\fB\-XX:NewSize\fR +option is equivalent to +\fB\-Xmn\fR\&. +.RE +.PP +\-XX:ParallelGCThreads=\fIthreads\fR +.RS 4 +Sets the number of threads used for parallel garbage collection in the young and old generations\&. The default value depends on the number of CPUs available to the JVM\&. +.sp +For example, to set the number of threads for parallel GC to 2, specify the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ParallelGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+ParallelRefProcEnabled +.RS 4 +Enables parallel reference processing\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintAdaptiveSizePolicy +.RS 4 +Enables printing of information about adaptive generation sizing\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGC +.RS 4 +Enables printing of messages at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCApplicationConcurrentTime +.RS 4 +Enables printing of how much time elapsed since the last pause (for example, a GC pause)\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCApplicationStoppedTime +.RS 4 +Enables printing of how much time the pause (for example, a GC pause) lasted\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCDateStamps +.RS 4 +Enables printing of a date stamp at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCDetails +.RS 4 +Enables printing of detailed messages at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCTaskTimeStamps +.RS 4 +Enables printing of time stamps for every individual GC worker thread task\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCTimeStamps +.RS 4 +Enables printing of time stamps at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintStringDeduplicationStatistics +.RS 4 +Prints detailed deduplication statistics\&. By default, this option is disabled\&. See the +\fB\-XX:+UseStringDeduplication\fR +option\&. +.RE +.PP +\-XX:+PrintTenuringDistribution +.RS 4 +Enables printing of tenuring age information\&. The following is an example of the output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBDesired survivor size 48286924 bytes, new threshold 10 (max 10)\fR +\fB\- age 1: 28992024 bytes, 28992024 total\fR +\fB\- age 2: 1366864 bytes, 30358888 total\fR +\fB\- age 3: 1425912 bytes, 31784800 total\fR +\fB\&.\&.\&.\fR + +.fi +.if n \{\ +.RE +.\} +Age 1 objects are the youngest survivors (they were created after the previous scavenge, survived the latest scavenge, and moved from eden to survivor space)\&. Age 2 objects have survived two scavenges (during the second scavenge they were copied from one survivor space to the next)\&. And so on\&. +.sp +In the preceding example, 28 992 024 bytes survived one scavenge and were copied from eden to survivor space, 1 366 864 bytes are occupied by age 2 objects, etc\&. The third value in each row is the cumulative size of objects of age n or less\&. +.sp +By default, this option is disabled\&. +.RE +.PP +\-XX:+ScavengeBeforeFullGC +.RS 4 +Enables GC of the young generation before each full GC\&. This option is enabled by default\&. Oracle recommends that you +\fIdo not\fR +disable it, because scavenging the young generation before a full GC can reduce the number of objects reachable from the old generation space into the young generation space\&. To disable GC of the young generation before each full GC, specify +\fB\-XX:\-ScavengeBeforeFullGC\fR\&. +.RE +.PP +\-XX:SoftRefLRUPolicyMSPerMB=\fItime\fR +.RS 4 +Sets the amount of time (in milliseconds) a softly reachable object is kept active on the heap after the last time it was referenced\&. The default value is one second of lifetime per free megabyte in the heap\&. The +\fB\-XX:SoftRefLRUPolicyMSPerMB\fR +option accepts integer values representing milliseconds per one megabyte of the current heap size (for Java HotSpot Client VM) or the maximum possible heap size (for Java HotSpot Server VM)\&. This difference means that the Client VM tends to flush soft references rather than grow the heap, whereas the Server VM tends to grow the heap rather than flush soft references\&. In the latter case, the value of the +\fB\-Xmx\fR +option has a significant effect on how quickly soft references are garbage collected\&. +.sp +The following example shows how to set the value to 2\&.5 seconds: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SoftRefLRUPolicyMSPerMB=2500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:StringDeduplicationAgeThreshold=\fIthreshold\fR +.RS 4 +\fBString\fR +objects reaching the specified age are considered candidates for deduplication\&. An object\*(Aqs age is a measure of how many times it has survived garbage collection\&. This is sometimes referred to as tenuring; see the +\fB\-XX:+PrintTenuringDistribution\fR +option\&. Note that +\fBString\fR +objects that are promoted to an old heap region before this age has been reached are always considered candidates for deduplication\&. The default value for this option is +\fB3\fR\&. See the +\fB\-XX:+UseStringDeduplication\fR +option\&. +.RE +.PP +\-XX:SurvivorRatio=\fIratio\fR +.RS 4 +Sets the ratio between eden space size and survivor space size\&. By default, this option is set to 8\&. The following example shows how to set the eden/survivor space ratio to 4: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TargetSurvivorRatio=\fIpercent\fR +.RS 4 +Sets the desired percentage of survivor space (0 to 100) used after young garbage collection\&. By default, this option is set to 50%\&. +.sp +The following example shows how to set the target survivor space ratio to 30%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TargetSurvivorRatio=30\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TLABSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of a thread\-local allocation buffer (TLAB)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. If this option is set to 0, then the JVM chooses the initial size automatically\&. +.sp +The following example shows how to set the initial TLAB size to 512 KB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TLABSize=512k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+UseAdaptiveSizePolicy +.RS 4 +Enables the use of adaptive generation sizing\&. This option is enabled by default\&. To disable adaptive generation sizing, specify +\fB\-XX:\-UseAdaptiveSizePolicy\fR +and set the size of the memory allocation pool explicitly (see the +\fB\-XX:SurvivorRatio\fR +option)\&. +.RE +.PP +\-XX:+UseCMSInitiatingOccupancyOnly +.RS 4 +Enables the use of the occupancy value as the only criterion for initiating the CMS collector\&. By default, this option is disabled and other criteria may be used\&. +.RE +.PP +\-XX:+UseConcMarkSweepGC +.RS 4 +Enables the use of the CMS garbage collector for the old generation\&. Oracle recommends that you use the CMS garbage collector when application latency requirements cannot be met by the throughput (\fB\-XX:+UseParallelGC\fR) garbage collector\&. The G1 garbage collector (\fB\-XX:+UseG1GC\fR) is another alternative\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. When this option is enabled, the +\fB\-XX:+UseParNewGC\fR +option is automatically set and you should not disable it, because the following combination of options has been deprecated in JDK 8: +\fB\-XX:+UseConcMarkSweepGC \-XX:\-UseParNewGC\fR\&. +.RE +.PP +\-XX:+UseG1GC +.RS 4 +Enables the use of the garbage\-first (G1) garbage collector\&. It is a server\-style garbage collector, targeted for multiprocessor machines with a large amount of RAM\&. It meets GC pause time goals with high probability, while maintaining good throughput\&. The G1 collector is recommended for applications requiring large heaps (sizes of around 6 GB or larger) with limited GC latency requirements (stable and predictable pause time below 0\&.5 seconds)\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. +.RE +.PP +\-XX:+UseGCOverheadLimit +.RS 4 +Enables the use of a policy that limits the proportion of time spent by the JVM on GC before an +\fBOutOfMemoryError\fR +exception is thrown\&. This option is enabled, by default and the parallel GC will throw an +\fBOutOfMemoryError\fR +if more than 98% of the total time is spent on garbage collection and less than 2% of the heap is recovered\&. When the heap is small, this feature can be used to prevent applications from running for long periods of time with little or no progress\&. To disable this option, specify +\fB\-XX:\-UseGCOverheadLimit\fR\&. +.RE +.PP +\-XX:+UseNUMA +.RS 4 +Enables performance optimization of an application on a machine with nonuniform memory architecture (NUMA) by increasing the application\*(Aqs use of lower latency memory\&. By default, this option is disabled and no optimization for NUMA is made\&. The option is only available when the parallel garbage collector is used (\fB\-XX:+UseParallelGC\fR)\&. +.RE +.PP +\-XX:+UseParallelGC +.RS 4 +Enables the use of the parallel scavenge garbage collector (also known as the throughput collector) to improve the performance of your application by leveraging multiple processors\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. If it is enabled, then the +\fB\-XX:+UseParallelOldGC\fR +option is automatically enabled, unless you explicitly disable it\&. +.RE +.PP +\-XX:+UseParallelOldGC +.RS 4 +Enables the use of the parallel garbage collector for full GCs\&. By default, this option is disabled\&. Enabling it automatically enables the +\fB\-XX:+UseParallelGC\fR +option\&. +.RE +.PP +\-XX:+UseParNewGC +.RS 4 +Enables the use of parallel threads for collection in the young generation\&. By default, this option is disabled\&. It is automatically enabled when you set the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. Using the +\fB\-XX:+UseParNewGC\fR +option without the +\fB\-XX:+UseConcMarkSweepGC\fR +option was deprecated in JDK 8\&. +.RE +.PP +\-XX:+UseSerialGC +.RS 4 +Enables the use of the serial garbage collector\&. This is generally the best choice for small and simple applications that do not require any special functionality from garbage collection\&. By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. +.RE +.PP +\-XX:+UseSHM +.RS 4 +On Linux, enables the JVM to use shared memory to setup large pages\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseStringDeduplication +.RS 4 +Enables string deduplication\&. By default, this option is disabled\&. To use this option, you must enable the garbage\-first (G1) garbage collector\&. See the +\fB\-XX:+UseG1GC\fR +option\&. +.sp +\fIString deduplication\fR +reduces the memory footprint of +\fBString\fR +objects on the Java heap by taking advantage of the fact that many +\fBString\fR +objects are identical\&. Instead of each +\fBString\fR +object pointing to its own character array, identical +\fBString\fR +objects can point to and share the same character array\&. +.RE +.PP +\-XX:+UseTLAB +.RS 4 +Enables the use of thread\-local allocation blocks (TLABs) in the young generation space\&. This option is enabled by default\&. To disable the use of TLABs, specify +\fB\-XX:\-UseTLAB\fR\&. +.RE +.SS "Deprecated and Removed Options" +.PP +These options were included in the previous release, but have since been considered unnecessary\&. +.PP +\-Xincgc +.RS 4 +Enables incremental garbage collection\&. This option was deprecated in JDK 8 with no replacement\&. +.RE +.PP +\-Xrun\fIlibname\fR +.RS 4 +Loads the specified debugging/profiling library\&. This option was superseded by the +\fB\-agentlib\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalDutyCycle=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) between minor collections that the concurrent collector is allowed to run\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalDutyCycleMin=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) between minor collections that is the lower bound for the duty cycle when +\fB\-XX:+CMSIncrementalPacing\fR +is enabled\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:+CMSIncrementalMode +.RS 4 +Enables the incremental mode for the CMS collector\&. This option was deprecated in JDK 8 with no replacement, along with other options that start with +\fBCMSIncremental\fR\&. +.RE +.PP +\-XX:CMSIncrementalOffset=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) by which the incremental mode duty cycle is shifted to the right within the period between minor collections\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:+CMSIncrementalPacing +.RS 4 +Enables automatic adjustment of the incremental mode duty cycle based on statistics collected while the JVM is running\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalSafetyFactor=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) used to add conservatism when computing the duty cycle\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSInitiatingPermOccupancyFraction=\fIpercent\fR +.RS 4 +Sets the percentage of the permanent generation occupancy (0 to 100) at which to start a GC\&. This option was deprecated in JDK 8 with no replacement\&. +.RE +.PP +\-XX:MaxPermSize=\fIsize\fR +.RS 4 +Sets the maximum permanent generation space size (in bytes)\&. This option was deprecated in JDK 8, and superseded by the +\fB\-XX:MaxMetaspaceSize\fR +option\&. +.RE +.PP +\-XX:PermSize=\fIsize\fR +.RS 4 +Sets the space (in bytes) allocated to the permanent generation that triggers a garbage collection if it is exceeded\&. This option was deprecated un JDK 8, and superseded by the +\fB\-XX:MetaspaceSize\fR +option\&. +.RE +.PP +\-XX:+UseSplitVerifier +.RS 4 +Enables splitting of the verification process\&. By default, this option was enabled in the previous releases, and verification was split into two phases: type referencing (performed by the compiler) and type checking (performed by the JVM runtime)\&. This option was deprecated in JDK 8, and verification is now split by default without a way to disable it\&. +.RE +.PP +\-XX:+UseStringCache +.RS 4 +Enables caching of commonly allocated strings\&. This option was removed from JDK 8 with no replacement\&. +.RE +.SH "PERFORMANCE TUNING EXAMPLES" +.PP +The following examples show how to use experimental tuning flags to either optimize throughput or to provide lower response time\&. +.PP +\fBExample 1 \fRTuning for Higher Throughput +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-server \-XX:+AggressiveOpts \-XX:+UseLargePages \-Xmn10g \-Xms26g \-Xmx26g\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBExample 2 \fRTuning for Lower Response Time +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-XX:+UseG1GC \-Xms26g Xmx26g \-XX:MaxGCPauseMillis=500 \-XX:+PrintGCTimeStamp\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "LARGE PAGES" +.PP +Also known as huge pages, large pages are memory pages that are significantly larger than the standard memory page size (which varies depending on the processor and operating system)\&. Large pages optimize processor Translation\-Lookaside Buffers\&. +.PP +A Translation\-Lookaside Buffer (TLB) is a page translation cache that holds the most\-recently used virtual\-to\-physical address translations\&. TLB is a scarce system resource\&. A TLB miss can be costly as the processor must then read from the hierarchical page table, which may require multiple memory accesses\&. By using a larger memory page size, a single TLB entry can represent a larger memory range\&. There will be less pressure on TLB, and memory\-intensive applications may have better performance\&. +.PP +However, large pages page memory can negatively affect system performance\&. For example, when a large mount of memory is pinned by an application, it may create a shortage of regular memory and cause excessive paging in other applications and slow down the entire system\&. Also, a system that has been up for a long time could produce excessive fragmentation, which could make it impossible to reserve enough large page memory\&. When this happens, either the OS or JVM reverts to using regular pages\&. +.SS "Large Pages Support" +.PP +Solaris and Linux support large pages\&. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBSolaris\fR +.RS 4 +.PP +Solaris 9 and later include Multiple Page Size Support (MPSS); no additional configuration is necessary\&. See http://www\&.oracle\&.com/technetwork/server\-storage/solaris10/overview/solaris9\-features\-scalability\-135663\&.html\&. +.RE +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBLinux\fR +.RS 4 +.PP +The 2\&.6 kernel supports large pages\&. Some vendors have backported the code to their 2\&.4\-based releases\&. To check if your system can support large page memory, try the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# cat /proc/meminfo | grep Huge\fR +\fBHugePages_Total: 0\fR +\fBHugePages_Free: 0\fR +\fBHugepagesize: 2048 kB\fR + +.fi +.if n \{\ +.RE +.\} +.PP +If the output shows the three "Huge" variables, then your system can support large page memory but it needs to be configured\&. If the command prints nothing, then your system does not support large pages\&. To configure the system to use large page memory, login as +\fBroot\fR, and then follow these steps: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +If you are using the option +\fB\-XX:+UseSHM\fR +(instead of +\fB\-XX:+UseHugeTLBFS\fR), then increase the +\fBSHMMAX\fR +value\&. It must be larger than the Java heap size\&. On a system with 4 GB of physical RAM (or less), the following will make all the memory sharable: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 4294967295 > /proc/sys/kernel/shmmax\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +If you are using the option +\fB\-XX:+UseSHM\fR +or +\fB\-XX:+UseHugeTLBFS\fR, then specify the number of large pages\&. In the following example, 3 GB of a 4 GB system are reserved for large pages (assuming a large page size of 2048kB, then 3 GB = 3 * 1024 MB = 3072 MB = 3072 * 1024 kB = 3145728 kB and 3145728 kB / 2048 kB = 1536): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 1536 > /proc/sys/vm/nr_hugepages\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.TS +allbox tab(:); +l. +T{ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Note that the values contained in +\fB/proc\fR +will reset after you reboot your system, so may want to set them in an initialization script (for example, +\fBrc\&.local\fR +or +\fBsysctl\&.conf\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If you configure (or resize) the OS kernel parameters +\fB/proc/sys/kernel/shmmax\fR +or +\fB/proc/sys/vm/nr_hugepages\fR, Java processes may allocate large pages for areas in addition to the Java heap\&. These steps can allocate large pages for the following areas: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Java heap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Code cache +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The marking bitmap data structure for the parallel GC +.RE +.sp +Consequently, if you configure the +\fBnr_hugepages\fR +parameter to the size of the Java heap, then the JVM can fail in allocating the code cache areas on large pages because these areas are quite large in size\&. +.RE +T} +.TE +.sp 1 +.sp .5v +.RE +.RE +.SH "EXIT STATUS" +.PP +The following exit values are typically returned by the launcher when the launcher is called with the wrong arguments, serious errors, or exceptions thrown by the JVM\&. However, a Java application may choose to return any value by using the API call +\fBSystem\&.exit(exitValue)\fR\&. The values are: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB0\fR: Successful completion +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB>0\fR: An error occurred +.RE +.SH "SEE ALSO" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +javac(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jdb(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jstat(1) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/java.1 b/.local/bin/IPMIView/jre/man/man1/java.1 new file mode 100755 index 0000000..a5d6d3f --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/java.1 @@ -0,0 +1,3726 @@ +'\" t +.\" Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: java +.\" Language: English +.\" Date: 03 March 2015 +.\" SectDesc: Basic Tools +.\" Software: JDK 8 +.\" Arch: generic +.\" Part Number: E38207-04 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "java" "1" "03 March 2015" "JDK 8" "Basic Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +java \- Launches a Java application\&. +.SH "SYNOPSIS" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fIclassname\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava\fR [\fIoptions\fR] \fB\-jar\fR \fIfilename\fR [\fIargs\fR] +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +Command\-line options separated by spaces\&. See Options\&. +.RE +.PP +\fIclassname\fR +.RS 4 +The name of the class to be launched\&. +.RE +.PP +\fIfilename\fR +.RS 4 +The name of the Java Archive (JAR) file to be called\&. Used only with the +\fB\-jar\fR +option\&. +.RE +.PP +\fIargs\fR +.RS 4 +The arguments passed to the +\fBmain()\fR +method separated by spaces\&. +.RE +.SH "DESCRIPTION" +.PP +The +\fBjava\fR +command starts a Java application\&. It does this by starting the Java Runtime Environment (JRE), loading the specified class, and calling that class\*(Aqs +\fBmain()\fR +method\&. The method must be declared +\fIpublic\fR +and +\fIstatic\fR, it must not return any value, and it must accept a +\fBString\fR +array as a parameter\&. The method declaration has the following form: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBpublic static void main(String[] args)\fR + +.fi +.if n \{\ +.RE +.\} +.PP +The +\fBjava\fR +command can be used to launch a JavaFX application by loading a class that either has a +\fBmain()\fR +method or that extends +\fBjavafx\&.application\&.Application\fR\&. In the latter case, the launcher constructs an instance of the +\fBApplication\fR +class, calls its +\fBinit()\fR +method, and then calls the +\fBstart(javafx\&.stage\&.Stage)\fR +method\&. +.PP +By default, the first argument that is not an option of the +\fBjava\fR +command is the fully qualified name of the class to be called\&. If the +\fB\-jar\fR +option is specified, its argument is the name of the JAR file containing class and resource files for the application\&. The startup class must be indicated by the +\fBMain\-Class\fR +manifest header in its source code\&. +.PP +The JRE searches for the startup class (and other classes used by the application) in three sets of locations: the bootstrap class path, the installed extensions, and the user\(cqs class path\&. +.PP +Arguments after the class file name or the JAR file name are passed to the +\fBmain()\fR +method\&. +.SH "OPTIONS" +.PP +The +\fBjava\fR +command supports a wide range of options that can be divided into the following categories: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Standard Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Non\-Standard Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Runtime Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced JIT Compiler Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Serviceability Options +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Advanced Garbage Collection Options +.RE +.PP +Standard options are guaranteed to be supported by all implementations of the Java Virtual Machine (JVM)\&. They are used for common actions, such as checking the version of the JRE, setting the class path, enabling verbose output, and so on\&. +.PP +Non\-standard options are general purpose options that are specific to the Java HotSpot Virtual Machine, so they are not guaranteed to be supported by all JVM implementations, and are subject to change\&. These options start with +\fB\-X\fR\&. +.PP +Advanced options are not recommended for casual use\&. These are developer options used for tuning specific areas of the Java HotSpot Virtual Machine operation that often have specific system requirements and may require privileged access to system configuration parameters\&. They are also not guaranteed to be supported by all JVM implementations, and are subject to change\&. Advanced options start with +\fB\-XX\fR\&. +.PP +To keep track of the options that were deprecated or removed in the latest release, there is a section named Deprecated and Removed Options at the end of the document\&. +.PP +Boolean options are used to either enable a feature that is disabled by default or disable a feature that is enabled by default\&. Such options do not require a parameter\&. Boolean +\fB\-XX\fR +options are enabled using the plus sign (\fB\-XX:+\fR\fIOptionName\fR) and disabled using the minus sign (\fB\-XX:\-\fR\fIOptionName\fR)\&. +.PP +For options that require an argument, the argument may be separated from the option name by a space, a colon (:), or an equal sign (=), or the argument may directly follow the option (the exact syntax differs for each option)\&. If you are expected to specify the size in bytes, you can use no suffix, or use the suffix +\fBk\fR +or +\fBK\fR +for kilobytes (KB), +\fBm\fR +or +\fBM\fR +for megabytes (MB), +\fBg\fR +or +\fBG\fR +for gigabytes (GB)\&. For example, to set the size to 8 GB, you can specify either +\fB8g\fR, +\fB8192m\fR, +\fB8388608k\fR, or +\fB8589934592\fR +as the argument\&. If you are expected to specify the percentage, use a number from 0 to 1 (for example, specify +\fB0\&.25\fR +for 25%)\&. +.SS "Standard Options" +.PP +These are the most commonly used options that are supported by all implementations of the JVM\&. +.PP +\-agentlib:\fIlibname\fR[=\fIoptions\fR] +.RS 4 +Loads the specified native agent library\&. After the library name, a comma\-separated list of options specific to the library can be used\&. +.sp +If the option +\fB\-agentlib:foo\fR +is specified, then the JVM attempts to load the library named +\fBlibfoo\&.so\fR +in the location specified by the +\fBLD_LIBRARY_PATH\fR +system variable (on OS X this variable is +\fBDYLD_LIBRARY_PATH\fR)\&. +.sp +The following example shows how to load the heap profiling tool (HPROF) library and get sample CPU information every 20 ms, with a stack depth of 3: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:hprof=cpu=samples,interval=20,depth=3\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to load the Java Debug Wire Protocol (JDWP) library and listen for the socket connection on port 8000, suspending the JVM before the main class loads: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-agentlib:jdwp=transport=dt_socket,server=y,address=8000\fR + +.fi +.if n \{\ +.RE +.\} +For more information about the native agent libraries, refer to the following: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The +\fBjava\&.lang\&.instrument\fR +package description at http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Agent Command Line Options in the JVM Tools Interface guide at http://docs\&.oracle\&.com/javase/8/docs/platform/jvmti/jvmti\&.html#starting +.RE +.RE +.PP +\-agentpath:\fIpathname\fR[=\fIoptions\fR] +.RS 4 +Loads the native agent library specified by the absolute path name\&. This option is equivalent to +\fB\-agentlib\fR +but uses the full path and file name of the library\&. +.RE +.PP +\-client +.RS 4 +Selects the Java HotSpot Client VM\&. The 64\-bit version of the Java SE Development Kit (JDK) currently ignores this option and instead uses the Server JVM\&. +.sp +For default JVM selection, see Server\-Class Machine Detection at +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html +.RE +.PP +\-D\fIproperty\fR=\fIvalue\fR +.RS 4 +Sets a system property value\&. The +\fIproperty\fR +variable is a string with no spaces that represents the name of the property\&. The +\fIvalue\fR +variable is a string that represents the value of the property\&. If +\fIvalue\fR +is a string with spaces, then enclose it in quotation marks (for example +\fB\-Dfoo="foo bar"\fR)\&. +.RE +.PP +\-d32 +.RS 4 +Runs the application in a 32\-bit environment\&. If a 32\-bit environment is not installed or is not supported, then an error will be reported\&. By default, the application is run in a 32\-bit environment unless a 64\-bit system is used\&. +.RE +.PP +\-d64 +.RS 4 +Runs the application in a 64\-bit environment\&. If a 64\-bit environment is not installed or is not supported, then an error will be reported\&. By default, the application is run in a 32\-bit environment unless a 64\-bit system is used\&. +.sp +Currently only the Java HotSpot Server VM supports 64\-bit operation, and the +\fB\-server\fR +option is implicit with the use of +\fB\-d64\fR\&. The +\fB\-client\fR +option is ignored with the use of +\fB\-d64\fR\&. This is subject to change in a future release\&. +.RE +.PP +\-disableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-da[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +Disables assertions\&. By default, assertions are disabled in all packages and classes\&. +.sp +With no arguments, +\fB\-disableassertions\fR +(\fB\-da\fR) disables assertions in all packages and classes\&. With the +\fIpackagename\fR +argument ending in +\fB\&.\&.\&.\fR, the switch disables assertions in the specified package and any subpackages\&. If the argument is simply +\fB\&.\&.\&.\fR, then the switch disables assertions in the unnamed package in the current working directory\&. With the +\fIclassname\fR +argument, the switch disables assertions in the specified class\&. +.sp +The +\fB\-disableassertions\fR +(\fB\-da\fR) option applies to all class loaders and to system classes (which do not have a class loader)\&. There is one exception to this rule: if the option is provided with no arguments, then it does not apply to system classes\&. This makes it easy to disable assertions in all classes except for system classes\&. The +\fB\-disablesystemassertions\fR +option enables you to disable assertions in all system classes\&. +.sp +To explicitly enable assertions in specific packages or classes, use the +\fB\-enableassertions\fR +(\fB\-ea\fR) option\&. Both options can be used at the same time\&. For example, to run the +\fBMyClass\fR +application with assertions enabled in package +\fBcom\&.wombat\&.fruitbat\fR +(and any subpackages) but disabled in class +\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR, use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-disablesystemassertions +.br +\-dsa +.RS 4 +Disables assertions in all system classes\&. +.RE +.PP +\-enableassertions[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.br +\-ea[:[\fIpackagename\fR]\&.\&.\&.|:\fIclassname\fR] +.RS 4 +Enables assertions\&. By default, assertions are disabled in all packages and classes\&. +.sp +With no arguments, +\fB\-enableassertions\fR +(\fB\-ea\fR) enables assertions in all packages and classes\&. With the +\fIpackagename\fR +argument ending in +\fB\&.\&.\&.\fR, the switch enables assertions in the specified package and any subpackages\&. If the argument is simply +\fB\&.\&.\&.\fR, then the switch enables assertions in the unnamed package in the current working directory\&. With the +\fIclassname\fR +argument, the switch enables assertions in the specified class\&. +.sp +The +\fB\-enableassertions\fR +(\fB\-ea\fR) option applies to all class loaders and to system classes (which do not have a class loader)\&. There is one exception to this rule: if the option is provided with no arguments, then it does not apply to system classes\&. This makes it easy to enable assertions in all classes except for system classes\&. The +\fB\-enablesystemassertions\fR +option provides a separate switch to enable assertions in all system classes\&. +.sp +To explicitly disable assertions in specific packages or classes, use the +\fB\-disableassertions\fR +(\fB\-da\fR) option\&. If a single command contains multiple instances of these switches, then they are processed in order before loading any classes\&. For example, to run the +\fBMyClass\fR +application with assertions enabled only in package +\fBcom\&.wombat\&.fruitbat\fR +(and any subpackages) but disabled in class +\fBcom\&.wombat\&.fruitbat\&.Brickbat\fR, use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-ea:com\&.wombat\&.fruitbat\&.\&.\&. \-da:com\&.wombat\&.fruitbat\&.Brickbat MyClass\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-enablesystemassertions +.br +\-esa +.RS 4 +Enables assertions in all system classes\&. +.RE +.PP +\-help +.br +\-? +.RS 4 +Displays usage information for the +\fBjava\fR +command without actually running the JVM\&. +.RE +.PP +\-jar \fIfilename\fR +.RS 4 +Executes a program encapsulated in a JAR file\&. The +\fIfilename\fR +argument is the name of a JAR file with a manifest that contains a line in the form +\fBMain\-Class:\fR\fIclassname\fR +that defines the class with the +\fBpublic static void main(String[] args)\fR +method that serves as your application\*(Aqs starting point\&. +.sp +When you use the +\fB\-jar\fR +option, the specified JAR file is the source of all user classes, and other class path settings are ignored\&. +.sp +For more information about JAR files, see the following resources: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The Java Archive (JAR) Files guide at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/jar/index\&.html +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lesson: Packaging Programs in JAR Files at + +http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.html +.RE +.RE +.PP +\-javaagent:\fIjarpath\fR[=\fIoptions\fR] +.RS 4 +Loads the specified Java programming language agent\&. For more information about instrumenting Java applications, see the +\fBjava\&.lang\&.instrument\fR +package description in the Java API documentation at http://docs\&.oracle\&.com/javase/8/docs/api/java/lang/instrument/package\-summary\&.html +.RE +.PP +\-jre\-restrict\-search +.RS 4 +Includes user\-private JREs in the version search\&. +.RE +.PP +\-no\-jre\-restrict\-search +.RS 4 +Excludes user\-private JREs from the version search\&. +.RE +.PP +\-server +.RS 4 +Selects the Java HotSpot Server VM\&. The 64\-bit version of the JDK supports only the Server VM, so in that case the option is implicit\&. +.sp +For default JVM selection, see Server\-Class Machine Detection at +http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/server\-class\&.html +.RE +.PP +\-showversion +.RS 4 +Displays version information and continues execution of the application\&. This option is equivalent to the +\fB\-version\fR +option except that the latter instructs the JVM to exit after displaying version information\&. +.RE +.PP +\-splash:\fIimgname\fR +.RS 4 +Shows the splash screen with the image specified by +\fIimgname\fR\&. For example, to show the +\fBsplash\&.gif\fR +file from the +\fBimages\fR +directory when starting your application, use the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-splash:images/splash\&.gif\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-verbose:class +.RS 4 +Displays information about each loaded class\&. +.RE +.PP +\-verbose:gc +.RS 4 +Displays information about each garbage collection (GC) event\&. +.RE +.PP +\-verbose:jni +.RS 4 +Displays information about the use of native methods and other Java Native Interface (JNI) activity\&. +.RE +.PP +\-version +.RS 4 +Displays version information and then exits\&. This option is equivalent to the +\fB\-showversion\fR +option except that the latter does not instruct the JVM to exit after displaying version information\&. +.RE +.PP +\-version:\fIrelease\fR +.RS 4 +Specifies the release version to be used for running the application\&. If the version of the +\fBjava\fR +command called does not meet this specification and an appropriate implementation is found on the system, then the appropriate implementation will be used\&. +.sp +The +\fIrelease\fR +argument specifies either the exact version string, or a list of version strings and ranges separated by spaces\&. A +\fIversion string\fR +is the developer designation of the version number in the following form: +\fB1\&.\fR\fIx\fR\fB\&.0_\fR\fIu\fR +(where +\fIx\fR +is the major version number, and +\fIu\fR +is the update version number)\&. A +\fIversion range\fR +is made up of a version string followed by a plus sign (\fB+\fR) to designate this version or later, or a part of a version string followed by an asterisk (\fB*\fR) to designate any version string with a matching prefix\&. Version strings and ranges can be combined using a space for a logical +\fIOR\fR +combination, or an ampersand (\fB&\fR) for a logical +\fIAND\fR +combination of two version strings/ranges\&. For example, if running the class or JAR file requires either JRE 6u13 (1\&.6\&.0_13), or any JRE 6 starting from 6u10 (1\&.6\&.0_10), specify the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-version:"1\&.6\&.0_13 1\&.6* & 1\&.6\&.0_10+"\fR + +.fi +.if n \{\ +.RE +.\} +Quotation marks are necessary only if there are spaces in the +\fIrelease\fR +parameter\&. +.sp +For JAR files, the preference is to specify version requirements in the JAR file manifest rather than on the command line\&. +.RE +.SS "Non\-Standard Options" +.PP +These options are general purpose options that are specific to the Java HotSpot Virtual Machine\&. +.PP +\-X +.RS 4 +Displays help for all available +\fB\-X\fR +options\&. +.RE +.PP +\-Xbatch +.RS 4 +Disables background compilation\&. By default, the JVM compiles the method as a background task, running the method in interpreter mode until the background compilation is finished\&. The +\fB\-Xbatch\fR +flag disables background compilation so that compilation of all methods proceeds as a foreground task until completed\&. +.sp +This option is equivalent to +\fB\-XX:\-BackgroundCompilation\fR\&. +.RE +.PP +\-Xbootclasspath:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to search for boot class files\&. These are used in place of the boot class files included in the JDK\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xbootclasspath/a:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to append to the end of the default bootstrap class path\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xbootclasspath/p:\fIpath\fR +.RS 4 +Specifies a list of directories, JAR files, and ZIP archives separated by colons (:) to prepend to the front of the default bootstrap class path\&. +.sp +Do not deploy applications that use this option to override a class in +\fBrt\&.jar\fR, because this violates the JRE binary code license\&. +.RE +.PP +\-Xcheck:jni +.RS 4 +Performs additional checks for Java Native Interface (JNI) functions\&. Specifically, it validates the parameters passed to the JNI function and the runtime environment data before processing the JNI request\&. Any invalid data encountered indicates a problem in the native code, and the JVM will terminate with an irrecoverable error in such cases\&. Expect a performance degradation when this option is used\&. +.RE +.PP +\-Xcomp +.RS 4 +Forces compilation of methods on first invocation\&. By default, the Client VM (\fB\-client\fR) performs 1,000 interpreted method invocations and the Server VM (\fB\-server\fR) performs 10,000 interpreted method invocations to gather information for efficient compilation\&. Specifying the +\fB\-Xcomp\fR +option disables interpreted method invocations to increase compilation performance at the expense of efficiency\&. +.sp +You can also change the number of interpreted method invocations before compilation using the +\fB\-XX:CompileThreshold\fR +option\&. +.RE +.PP +\-Xdebug +.RS 4 +Does nothing\&. Provided for backward compatibility\&. +.RE +.PP +\-Xdiag +.RS 4 +Shows additional diagnostic messages\&. +.RE +.PP +\-Xfuture +.RS 4 +Enables strict class\-file format checks that enforce close conformance to the class\-file format specification\&. Developers are encouraged to use this flag when developing new code because the stricter checks will become the default in future releases\&. +.RE +.PP +\-Xint +.RS 4 +Runs the application in interpreted\-only mode\&. Compilation to native code is disabled, and all bytecode is executed by the interpreter\&. The performance benefits offered by the just in time (JIT) compiler are not present in this mode\&. +.RE +.PP +\-Xinternalversion +.RS 4 +Displays more detailed JVM version information than the +\fB\-version\fR +option, and then exits\&. +.RE +.PP +\-Xloggc:\fIfilename\fR +.RS 4 +Sets the file to which verbose GC events information should be redirected for logging\&. The information written to this file is similar to the output of +\fB\-verbose:gc\fR +with the time elapsed since the first GC event preceding each logged event\&. The +\fB\-Xloggc\fR +option overrides +\fB\-verbose:gc\fR +if both are given with the same +\fBjava\fR +command\&. +.sp +Example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xloggc:garbage\-collection\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-Xmaxjitcodesize=\fIsize\fR +.RS 4 +Specifies the maximum code cache size (in bytes) for JIT\-compiled code\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default maximum code cache size is 240 MB; if you disable tiered compilation with the option +\fB\-XX:\-TieredCompilation\fR, then the default size is 48 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmaxjitcodesize=240m\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-XX:ReservedCodeCacheSize\fR\&. +.RE +.PP +\-Xmixed +.RS 4 +Executes all bytecode by the interpreter except for hot methods, which are compiled to native code\&. +.RE +.PP +\-Xmn\fIsize\fR +.RS 4 +Sets the initial and maximum size (in bytes) of the heap for the young generation (nursery)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The young generation region of the heap is used for new objects\&. GC is performed in this region more often than in other regions\&. If the size for the young generation is too small, then a lot of minor garbage collections will be performed\&. If the size is too large, then only full garbage collections will be performed, which can take a long time to complete\&. Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size\&. +.sp +The following examples show how to set the initial and maximum size of young generation to 256 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmn256m\fR +\fB\-Xmn262144k\fR +\fB\-Xmn268435456\fR + +.fi +.if n \{\ +.RE +.\} +Instead of the +\fB\-Xmn\fR +option to set both the initial and maximum size of the heap for the young generation, you can use +\fB\-XX:NewSize\fR +to set the initial size and +\fB\-XX:MaxNewSize\fR +to set the maximum size\&. +.RE +.PP +\-Xms\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the heap\&. This value must be a multiple of 1024 and greater than 1 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The following examples show how to set the size of allocated memory to 6 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xms6291456\fR +\fB\-Xms6144k\fR +\fB\-Xms6m\fR + +.fi +.if n \{\ +.RE +.\} +If you do not set this option, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation\&. The initial size of the heap for the young generation can be set using the +\fB\-Xmn\fR +option or the +\fB\-XX:NewSize\fR +option\&. +.RE +.PP +\-Xmx\fIsize\fR +.RS 4 +Specifies the maximum size (in bytes) of the memory allocation pool in bytes\&. This value must be a multiple of 1024 and greater than 2 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. For server deployments, +\fB\-Xms\fR +and +\fB\-Xmx\fR +are often set to the same value\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xmx83886080\fR +\fB\-Xmx81920k\fR +\fB\-Xmx80m\fR + +.fi +.if n \{\ +.RE +.\} +The +\fB\-Xmx\fR +option is equivalent to +\fB\-XX:MaxHeapSize\fR\&. +.RE +.PP +\-Xnoclassgc +.RS 4 +Disables garbage collection (GC) of classes\&. This can save some GC time, which shortens interruptions during the application run\&. +.sp +When you specify +\fB\-Xnoclassgc\fR +at startup, the class objects in the application will be left untouched during GC and will always be considered live\&. This can result in more memory being permanently occupied which, if not used carefully, will throw an out of memory exception\&. +.RE +.PP +\-Xrs +.RS 4 +Reduces the use of operating system signals by the JVM\&. +.sp +Shutdown hooks enable orderly shutdown of a Java application by running user cleanup code (such as closing database connections) at shutdown, even if the JVM terminates abruptly\&. +.sp +The JVM catches signals to implement shutdown hooks for unexpected termination\&. The JVM uses +\fBSIGHUP\fR, +\fBSIGINT\fR, and +\fBSIGTERM\fR +to initiate the running of shutdown hooks\&. +.sp +The JVM uses a similar mechanism to implement the feature of dumping thread stacks for debugging purposes\&. The JVM uses +\fBSIGQUIT\fR +to perform thread dumps\&. +.sp +Applications embedding the JVM frequently need to trap signals such as +\fBSIGINT\fR +or +\fBSIGTERM\fR, which can lead to interference with the JVM signal handlers\&. The +\fB\-Xrs\fR +option is available to address this issue\&. When +\fB\-Xrs\fR +is used, the signal masks for +\fBSIGINT\fR, +\fBSIGTERM\fR, +\fBSIGHUP\fR, and +\fBSIGQUIT\fR +are not changed by the JVM, and signal handlers for these signals are not installed\&. +.sp +There are two consequences of specifying +\fB\-Xrs\fR: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBSIGQUIT\fR +thread dumps are not available\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +User code is responsible for causing shutdown hooks to run, for example, by calling +\fBSystem\&.exit()\fR +when the JVM is to be terminated\&. +.RE +.RE +.PP +\-Xshare:\fImode\fR +.RS 4 +Sets the class data sharing (CDS) mode\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +auto +.RS 4 +Use CDS if possible\&. This is the default value for Java HotSpot 32\-Bit Client VM\&. +.RE +.PP +on +.RS 4 +Require the use of CDS\&. Print an error message and exit if class data sharing cannot be used\&. +.RE +.PP +off +.RS 4 +Do not use CDS\&. This is the default value for Java HotSpot 32\-Bit Server VM, Java HotSpot 64\-Bit Client VM, and Java HotSpot 64\-Bit Server VM\&. +.RE +.PP +dump +.RS 4 +Manually generate the CDS archive\&. Specify the application class path as described in "Setting the Class Path "\&. +.sp +You should regenerate the CDS archive with each new JDK release\&. +.RE +.RE +.PP +\-XshowSettings:\fIcategory\fR +.RS 4 +Shows settings and continues\&. Possible +\fIcategory\fR +arguments for this option include the following: +.PP +all +.RS 4 +Shows all categories of settings\&. This is the default value\&. +.RE +.PP +locale +.RS 4 +Shows settings related to locale\&. +.RE +.PP +properties +.RS 4 +Shows settings related to system properties\&. +.RE +.PP +vm +.RS 4 +Shows the settings of the JVM\&. +.RE +.RE +.PP +\-Xss\fIsize\fR +.RS 4 +Sets the thread stack size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate KB, +\fBm\fR +or +\fBM\fR +to indicate MB, +\fBg\fR +or +\fBG\fR +to indicate GB\&. The default value depends on the platform: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64\-bit): 1024 KB +.RE +.sp +The following examples set the thread stack size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-Xss1m\fR +\fB\-Xss1024k\fR +\fB\-Xss1048576\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-XX:ThreadStackSize\fR\&. +.RE +.PP +\-Xusealtsigs +.RS 4 +Use alternative signals instead of +\fBSIGUSR1\fR +and +\fBSIGUSR2\fR +for JVM internal signals\&. This option is equivalent to +\fB\-XX:+UseAltSigs\fR\&. +.RE +.PP +\-Xverify:\fImode\fR +.RS 4 +Sets the mode of the bytecode verifier\&. Bytecode verification helps to troubleshoot some problems, but it also adds overhead to the running application\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +none +.RS 4 +Do not verify the bytecode\&. This reduces startup time and also reduces the protection provided by Java\&. +.RE +.PP +remote +.RS 4 +Verify those classes that are not loaded by the bootstrap class loader\&. This is the default behavior if you do not specify the +\fB\-Xverify\fR +option\&. +.RE +.PP +all +.RS 4 +Verify all classes\&. +.RE +.RE +.SS "Advanced Runtime Options" +.PP +These options control the runtime behavior of the Java HotSpot VM\&. +.PP +\-XX:+DisableAttachMechanism +.RS 4 +Enables the option that disables the mechanism that lets tools attach to the JVM\&. By default, this option is disabled, meaning that the attach mechanism is enabled and you can use tools such as +\fBjcmd\fR, +\fBjstack\fR, +\fBjmap\fR, and +\fBjinfo\fR\&. +.RE +.PP +\-XX:ErrorFile=\fIfilename\fR +.RS 4 +Specifies the path and file name to which error data is written when an irrecoverable error occurs\&. By default, this file is created in the current working directory and named +\fBhs_err_pid\fR\fIpid\fR\fB\&.log\fR +where +\fIpid\fR +is the identifier of the process that caused the error\&. The following example shows how to set the default log file (note that the identifier of the process is specified as +\fB%p\fR): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=\&./hs_err_pid%p\&.log\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to set the error log to +\fB/var/log/java/java_error\&.log\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ErrorFile=/var/log/java/java_error\&.log\fR + +.fi +.if n \{\ +.RE +.\} +If the file cannot be created in the specified directory (due to insufficient space, permission problem, or another issue), then the file is created in the temporary directory for the operating system\&. The temporary directory is +\fB/tmp\fR\&. +.RE +.PP +\-XX:+FailOverToOldVerifier +.RS 4 +Enables automatic failover to the old verifier when the new type checker fails\&. By default, this option is disabled and it is ignored (that is, treated as disabled) for classes with a recent bytecode version\&. You can enable it for classes with older versions of the bytecode\&. +.RE +.PP +\-XX:LargePageSizeInBytes=\fIsize\fR +.RS 4 +On Solaris, sets the maximum size (in bytes) for large pages used for Java heap\&. The +\fIsize\fR +argument must be a power of 2 (2, 4, 8, 16, \&.\&.\&.)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the size is set to 0, meaning that the JVM chooses the size for large pages automatically\&. +.sp +The following example illustrates how to set the large page size to 4 megabytes (MB): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LargePageSizeInBytes=4m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxDirectMemorySize=\fIsize\fR +.RS 4 +Sets the maximum total size (in bytes) of the New I/O (the +\fBjava\&.nio\fR +package) direct\-buffer allocations\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the size is set to 0, meaning that the JVM chooses the size for NIO direct\-buffer allocations automatically\&. +.sp +The following examples illustrate how to set the NIO size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxDirectMemorySize=1m\fR +\fB\-XX:MaxDirectMemorySize=1024k\fR +\fB\-XX:MaxDirectMemorySize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NativeMemoryTracking=\fImode\fR +.RS 4 +Specifies the mode for tracking JVM native memory usage\&. Possible +\fImode\fR +arguments for this option include the following: +.PP +off +.RS 4 +Do not track JVM native memory usage\&. This is the default behavior if you do not specify the +\fB\-XX:NativeMemoryTracking\fR +option\&. +.RE +.PP +summary +.RS 4 +Only track memory usage by JVM subsystems, such as Java heap, class, code, and thread\&. +.RE +.PP +detail +.RS 4 +In addition to tracking memory usage by JVM subsystems, track memory usage by individual +\fBCallSite\fR, individual virtual memory region and its committed regions\&. +.RE +.RE +.PP +\-XX:ObjectAlignmentInBytes=\fIalignment\fR +.RS 4 +Sets the memory alignment of Java objects (in bytes)\&. By default, the value is set to 8 bytes\&. The specified value should be a power of two, and must be within the range of 8 and 256 (inclusive)\&. This option makes it possible to use compressed pointers with large Java heap sizes\&. +.sp +The heap size limit in bytes is calculated as: +.sp +\fB4GB * ObjectAlignmentInBytes\fR +.sp +Note: As the alignment value increases, the unused space between objects will also increase\&. As a result, you may not realize any benefits from using compressed pointers with large Java heap sizes\&. +.RE +.PP +\-XX:OnError=\fIstring\fR +.RS 4 +Sets a custom command or a series of semicolon\-separated commands to run when an irrecoverable error occurs\&. If the string contains spaces, then it must be enclosed in quotation marks\&. +.sp +The following example shows how the +\fB\-XX:OnError\fR +option can be used to run the +\fBgcore\fR +command to create the core image, and the debugger is started to attach to the process in case of an irrecoverable error (the +\fB%p\fR +designates the current process): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:OnError="gcore %p;dbx \- %p"\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:OnOutOfMemoryError=\fIstring\fR +.RS 4 +Sets a custom command or a series of semicolon\-separated commands to run when an +\fBOutOfMemoryError\fR +exception is first thrown\&. If the string contains spaces, then it must be enclosed in quotation marks\&. For an example of a command string, see the description of the +\fB\-XX:OnError\fR +option\&. +.RE +.PP +\-XX:+PerfDataSaveToFile +.RS 4 +If enabled, saves +jstat(1) binary data when the Java application exits\&. This binary data is saved in a file named +\fBhsperfdata_\fR\fI\fR, where +\fI\fR +is the process identifier of the Java application you ran\&. Use +\fBjstat\fR +to display the performance data contained in this file as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjstat \-class file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +\fBjstat \-gc file:///\fR\fB\fI\fR\fR\fB/hsperfdata_\fR\fB\fI\fR\fR +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintCommandLineFlags +.RS 4 +Enables printing of ergonomically selected JVM flags that appeared on the command line\&. It can be useful to know the ergonomic values set by the JVM, such as the heap space size and the selected garbage collector\&. By default, this option is disabled and flags are not printed\&. +.RE +.PP +\-XX:+PrintNMTStatistics +.RS 4 +Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled (see +\fB\-XX:NativeMemoryTracking\fR)\&. By default, this option is disabled and native memory tracking data is not printed\&. +.RE +.PP +\-XX:+RelaxAccessControlCheck +.RS 4 +Decreases the amount of access control checks in the verifier\&. By default, this option is disabled, and it is ignored (that is, treated as disabled) for classes with a recent bytecode version\&. You can enable it for classes with older versions of the bytecode\&. +.RE +.PP +\-XX:+ShowMessageBoxOnError +.RS 4 +Enables displaying of a dialog box when the JVM experiences an irrecoverable error\&. This prevents the JVM from exiting and keeps the process active so that you can attach a debugger to it to investigate the cause of the error\&. By default, this option is disabled\&. +.RE +.PP +\-XX:ThreadStackSize=\fIsize\fR +.RS 4 +Sets the thread stack size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value depends on the platform: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/ARM (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linux/x64 (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +OS X (64\-bit): 1024 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/i386 (32\-bit): 320 KB +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Oracle Solaris/x64 (64\-bit): 1024 KB +.RE +.sp +The following examples show how to set the thread stack size to 1024 KB in different units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ThreadStackSize=1m\fR +\fB\-XX:ThreadStackSize=1024k\fR +\fB\-XX:ThreadStackSize=1048576\fR + +.fi +.if n \{\ +.RE +.\} +This option is equivalent to +\fB\-Xss\fR\&. +.RE +.PP +\-XX:+TraceClassLoading +.RS 4 +Enables tracing of classes as they are loaded\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceClassLoadingPreorder +.RS 4 +Enables tracing of all loaded classes in the order in which they are referenced\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceClassResolution +.RS 4 +Enables tracing of constant pool resolutions\&. By default, this option is disabled and constant pool resolutions are not traced\&. +.RE +.PP +\-XX:+TraceClassUnloading +.RS 4 +Enables tracing of classes as they are unloaded\&. By default, this option is disabled and classes are not traced\&. +.RE +.PP +\-XX:+TraceLoaderConstraints +.RS 4 +Enables tracing of the loader constraints recording\&. By default, this option is disabled and loader constraints recording is not traced\&. +.RE +.PP +\-XX:+UseAltSigs +.RS 4 +Enables the use of alternative signals instead of +\fBSIGUSR1\fR +and +\fBSIGUSR2\fR +for JVM internal signals\&. By default, this option is disabled and alternative signals are not used\&. This option is equivalent to +\fB\-Xusealtsigs\fR\&. +.RE +.PP +\-XX:\-UseBiasedLocking +.RS 4 +Disables the use of biased locking\&. Some applications with significant amounts of uncontended synchronization may attain significant speedups with this flag enabled, whereas applications with certain patterns of locking may see slowdowns\&. For more information about the biased locking technique, see the example in Java Tuning White Paper at http://www\&.oracle\&.com/technetwork/java/tuning\-139912\&.html#section4\&.2\&.5 +.sp +By default, this option is enabled\&. +.RE +.PP +\-XX:\-UseCompressedOops +.RS 4 +Disables the use of compressed pointers\&. By default, this option is enabled, and compressed pointers are used when Java heap sizes are less than 32 GB\&. When this option is enabled, object references are represented as 32\-bit offsets instead of 64\-bit pointers, which typically increases performance when running the application with Java heap sizes less than 32 GB\&. This option works only for 64\-bit JVMs\&. +.sp +It is also possible to use compressed pointers when Java heap sizes are greater than 32GB\&. See the +\fB\-XX:ObjectAlignmentInBytes\fR +option\&. +.RE +.PP +\-XX:+UseHugeTLBFS +.RS 4 +This option for Linux is the equivalent of specifying +\fB\-XX:+UseLargePages\fR\&. This option is disabled by default\&. This option pre\-allocates all large pages up\-front, when memory is reserved; consequently the JVM cannot dynamically grow or shrink large pages memory areas; see +\fB\-XX:UseTransparentHugePages\fR +if you want this behavior\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseLargePages +.RS 4 +Enables the use of large page memory\&. By default, this option is disabled and large page memory is not used\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseMembar +.RS 4 +Enables issuing of membars on thread state transitions\&. This option is disabled by default on all platforms except ARM servers, where it is enabled\&. (It is recommended that you do not disable this option on ARM servers\&.) +.RE +.PP +\-XX:+UsePerfData +.RS 4 +Enables the +\fBperfdata\fR +feature\&. This option is enabled by default to allow JVM monitoring and performance testing\&. Disabling it suppresses the creation of the +\fBhsperfdata_userid\fR +directories\&. To disable the +\fBperfdata\fR +feature, specify +\fB\-XX:\-UsePerfData\fR\&. +.RE +.PP +\-XX:+UseTransparentHugePages +.RS 4 +On Linux, enables the use of large pages that can dynamically grow or shrink\&. This option is disabled by default\&. You may encounter performance problems with transparent huge pages as the OS moves other pages around to create huge pages; this option is made available for experimentation\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+AllowUserSignalHandlers +.RS 4 +Enables installation of signal handlers by the application\&. By default, this option is disabled and the application is not allowed to install signal handlers\&. +.RE +.SS "Advanced JIT Compiler Options" +.PP +These options control the dynamic just\-in\-time (JIT) compilation performed by the Java HotSpot VM\&. +.PP +\-XX:+AggressiveOpts +.RS 4 +Enables the use of aggressive performance optimization features, which are expected to become default in upcoming releases\&. By default, this option is disabled and experimental performance features are not used\&. +.RE +.PP +\-XX:AllocateInstancePrefetchLines=\fIlines\fR +.RS 4 +Sets the number of lines to prefetch ahead of the instance allocation pointer\&. By default, the number of lines to prefetch is set to 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocateInstancePrefetchLines=1\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchDistance=\fIsize\fR +.RS 4 +Sets the size (in bytes) of the prefetch distance for object allocation\&. Memory about to be written with the value of new objects is prefetched up to this distance starting from the address of the last allocated object\&. Each Java thread has its own allocation point\&. +.sp +Negative values denote that prefetch distance is chosen based on the platform\&. Positive values are bytes to prefetch\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is set to \-1\&. +.sp +The following example shows how to set the prefetch distance to 1024 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchDistance=1024\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchInstr=\fIinstruction\fR +.RS 4 +Sets the prefetch instruction to prefetch ahead of the allocation pointer\&. Only the Java HotSpot Server VM supports this option\&. Possible values are from 0 to 3\&. The actual instructions behind the values depend on the platform\&. By default, the prefetch instruction is set to 0: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchInstr=0\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchLines=\fIlines\fR +.RS 4 +Sets the number of cache lines to load after the last object allocation by using the prefetch instructions generated in compiled code\&. The default value is 1 if the last allocated object was an instance, and 3 if it was an array\&. +.sp +The following example shows how to set the number of loaded cache lines to 5: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchLines=5\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchStepSize=\fIsize\fR +.RS 4 +Sets the step size (in bytes) for sequential prefetch instructions\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the step size is set to 16 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:AllocatePrefetchStepSize=16\fR + +.fi +.if n \{\ +.RE +.\} +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:AllocatePrefetchStyle=\fIstyle\fR +.RS 4 +Sets the generated code style for prefetch instructions\&. The +\fIstyle\fR +argument is an integer from 0 to 3: +.PP +0 +.RS 4 +Do not generate prefetch instructions\&. +.RE +.PP +1 +.RS 4 +Execute prefetch instructions after each allocation\&. This is the default parameter\&. +.RE +.PP +2 +.RS 4 +Use the thread\-local allocation block (TLAB) watermark pointer to determine when prefetch instructions are executed\&. +.RE +.PP +3 +.RS 4 +Use BIS instruction on SPARC for allocation prefetch\&. +.RE +.sp +Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+BackgroundCompilation +.RS 4 +Enables background compilation\&. This option is enabled by default\&. To disable background compilation, specify +\fB\-XX:\-BackgroundCompilation\fR +(this is equivalent to specifying +\fB\-Xbatch\fR)\&. +.RE +.PP +\-XX:CICompilerCount=\fIthreads\fR +.RS 4 +Sets the number of compiler threads to use for compilation\&. By default, the number of threads is set to 2 for the server JVM, to 1 for the client JVM, and it scales to the number of cores if tiered compilation is used\&. The following example shows how to set the number of threads to 2: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CICompilerCount=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CodeCacheMinimumFreeSpace=\fIsize\fR +.RS 4 +Sets the minimum free space (in bytes) required for compilation\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. When less than the minimum free space remains, compiling stops\&. By default, this option is set to 500 KB\&. The following example shows how to set the minimum free space to 1024 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CodeCacheMinimumFreeSpace=1024m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileCommand=\fIcommand\fR,\fImethod\fR[,\fIoption\fR] +.RS 4 +Specifies a command to perform on a method\&. For example, to exclude the +\fBindexOf()\fR +method of the +\fBString\fR +class from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +Note that the full class name is specified, including all packages and subpackages separated by a slash (\fB/\fR)\&. For easier cut and paste operations, it is also possible to use the method name format produced by the +\fB\-XX:+PrintCompilation\fR +and +\fB\-XX:+LogCompilation\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,java\&.lang\&.String::indexOf\fR + +.fi +.if n \{\ +.RE +.\} +If the method is specified without the signature, the command will be applied to all methods with the specified name\&. However, you can also specify the signature of the method in the class file format\&. In this case, you should enclose the arguments in quotation marks, because otherwise the shell treats the semicolon as command end\&. For example, if you want to exclude only the +\fBindexOf(String)\fR +method of the +\fBString\fR +class from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude,java/lang/String\&.indexOf,(Ljava/lang/String;)I"\fR + +.fi +.if n \{\ +.RE +.\} +You can also use the asterisk (*) as a wildcard for class and method names\&. For example, to exclude all +\fBindexOf()\fR +methods in all classes from being compiled, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=exclude,*\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +The commas and periods are aliases for spaces, making it easier to pass compiler commands through a shell\&. You can pass arguments to +\fB\-XX:CompileCommand\fR +using spaces as separators by enclosing the argument in quotation marks: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand="exclude java/lang/String indexOf"\fR + +.fi +.if n \{\ +.RE +.\} +Note that after parsing the commands passed on the command line using the +\fB\-XX:CompileCommand\fR +options, the JIT compiler then reads commands from the +\fB\&.hotspot_compiler\fR +file\&. You can add commands to this file or specify a different file using the +\fB\-XX:CompileCommandFile\fR +option\&. +.sp +To add several commands, either specify the +\fB\-XX:CompileCommand\fR +option multiple times, or separate each argument with the newline separator (\fB\en\fR)\&. The following commands are available: +.PP +break +.RS 4 +Set a breakpoint when debugging the JVM to stop at the beginning of compilation of the specified method\&. +.RE +.PP +compileonly +.RS 4 +Exclude all methods from compilation except for the specified method\&. As an alternative, you can use the +\fB\-XX:CompileOnly\fR +option, which allows to specify several methods\&. +.RE +.PP +dontinline +.RS 4 +Prevent inlining of the specified method\&. +.RE +.PP +exclude +.RS 4 +Exclude the specified method from compilation\&. +.RE +.PP +help +.RS 4 +Print a help message for the +\fB\-XX:CompileCommand\fR +option\&. +.RE +.PP +inline +.RS 4 +Attempt to inline the specified method\&. +.RE +.PP +log +.RS 4 +Exclude compilation logging (with the +\fB\-XX:+LogCompilation\fR +option) for all methods except for the specified method\&. By default, logging is performed for all compiled methods\&. +.RE +.PP +option +.RS 4 +This command can be used to pass a JIT compilation option to the specified method in place of the last argument (\fIoption\fR)\&. The compilation option is set at the end, after the method name\&. For example, to enable the +\fBBlockLayoutByFrequency\fR +option for the +\fBappend()\fR +method of the +\fBStringBuffer\fR +class, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileCommand=option,java/lang/StringBuffer\&.append,BlockLayoutByFrequency\fR + +.fi +.if n \{\ +.RE +.\} +You can specify multiple compilation options, separated by commas or spaces\&. +.RE +.PP +print +.RS 4 +Print generated assembler code after compilation of the specified method\&. +.RE +.PP +quiet +.RS 4 +Do not print the compile commands\&. By default, the commands that you specify with the \-\fBXX:CompileCommand\fR +option are printed; for example, if you exclude from compilation the +\fBindexOf()\fR +method of the +\fBString\fR +class, then the following will be printed to standard output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBCompilerOracle: exclude java/lang/String\&.indexOf\fR + +.fi +.if n \{\ +.RE +.\} +You can suppress this by specifying the +\fB\-XX:CompileCommand=quiet\fR +option before other +\fB\-XX:CompileCommand\fR +options\&. +.RE +.RE +.PP +\-XX:CompileCommandFile=\fIfilename\fR +.RS 4 +Sets the file from which JIT compiler commands are read\&. By default, the +\fB\&.hotspot_compiler\fR +file is used to store commands performed by the JIT compiler\&. +.sp +Each line in the command file represents a command, a class name, and a method name for which the command is used\&. For example, this line prints assembly code for the +\fBtoString()\fR +method of the +\fBString\fR +class: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBprint java/lang/String toString\fR + +.fi +.if n \{\ +.RE +.\} +For more information about specifying the commands for the JIT compiler to perform on methods, see the +\fB\-XX:CompileCommand\fR +option\&. +.RE +.PP +\-XX:CompileOnly=\fImethods\fR +.RS 4 +Sets the list of methods (separated by commas) to which compilation should be restricted\&. Only the specified methods will be compiled\&. Specify each method with the full class name (including the packages and subpackages)\&. For example, to compile only the +\fBlength()\fR +method of the +\fBString\fR +class and the +\fBsize()\fR +method of the +\fBList\fR +class, use the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\&.length,java/util/List\&.size\fR + +.fi +.if n \{\ +.RE +.\} +Note that the full class name is specified, including all packages and subpackages separated by a slash (\fB/\fR)\&. For easier cut and paste operations, it is also possible to use the method name format produced by the +\fB\-XX:+PrintCompilation\fR +and +\fB\-XX:+LogCompilation\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java\&.lang\&.String::length,java\&.util\&.List::size\fR + +.fi +.if n \{\ +.RE +.\} +Although wildcards are not supported, you can specify only the class or package name to compile all methods in that class or package, as well as specify just the method to compile methods with this name in any class: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileOnly=java/lang/String\fR +\fB\-XX:CompileOnly=java/lang\fR +\fB\-XX:CompileOnly=\&.length\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CompileThreshold=\fIinvocations\fR +.RS 4 +Sets the number of interpreted method invocations before compilation\&. By default, in the server JVM, the JIT compiler performs 10,000 interpreted method invocations to gather information for efficient compilation\&. For the client JVM, the default setting is 1,500 invocations\&. This option is ignored when tiered compilation is enabled; see the option +\fB\-XX:+TieredCompilation\fR\&. The following example shows how to set the number of interpreted method invocations to 5,000: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CompileThreshold=5000\fR + +.fi +.if n \{\ +.RE +.\} +You can completely disable interpretation of Java methods before compilation by specifying the +\fB\-Xcomp\fR +option\&. +.RE +.PP +\-XX:+DoEscapeAnalysis +.RS 4 +Enables the use of escape analysis\&. This option is enabled by default\&. To disable the use of escape analysis, specify +\fB\-XX:\-DoEscapeAnalysis\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:InitialCodeCacheSize=\fIsize\fR +.RS 4 +Sets the initial code cache size (in bytes)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is set to 500 KB\&. The initial code cache size should be not less than the system\*(Aqs minimal memory page size\&. The following example shows how to set the initial code cache size to 32 KB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialCodeCacheSize=32k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+Inline +.RS 4 +Enables method inlining\&. This option is enabled by default to increase performance\&. To disable method inlining, specify +\fB\-XX:\-Inline\fR\&. +.RE +.PP +\-XX:InlineSmallCode=\fIsize\fR +.RS 4 +Sets the maximum code size (in bytes) for compiled methods that should be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. Only compiled methods with the size smaller than the specified size will be inlined\&. By default, the maximum code size is set to 1000 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InlineSmallCode=1000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+LogCompilation +.RS 4 +Enables logging of compilation activity to a file named +\fBhotspot\&.log\fR +in the current working directory\&. You can specify a different log file path and name using the +\fB\-XX:LogFile\fR +option\&. +.sp +By default, this option is disabled and compilation activity is not logged\&. The +\fB\-XX:+LogCompilation\fR +option has to be used together with the +\fB\-XX:UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.sp +You can enable verbose diagnostic output with a message printed to the console every time a method is compiled by using the +\fB\-XX:+PrintCompilation\fR +option\&. +.RE +.PP +\-XX:MaxInlineSize=\fIsize\fR +.RS 4 +Sets the maximum bytecode size (in bytes) of a method to be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the maximum bytecode size is set to 35 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxInlineSize=35\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNodeLimit=\fInodes\fR +.RS 4 +Sets the maximum number of nodes to be used during single method compilation\&. By default, the maximum number of nodes is set to 65,000: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxNodeLimit=65000\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxTrivialSize=\fIsize\fR +.RS 4 +Sets the maximum bytecode size (in bytes) of a trivial method to be inlined\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. By default, the maximum bytecode size of a trivial method is set to 6 bytes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTrivialSize=6\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+OptimizeStringConcat +.RS 4 +Enables the optimization of +\fBString\fR +concatenation operations\&. This option is enabled by default\&. To disable the optimization of +\fBString\fR +concatenation operations, specify +\fB\-XX:\-OptimizeStringConcat\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+PrintAssembly +.RS 4 +Enables printing of assembly code for bytecoded and native methods by using the external +\fBdisassembler\&.so\fR +library\&. This enables you to see the generated code, which may help you to diagnose performance issues\&. +.sp +By default, this option is disabled and assembly code is not printed\&. The +\fB\-XX:+PrintAssembly\fR +option has to be used together with the +\fB\-XX:UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.RE +.PP +\-XX:+PrintCompilation +.RS 4 +Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled\&. This enables you to see which methods actually get compiled\&. By default, this option is disabled and diagnostic output is not printed\&. +.sp +You can also log compilation activity to a file by using the +\fB\-XX:+LogCompilation\fR +option\&. +.RE +.PP +\-XX:+PrintInlining +.RS 4 +Enables printing of inlining decisions\&. This enables you to see which methods are getting inlined\&. +.sp +By default, this option is disabled and inlining information is not printed\&. The +\fB\-XX:+PrintInlining\fR +option has to be used together with the +\fB\-XX:+UnlockDiagnosticVMOptions\fR +option that unlocks diagnostic JVM options\&. +.RE +.PP +\-XX:ReservedCodeCacheSize=\fIsize\fR +.RS 4 +Sets the maximum code cache size (in bytes) for JIT\-compiled code\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default maximum code cache size is 240 MB; if you disable tiered compilation with the option +\fB\-XX:\-TieredCompilation\fR, then the default size is 48 MB\&. This option has a limit of 2 GB; otherwise, an error is generated\&. The maximum code cache size should not be less than the initial code cache size; see the option +\fB\-XX:InitialCodeCacheSize\fR\&. This option is equivalent to +\fB\-Xmaxjitcodesize\fR\&. +.RE +.PP +\-XX:RTMAbortRatio=\fIabort_ratio\fR +.RS 4 +The RTM abort ratio is specified as a percentage (%) of all executed RTM transactions\&. If a number of aborted transactions becomes greater than this ratio, then the compiled code will be deoptimized\&. This ratio is used when the +\fB\-XX:+UseRTMDeopt\fR +option is enabled\&. The default value of this option is 50\&. This means that the compiled code will be deoptimized if 50% of all transactions are aborted\&. +.RE +.PP +\-XX:RTMRetryCount=\fInumber_of_retries\fR +.RS 4 +RTM locking code will be retried, when it is aborted or busy, the number of times specified by this option before falling back to the normal locking mechanism\&. The default value for this option is 5\&. The +\fB\-XX:UseRTMLocking\fR +option must be enabled\&. +.RE +.PP +\-XX:\-TieredCompilation +.RS 4 +Disables the use of tiered compilation\&. By default, this option is enabled\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+UseAES +.RS 4 +Enables hardware\-based AES intrinsics for Intel, AMD, and SPARC hardware\&. Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), and SPARC (T4 and newer) are the supported hardware\&. UseAES is used in conjunction with UseAESIntrinsics\&. +.RE +.PP +\-XX:+UseAESIntrinsics +.RS 4 +UseAES and UseAESIntrinsics flags are enabled by default and are supported only for Java HotSpot Server VM 32\-bit and 64\-bit\&. To disable hardware\-based AES intrinsics, specify +\fB\-XX:\-UseAES \-XX:\-UseAESIntrinsics\fR\&. For example, to enable hardware AES, use the following flags: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:+UseAES \-XX:+UseAESIntrinsics\fR + +.fi +.if n \{\ +.RE +.\} +To support UseAES and UseAESIntrinsics flags for 32\-bit and 64\-bit use +\fB\-server\fR +option to choose Java HotSpot Server VM\&. These flags are not supported on Client VM\&. +.RE +.PP +\-XX:+UseCodeCacheFlushing +.RS 4 +Enables flushing of the code cache before shutting down the compiler\&. This option is enabled by default\&. To disable flushing of the code cache before shutting down the compiler, specify +\fB\-XX:\-UseCodeCacheFlushing\fR\&. +.RE +.PP +\-XX:+UseCondCardMark +.RS 4 +Enables checking of whether the card is already marked before updating the card table\&. This option is disabled by default and should only be used on machines with multiple sockets, where it will increase performance of Java applications that rely heavily on concurrent operations\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.PP +\-XX:+UseRTMDeopt +.RS 4 +Auto\-tunes RTM locking depending on the abort ratio\&. This ratio is specified by +\fB\-XX:RTMAbortRatio\fR +option\&. If the number of aborted transactions exceeds the abort ratio, then the method containing the lock will be deoptimized and recompiled with all locks as normal locks\&. This option is disabled by default\&. The +\fB\-XX:+UseRTMLocking\fR +option must be enabled\&. +.RE +.PP +\-XX:+UseRTMLocking +.RS 4 +Generate Restricted Transactional Memory (RTM) locking code for all inflated locks, with the normal locking mechanism as the fallback handler\&. This option is disabled by default\&. Options related to RTM are only available for the Java HotSpot Server VM on x86 CPUs that support Transactional Synchronization Extensions (TSX)\&. +.sp +RTM is part of Intel\*(Aqs TSX, which is an x86 instruction set extension and facilitates the creation of multithreaded applications\&. RTM introduces the new instructions +\fBXBEGIN\fR, +\fBXABORT\fR, +\fBXEND\fR, and +\fBXTEST\fR\&. The +\fBXBEGIN\fR +and +\fBXEND\fR +instructions enclose a set of instructions to run as a transaction\&. If no conflict is found when running the transaction, the memory and register modifications are committed together at the +\fBXEND\fR +instruction\&. The +\fBXABORT\fR +instruction can be used to explicitly abort a transaction and the +\fBXEND\fR +instruction to check if a set of instructions are being run in a transaction\&. +.sp +A lock on a transaction is inflated when another thread tries to access the same transaction, thereby blocking the thread that did not originally request access to the transaction\&. RTM requires that a fallback set of operations be specified in case a transaction aborts or fails\&. An RTM lock is a lock that has been delegated to the TSX\*(Aqs system\&. +.sp +RTM improves performance for highly contended locks with low conflict in a critical region (which is code that must not be accessed by more than one thread concurrently)\&. RTM also improves the performance of coarse\-grain locking, which typically does not perform well in multithreaded applications\&. (Coarse\-grain locking is the strategy of holding locks for long periods to minimize the overhead of taking and releasing locks, while fine\-grained locking is the strategy of trying to achieve maximum parallelism by locking only when necessary and unlocking as soon as possible\&.) Also, for lightly contended locks that are used by different threads, RTM can reduce false cache line sharing, also known as cache line ping\-pong\&. This occurs when multiple threads from different processors are accessing different resources, but the resources share the same cache line\&. As a result, the processors repeatedly invalidate the cache lines of other processors, which forces them to read from main memory instead of their cache\&. +.RE +.PP +\-XX:+UseSHA +.RS 4 +Enables hardware\-based intrinsics for SHA crypto hash functions for SPARC hardware\&. +\fBUseSHA\fR +is used in conjunction with the +\fBUseSHA1Intrinsics\fR, +\fBUseSHA256Intrinsics\fR, and +\fBUseSHA512Intrinsics\fR +options\&. +.sp +The +\fBUseSHA\fR +and +\fBUseSHA*Intrinsics\fR +flags are enabled by default, and are supported only for Java HotSpot Server VM 64\-bit on SPARC T4 and newer\&. +.sp +This feature is only applicable when using the +\fBsun\&.security\&.provider\&.Sun\fR +provider for SHA operations\&. +.sp +To disable all hardware\-based SHA intrinsics, specify +\fB\-XX:\-UseSHA\fR\&. To disable only a particular SHA intrinsic, use the appropriate corresponding option\&. For example: +\fB\-XX:\-UseSHA256Intrinsics\fR\&. +.RE +.PP +\-XX:+UseSHA1Intrinsics +.RS 4 +Enables intrinsics for SHA\-1 crypto hash function\&. +.RE +.PP +\-XX:+UseSHA256Intrinsics +.RS 4 +Enables intrinsics for SHA\-224 and SHA\-256 crypto hash functions\&. +.RE +.PP +\-XX:+UseSHA512Intrinsics +.RS 4 +Enables intrinsics for SHA\-384 and SHA\-512 crypto hash functions\&. +.RE +.PP +\-XX:+UseSuperWord +.RS 4 +Enables the transformation of scalar operations into superword operations\&. This option is enabled by default\&. To disable the transformation of scalar operations into superword operations, specify +\fB\-XX:\-UseSuperWord\fR\&. Only the Java HotSpot Server VM supports this option\&. +.RE +.SS "Advanced Serviceability Options" +.PP +These options provide the ability to gather system information and perform extensive debugging\&. +.PP +\-XX:+ExtendedDTraceProbes +.RS 4 +Enables additional +\fBdtrace\fR +tool probes that impact the performance\&. By default, this option is disabled and +\fBdtrace\fR +performs only standard probes\&. +.RE +.PP +\-XX:+HeapDumpOnOutOfMemory +.RS 4 +Enables the dumping of the Java heap to a file in the current directory by using the heap profiler (HPROF) when a +\fBjava\&.lang\&.OutOfMemoryError\fR +exception is thrown\&. You can explicitly set the heap dump file path and name using the +\fB\-XX:HeapDumpPath\fR +option\&. By default, this option is disabled and the heap is not dumped when an +\fBOutOfMemoryError\fR +exception is thrown\&. +.RE +.PP +\-XX:HeapDumpPath=\fIpath\fR +.RS 4 +Sets the path and file name for writing the heap dump provided by the heap profiler (HPROF) when the +\fB\-XX:+HeapDumpOnOutOfMemoryError\fR +option is set\&. By default, the file is created in the current working directory, and it is named +\fBjava_pid\fR\fIpid\fR\fB\&.hprof\fR +where +\fIpid\fR +is the identifier of the process that caused the error\&. The following example shows how to set the default file explicitly (\fB%p\fR +represents the current process identificator): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=\&./java_pid%p\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +The following example shows how to set the heap dump file to +\fB/var/log/java/java_heapdump\&.hprof\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:HeapDumpPath=/var/log/java/java_heapdump\&.hprof\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:LogFile=\fIpath\fR +.RS 4 +Sets the path and file name where log data is written\&. By default, the file is created in the current working directory, and it is named +\fBhotspot\&.log\fR\&. +.sp +The following example shows how to set the log file to +\fB/var/log/java/hotspot\&.log\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:LogFile=/var/log/java/hotspot\&.log\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+PrintClassHistogram +.RS 4 +Enables printing of a class instance histogram after a +\fBControl+C\fR +event (\fBSIGTERM\fR)\&. By default, this option is disabled\&. +.sp +Setting this option is equivalent to running the +\fBjmap \-histo\fR +command, or the +\fBjcmd \fR\fIpid\fR\fB GC\&.class_histogram\fR +command, where +\fIpid\fR +is the current Java process identifier\&. +.RE +.PP +\-XX:+PrintConcurrentLocks +.RS 4 +Enables printing of locks after a event\&. By default, this option is disabled\&. +.sp +Enables printing of +\fBjava\&.util\&.concurrent\fR +locks after a +\fBControl+C\fR +event (\fBSIGTERM\fR)\&. By default, this option is disabled\&. +.sp +Setting this option is equivalent to running the +\fBjstack \-l\fR +command or the +\fBjcmd \fR\fIpid\fR\fB Thread\&.print \-l\fR +command, where +\fIpid\fR +is the current Java process identifier\&. +.RE +.PP +\-XX:+UnlockDiagnosticVMOptions +.RS 4 +Unlocks the options intended for diagnosing the JVM\&. By default, this option is disabled and diagnostic options are not available\&. +.RE +.SS "Advanced Garbage Collection Options" +.PP +These options control how garbage collection (GC) is performed by the Java HotSpot VM\&. +.PP +\-XX:+AggressiveHeap +.RS 4 +Enables Java heap optimization\&. This sets various parameters to be optimal for long\-running jobs with intensive memory allocation, based on the configuration of the computer (RAM and CPU)\&. By default, the option is disabled and the heap is not optimized\&. +.RE +.PP +\-XX:+AlwaysPreTouch +.RS 4 +Enables touching of every page on the Java heap during JVM initialization\&. This gets all pages into the memory before entering the +\fBmain()\fR +method\&. The option can be used in testing to simulate a long\-running system with all virtual memory mapped to physical memory\&. By default, this option is disabled and all pages are committed as JVM heap space fills\&. +.RE +.PP +\-XX:+CMSClassUnloadingEnabled +.RS 4 +Enables class unloading when using the concurrent mark\-sweep (CMS) garbage collector\&. This option is enabled by default\&. To disable class unloading for the CMS garbage collector, specify +\fB\-XX:\-CMSClassUnloadingEnabled\fR\&. +.RE +.PP +\-XX:CMSExpAvgFactor=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) used to weight the current sample when computing exponential averages for the concurrent collection statistics\&. By default, the exponential averages factor is set to 25%\&. The following example shows how to set the factor to 15%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSExpAvgFactor=15\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:CMSInitiatingOccupancyFraction=\fIpercent\fR +.RS 4 +Sets the percentage of the old generation occupancy (0 to 100) at which to start a CMS collection cycle\&. The default value is set to \-1\&. Any negative value (including the default) implies that +\fB\-XX:CMSTriggerRatio\fR +is used to define the value of the initiating occupancy fraction\&. +.sp +The following example shows how to set the occupancy fraction to 20%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSInitiatingOccupancyFraction=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+CMSScavengeBeforeRemark +.RS 4 +Enables scavenging attempts before the CMS remark step\&. By default, this option is disabled\&. +.RE +.PP +\-XX:CMSTriggerRatio=\fIpercent\fR +.RS 4 +Sets the percentage (0 to 100) of the value specified by +\fB\-XX:MinHeapFreeRatio\fR +that is allocated before a CMS collection cycle commences\&. The default value is set to 80%\&. +.sp +The following example shows how to set the occupancy fraction to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:CMSTriggerRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:ConcGCThreads=\fIthreads\fR +.RS 4 +Sets the number of threads used for concurrent GC\&. The default value depends on the number of CPUs available to the JVM\&. +.sp +For example, to set the number of threads for concurrent GC to 2, specify the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ConcGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+DisableExplicitGC +.RS 4 +Enables the option that disables processing of calls to +\fBSystem\&.gc()\fR\&. This option is disabled by default, meaning that calls to +\fBSystem\&.gc()\fR +are processed\&. If processing of calls to +\fBSystem\&.gc()\fR +is disabled, the JVM still performs GC when necessary\&. +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrent +.RS 4 +Enables invoking of concurrent GC by using the +\fBSystem\&.gc()\fR +request\&. This option is disabled by default and can be enabled only together with the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. +.RE +.PP +\-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses +.RS 4 +Enables invoking of concurrent GC by using the +\fBSystem\&.gc()\fR +request and unloading of classes during the concurrent GC cycle\&. This option is disabled by default and can be enabled only together with the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. +.RE +.PP +\-XX:G1HeapRegionSize=\fIsize\fR +.RS 4 +Sets the size of the regions into which the Java heap is subdivided when using the garbage\-first (G1) collector\&. The value can be between 1 MB and 32 MB\&. The default region size is determined ergonomically based on the heap size\&. +.sp +The following example shows how to set the size of the subdivisions to 16 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1HeapRegionSize=16m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+G1PrintHeapRegions +.RS 4 +Enables the printing of information about which regions are allocated and which are reclaimed by the G1 collector\&. By default, this option is disabled\&. +.RE +.PP +\-XX:G1ReservePercent=\fIpercent\fR +.RS 4 +Sets the percentage of the heap (0 to 50) that is reserved as a false ceiling to reduce the possibility of promotion failure for the G1 collector\&. By default, this option is set to 10%\&. +.sp +The following example shows how to set the reserved heap to 20%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:G1ReservePercent=20\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitialHeapSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the memory allocation pool\&. This value must be either 0, or a multiple of 1024 and greater than 1 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the size of allocated memory to 6 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialHeapSize=6291456\fR +\fB\-XX:InitialHeapSize=6144k\fR +\fB\-XX:InitialHeapSize=6m\fR + +.fi +.if n \{\ +.RE +.\} +If you set this option to 0, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation\&. The size of the heap for the young generation can be set using the +\fB\-XX:NewSize\fR +option\&. +.RE +.PP +\-XX:InitialSurvivorRatio=\fIratio\fR +.RS 4 +Sets the initial survivor space ratio used by the throughput garbage collector (which is enabled by the +\fB\-XX:+UseParallelGC\fR +and/or \-\fBXX:+UseParallelOldGC\fR +options)\&. Adaptive sizing is enabled by default with the throughput garbage collector by using the +\fB\-XX:+UseParallelGC\fR +and +\fB\-XX:+UseParallelOldGC\fR +options, and survivor space is resized according to the application behavior, starting with the initial value\&. If adaptive sizing is disabled (using the +\fB\-XX:\-UseAdaptiveSizePolicy\fR +option), then the +\fB\-XX:SurvivorRatio\fR +option should be used to set the size of the survivor space for the entire execution of the application\&. +.sp +The following formula can be used to calculate the initial size of survivor space (S) based on the size of the young generation (Y), and the initial survivor space ratio (R): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBS=Y/(R+2)\fR + +.fi +.if n \{\ +.RE +.\} +The 2 in the equation denotes two survivor spaces\&. The larger the value specified as the initial survivor space ratio, the smaller the initial survivor space size\&. +.sp +By default, the initial survivor space ratio is set to 8\&. If the default value for the young generation space size is used (2 MB), the initial size of the survivor space will be 0\&.2 MB\&. +.sp +The following example shows how to set the initial survivor space ratio to 4: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitialSurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:InitiatingHeapOccupancyPercent=\fIpercent\fR +.RS 4 +Sets the percentage of the heap occupancy (0 to 100) at which to start a concurrent GC cycle\&. It is used by garbage collectors that trigger a concurrent GC cycle based on the occupancy of the entire heap, not just one of the generations (for example, the G1 garbage collector)\&. +.sp +By default, the initiating value is set to 45%\&. A value of 0 implies nonstop GC cycles\&. The following example shows how to set the initiating heap occupancy to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:InitiatingHeapOccupancyPercent=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxGCPauseMillis=\fItime\fR +.RS 4 +Sets a target for the maximum GC pause time (in milliseconds)\&. This is a soft goal, and the JVM will make its best effort to achieve it\&. By default, there is no maximum pause time value\&. +.sp +The following example shows how to set the maximum target pause time to 500 ms: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxGCPauseMillis=500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxHeapSize=\fIsize\fR +.RS 4 +Sets the maximum size (in byes) of the memory allocation pool\&. This value must be a multiple of 1024 and greater than 2 MB\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. The default value is chosen at runtime based on system configuration\&. For server deployments, +\fB\-XX:InitialHeapSize\fR +and +\fB\-XX:MaxHeapSize\fR +are often set to the same value\&. See the section "Ergonomics" in +\fIJava SE HotSpot Virtual Machine Garbage Collection Tuning Guide\fR +at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/vm/gctuning/index\&.html\&. +.sp +The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapSize=83886080\fR +\fB\-XX:MaxHeapSize=81920k\fR +\fB\-XX:MaxHeapSize=80m\fR + +.fi +.if n \{\ +.RE +.\} +On Oracle Solaris 7 and Oracle Solaris 8 SPARC platforms, the upper limit for this value is approximately 4,000 MB minus overhead amounts\&. On Oracle Solaris 2\&.6 and x86 platforms, the upper limit is approximately 2,000 MB minus overhead amounts\&. On Linux platforms, the upper limit is approximately 2,000 MB minus overhead amounts\&. +.sp +The +\fB\-XX:MaxHeapSize\fR +option is equivalent to +\fB\-Xmx\fR\&. +.RE +.PP +\-XX:MaxHeapFreeRatio=\fIpercent\fR +.RS 4 +Sets the maximum allowed percentage of free heap space (0 to 100) after a GC event\&. If free heap space expands above this value, then the heap will be shrunk\&. By default, this value is set to 70%\&. +.sp +The following example shows how to set the maximum free heap ratio to 75%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxHeapFreeRatio=75\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxMetaspaceSize=\fIsize\fR +.RS 4 +Sets the maximum amount of native memory that can be allocated for class metadata\&. By default, the size is not limited\&. The amount of metadata for an application depends on the application itself, other running applications, and the amount of memory available on the system\&. +.sp +The following example shows how to set the maximum class metadata size to 256 MB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxMetaspaceSize=256m\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MaxNewSize=\fIsize\fR +.RS 4 +Sets the maximum size (in bytes) of the heap for the young generation (nursery)\&. The default value is set ergonomically\&. +.RE +.PP +\-XX:MaxTenuringThreshold=\fIthreshold\fR +.RS 4 +Sets the maximum tenuring threshold for use in adaptive GC sizing\&. The largest value is 15\&. The default value is 15 for the parallel (throughput) collector, and 6 for the CMS collector\&. +.sp +The following example shows how to set the maximum tenuring threshold to 10: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MaxTenuringThreshold=10\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:MetaspaceSize=\fIsize\fR +.RS 4 +Sets the size of the allocated class metadata space that will trigger a garbage collection the first time it is exceeded\&. This threshold for a garbage collection is increased or decreased depending on the amount of metadata used\&. The default size depends on the platform\&. +.RE +.PP +\-XX:MinHeapFreeRatio=\fIpercent\fR +.RS 4 +Sets the minimum allowed percentage of free heap space (0 to 100) after a GC event\&. If free heap space falls below this value, then the heap will be expanded\&. By default, this value is set to 40%\&. +.sp +The following example shows how to set the minimum free heap ratio to 25%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:MinHeapFreeRatio=25\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewRatio=\fIratio\fR +.RS 4 +Sets the ratio between young and old generation sizes\&. By default, this option is set to 2\&. The following example shows how to set the young/old ratio to 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewRatio=1\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:NewSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of the heap for the young generation (nursery)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. +.sp +The young generation region of the heap is used for new objects\&. GC is performed in this region more often than in other regions\&. If the size for the young generation is too low, then a large number of minor GCs will be performed\&. If the size is too high, then only full GCs will be performed, which can take a long time to complete\&. Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size\&. +.sp +The following examples show how to set the initial size of young generation to 256 MB using various units: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:NewSize=256m\fR +\fB\-XX:NewSize=262144k\fR +\fB\-XX:NewSize=268435456\fR + +.fi +.if n \{\ +.RE +.\} +The +\fB\-XX:NewSize\fR +option is equivalent to +\fB\-Xmn\fR\&. +.RE +.PP +\-XX:ParallelGCThreads=\fIthreads\fR +.RS 4 +Sets the number of threads used for parallel garbage collection in the young and old generations\&. The default value depends on the number of CPUs available to the JVM\&. +.sp +For example, to set the number of threads for parallel GC to 2, specify the following option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:ParallelGCThreads=2\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+ParallelRefProcEnabled +.RS 4 +Enables parallel reference processing\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintAdaptiveSizePolicy +.RS 4 +Enables printing of information about adaptive generation sizing\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGC +.RS 4 +Enables printing of messages at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCApplicationConcurrentTime +.RS 4 +Enables printing of how much time elapsed since the last pause (for example, a GC pause)\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCApplicationStoppedTime +.RS 4 +Enables printing of how much time the pause (for example, a GC pause) lasted\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCDateStamps +.RS 4 +Enables printing of a date stamp at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCDetails +.RS 4 +Enables printing of detailed messages at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCTaskTimeStamps +.RS 4 +Enables printing of time stamps for every individual GC worker thread task\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintGCTimeStamps +.RS 4 +Enables printing of time stamps at every GC\&. By default, this option is disabled\&. +.RE +.PP +\-XX:+PrintStringDeduplicationStatistics +.RS 4 +Prints detailed deduplication statistics\&. By default, this option is disabled\&. See the +\fB\-XX:+UseStringDeduplication\fR +option\&. +.RE +.PP +\-XX:+PrintTenuringDistribution +.RS 4 +Enables printing of tenuring age information\&. The following is an example of the output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBDesired survivor size 48286924 bytes, new threshold 10 (max 10)\fR +\fB\- age 1: 28992024 bytes, 28992024 total\fR +\fB\- age 2: 1366864 bytes, 30358888 total\fR +\fB\- age 3: 1425912 bytes, 31784800 total\fR +\fB\&.\&.\&.\fR + +.fi +.if n \{\ +.RE +.\} +Age 1 objects are the youngest survivors (they were created after the previous scavenge, survived the latest scavenge, and moved from eden to survivor space)\&. Age 2 objects have survived two scavenges (during the second scavenge they were copied from one survivor space to the next)\&. And so on\&. +.sp +In the preceding example, 28 992 024 bytes survived one scavenge and were copied from eden to survivor space, 1 366 864 bytes are occupied by age 2 objects, etc\&. The third value in each row is the cumulative size of objects of age n or less\&. +.sp +By default, this option is disabled\&. +.RE +.PP +\-XX:+ScavengeBeforeFullGC +.RS 4 +Enables GC of the young generation before each full GC\&. This option is enabled by default\&. Oracle recommends that you +\fIdo not\fR +disable it, because scavenging the young generation before a full GC can reduce the number of objects reachable from the old generation space into the young generation space\&. To disable GC of the young generation before each full GC, specify +\fB\-XX:\-ScavengeBeforeFullGC\fR\&. +.RE +.PP +\-XX:SoftRefLRUPolicyMSPerMB=\fItime\fR +.RS 4 +Sets the amount of time (in milliseconds) a softly reachable object is kept active on the heap after the last time it was referenced\&. The default value is one second of lifetime per free megabyte in the heap\&. The +\fB\-XX:SoftRefLRUPolicyMSPerMB\fR +option accepts integer values representing milliseconds per one megabyte of the current heap size (for Java HotSpot Client VM) or the maximum possible heap size (for Java HotSpot Server VM)\&. This difference means that the Client VM tends to flush soft references rather than grow the heap, whereas the Server VM tends to grow the heap rather than flush soft references\&. In the latter case, the value of the +\fB\-Xmx\fR +option has a significant effect on how quickly soft references are garbage collected\&. +.sp +The following example shows how to set the value to 2\&.5 seconds: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SoftRefLRUPolicyMSPerMB=2500\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:StringDeduplicationAgeThreshold=\fIthreshold\fR +.RS 4 +\fBString\fR +objects reaching the specified age are considered candidates for deduplication\&. An object\*(Aqs age is a measure of how many times it has survived garbage collection\&. This is sometimes referred to as tenuring; see the +\fB\-XX:+PrintTenuringDistribution\fR +option\&. Note that +\fBString\fR +objects that are promoted to an old heap region before this age has been reached are always considered candidates for deduplication\&. The default value for this option is +\fB3\fR\&. See the +\fB\-XX:+UseStringDeduplication\fR +option\&. +.RE +.PP +\-XX:SurvivorRatio=\fIratio\fR +.RS 4 +Sets the ratio between eden space size and survivor space size\&. By default, this option is set to 8\&. The following example shows how to set the eden/survivor space ratio to 4: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:SurvivorRatio=4\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TargetSurvivorRatio=\fIpercent\fR +.RS 4 +Sets the desired percentage of survivor space (0 to 100) used after young garbage collection\&. By default, this option is set to 50%\&. +.sp +The following example shows how to set the target survivor space ratio to 30%: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TargetSurvivorRatio=30\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:TLABSize=\fIsize\fR +.RS 4 +Sets the initial size (in bytes) of a thread\-local allocation buffer (TLAB)\&. Append the letter +\fBk\fR +or +\fBK\fR +to indicate kilobytes, +\fBm\fR +or +\fBM\fR +to indicate megabytes, +\fBg\fR +or +\fBG\fR +to indicate gigabytes\&. If this option is set to 0, then the JVM chooses the initial size automatically\&. +.sp +The following example shows how to set the initial TLAB size to 512 KB: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\-XX:TLABSize=512k\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\-XX:+UseAdaptiveSizePolicy +.RS 4 +Enables the use of adaptive generation sizing\&. This option is enabled by default\&. To disable adaptive generation sizing, specify +\fB\-XX:\-UseAdaptiveSizePolicy\fR +and set the size of the memory allocation pool explicitly (see the +\fB\-XX:SurvivorRatio\fR +option)\&. +.RE +.PP +\-XX:+UseCMSInitiatingOccupancyOnly +.RS 4 +Enables the use of the occupancy value as the only criterion for initiating the CMS collector\&. By default, this option is disabled and other criteria may be used\&. +.RE +.PP +\-XX:+UseConcMarkSweepGC +.RS 4 +Enables the use of the CMS garbage collector for the old generation\&. Oracle recommends that you use the CMS garbage collector when application latency requirements cannot be met by the throughput (\fB\-XX:+UseParallelGC\fR) garbage collector\&. The G1 garbage collector (\fB\-XX:+UseG1GC\fR) is another alternative\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. When this option is enabled, the +\fB\-XX:+UseParNewGC\fR +option is automatically set and you should not disable it, because the following combination of options has been deprecated in JDK 8: +\fB\-XX:+UseConcMarkSweepGC \-XX:\-UseParNewGC\fR\&. +.RE +.PP +\-XX:+UseG1GC +.RS 4 +Enables the use of the garbage\-first (G1) garbage collector\&. It is a server\-style garbage collector, targeted for multiprocessor machines with a large amount of RAM\&. It meets GC pause time goals with high probability, while maintaining good throughput\&. The G1 collector is recommended for applications requiring large heaps (sizes of around 6 GB or larger) with limited GC latency requirements (stable and predictable pause time below 0\&.5 seconds)\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. +.RE +.PP +\-XX:+UseGCOverheadLimit +.RS 4 +Enables the use of a policy that limits the proportion of time spent by the JVM on GC before an +\fBOutOfMemoryError\fR +exception is thrown\&. This option is enabled, by default and the parallel GC will throw an +\fBOutOfMemoryError\fR +if more than 98% of the total time is spent on garbage collection and less than 2% of the heap is recovered\&. When the heap is small, this feature can be used to prevent applications from running for long periods of time with little or no progress\&. To disable this option, specify +\fB\-XX:\-UseGCOverheadLimit\fR\&. +.RE +.PP +\-XX:+UseNUMA +.RS 4 +Enables performance optimization of an application on a machine with nonuniform memory architecture (NUMA) by increasing the application\*(Aqs use of lower latency memory\&. By default, this option is disabled and no optimization for NUMA is made\&. The option is only available when the parallel garbage collector is used (\fB\-XX:+UseParallelGC\fR)\&. +.RE +.PP +\-XX:+UseParallelGC +.RS 4 +Enables the use of the parallel scavenge garbage collector (also known as the throughput collector) to improve the performance of your application by leveraging multiple processors\&. +.sp +By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. If it is enabled, then the +\fB\-XX:+UseParallelOldGC\fR +option is automatically enabled, unless you explicitly disable it\&. +.RE +.PP +\-XX:+UseParallelOldGC +.RS 4 +Enables the use of the parallel garbage collector for full GCs\&. By default, this option is disabled\&. Enabling it automatically enables the +\fB\-XX:+UseParallelGC\fR +option\&. +.RE +.PP +\-XX:+UseParNewGC +.RS 4 +Enables the use of parallel threads for collection in the young generation\&. By default, this option is disabled\&. It is automatically enabled when you set the +\fB\-XX:+UseConcMarkSweepGC\fR +option\&. Using the +\fB\-XX:+UseParNewGC\fR +option without the +\fB\-XX:+UseConcMarkSweepGC\fR +option was deprecated in JDK 8\&. +.RE +.PP +\-XX:+UseSerialGC +.RS 4 +Enables the use of the serial garbage collector\&. This is generally the best choice for small and simple applications that do not require any special functionality from garbage collection\&. By default, this option is disabled and the collector is chosen automatically based on the configuration of the machine and type of the JVM\&. +.RE +.PP +\-XX:+UseSHM +.RS 4 +On Linux, enables the JVM to use shared memory to setup large pages\&. +.sp +For more information, see "Large Pages"\&. +.RE +.PP +\-XX:+UseStringDeduplication +.RS 4 +Enables string deduplication\&. By default, this option is disabled\&. To use this option, you must enable the garbage\-first (G1) garbage collector\&. See the +\fB\-XX:+UseG1GC\fR +option\&. +.sp +\fIString deduplication\fR +reduces the memory footprint of +\fBString\fR +objects on the Java heap by taking advantage of the fact that many +\fBString\fR +objects are identical\&. Instead of each +\fBString\fR +object pointing to its own character array, identical +\fBString\fR +objects can point to and share the same character array\&. +.RE +.PP +\-XX:+UseTLAB +.RS 4 +Enables the use of thread\-local allocation blocks (TLABs) in the young generation space\&. This option is enabled by default\&. To disable the use of TLABs, specify +\fB\-XX:\-UseTLAB\fR\&. +.RE +.SS "Deprecated and Removed Options" +.PP +These options were included in the previous release, but have since been considered unnecessary\&. +.PP +\-Xincgc +.RS 4 +Enables incremental garbage collection\&. This option was deprecated in JDK 8 with no replacement\&. +.RE +.PP +\-Xrun\fIlibname\fR +.RS 4 +Loads the specified debugging/profiling library\&. This option was superseded by the +\fB\-agentlib\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalDutyCycle=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) between minor collections that the concurrent collector is allowed to run\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalDutyCycleMin=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) between minor collections that is the lower bound for the duty cycle when +\fB\-XX:+CMSIncrementalPacing\fR +is enabled\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:+CMSIncrementalMode +.RS 4 +Enables the incremental mode for the CMS collector\&. This option was deprecated in JDK 8 with no replacement, along with other options that start with +\fBCMSIncremental\fR\&. +.RE +.PP +\-XX:CMSIncrementalOffset=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) by which the incremental mode duty cycle is shifted to the right within the period between minor collections\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:+CMSIncrementalPacing +.RS 4 +Enables automatic adjustment of the incremental mode duty cycle based on statistics collected while the JVM is running\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSIncrementalSafetyFactor=\fIpercent\fR +.RS 4 +Sets the percentage of time (0 to 100) used to add conservatism when computing the duty cycle\&. This option was deprecated in JDK 8 with no replacement, following the deprecation of the +\fB\-XX:+CMSIncrementalMode\fR +option\&. +.RE +.PP +\-XX:CMSInitiatingPermOccupancyFraction=\fIpercent\fR +.RS 4 +Sets the percentage of the permanent generation occupancy (0 to 100) at which to start a GC\&. This option was deprecated in JDK 8 with no replacement\&. +.RE +.PP +\-XX:MaxPermSize=\fIsize\fR +.RS 4 +Sets the maximum permanent generation space size (in bytes)\&. This option was deprecated in JDK 8, and superseded by the +\fB\-XX:MaxMetaspaceSize\fR +option\&. +.RE +.PP +\-XX:PermSize=\fIsize\fR +.RS 4 +Sets the space (in bytes) allocated to the permanent generation that triggers a garbage collection if it is exceeded\&. This option was deprecated un JDK 8, and superseded by the +\fB\-XX:MetaspaceSize\fR +option\&. +.RE +.PP +\-XX:+UseSplitVerifier +.RS 4 +Enables splitting of the verification process\&. By default, this option was enabled in the previous releases, and verification was split into two phases: type referencing (performed by the compiler) and type checking (performed by the JVM runtime)\&. This option was deprecated in JDK 8, and verification is now split by default without a way to disable it\&. +.RE +.PP +\-XX:+UseStringCache +.RS 4 +Enables caching of commonly allocated strings\&. This option was removed from JDK 8 with no replacement\&. +.RE +.SH "PERFORMANCE TUNING EXAMPLES" +.PP +The following examples show how to use experimental tuning flags to either optimize throughput or to provide lower response time\&. +.PP +\fBExample 1 \fRTuning for Higher Throughput +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-server \-XX:+AggressiveOpts \-XX:+UseLargePages \-Xmn10g \-Xms26g \-Xmx26g\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBExample 2 \fRTuning for Lower Response Time +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjava \-d64 \-XX:+UseG1GC \-Xms26g Xmx26g \-XX:MaxGCPauseMillis=500 \-XX:+PrintGCTimeStamp\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "LARGE PAGES" +.PP +Also known as huge pages, large pages are memory pages that are significantly larger than the standard memory page size (which varies depending on the processor and operating system)\&. Large pages optimize processor Translation\-Lookaside Buffers\&. +.PP +A Translation\-Lookaside Buffer (TLB) is a page translation cache that holds the most\-recently used virtual\-to\-physical address translations\&. TLB is a scarce system resource\&. A TLB miss can be costly as the processor must then read from the hierarchical page table, which may require multiple memory accesses\&. By using a larger memory page size, a single TLB entry can represent a larger memory range\&. There will be less pressure on TLB, and memory\-intensive applications may have better performance\&. +.PP +However, large pages page memory can negatively affect system performance\&. For example, when a large mount of memory is pinned by an application, it may create a shortage of regular memory and cause excessive paging in other applications and slow down the entire system\&. Also, a system that has been up for a long time could produce excessive fragmentation, which could make it impossible to reserve enough large page memory\&. When this happens, either the OS or JVM reverts to using regular pages\&. +.SS "Large Pages Support" +.PP +Solaris and Linux support large pages\&. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBSolaris\fR +.RS 4 +.PP +Solaris 9 and later include Multiple Page Size Support (MPSS); no additional configuration is necessary\&. See http://www\&.oracle\&.com/technetwork/server\-storage/solaris10/overview/solaris9\-features\-scalability\-135663\&.html\&. +.RE +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBLinux\fR +.RS 4 +.PP +The 2\&.6 kernel supports large pages\&. Some vendors have backported the code to their 2\&.4\-based releases\&. To check if your system can support large page memory, try the following: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# cat /proc/meminfo | grep Huge\fR +\fBHugePages_Total: 0\fR +\fBHugePages_Free: 0\fR +\fBHugepagesize: 2048 kB\fR + +.fi +.if n \{\ +.RE +.\} +.PP +If the output shows the three "Huge" variables, then your system can support large page memory but it needs to be configured\&. If the command prints nothing, then your system does not support large pages\&. To configure the system to use large page memory, login as +\fBroot\fR, and then follow these steps: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +If you are using the option +\fB\-XX:+UseSHM\fR +(instead of +\fB\-XX:+UseHugeTLBFS\fR), then increase the +\fBSHMMAX\fR +value\&. It must be larger than the Java heap size\&. On a system with 4 GB of physical RAM (or less), the following will make all the memory sharable: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 4294967295 > /proc/sys/kernel/shmmax\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +If you are using the option +\fB\-XX:+UseSHM\fR +or +\fB\-XX:+UseHugeTLBFS\fR, then specify the number of large pages\&. In the following example, 3 GB of a 4 GB system are reserved for large pages (assuming a large page size of 2048kB, then 3 GB = 3 * 1024 MB = 3072 MB = 3072 * 1024 kB = 3145728 kB and 3145728 kB / 2048 kB = 1536): +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB# echo 1536 > /proc/sys/vm/nr_hugepages\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.TS +allbox tab(:); +l. +T{ +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Note that the values contained in +\fB/proc\fR +will reset after you reboot your system, so may want to set them in an initialization script (for example, +\fBrc\&.local\fR +or +\fBsysctl\&.conf\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If you configure (or resize) the OS kernel parameters +\fB/proc/sys/kernel/shmmax\fR +or +\fB/proc/sys/vm/nr_hugepages\fR, Java processes may allocate large pages for areas in addition to the Java heap\&. These steps can allocate large pages for the following areas: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Java heap +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Code cache +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The marking bitmap data structure for the parallel GC +.RE +.sp +Consequently, if you configure the +\fBnr_hugepages\fR +parameter to the size of the Java heap, then the JVM can fail in allocating the code cache areas on large pages because these areas are quite large in size\&. +.RE +T} +.TE +.sp 1 +.sp .5v +.RE +.RE +.SH "EXIT STATUS" +.PP +The following exit values are typically returned by the launcher when the launcher is called with the wrong arguments, serious errors, or exceptions thrown by the JVM\&. However, a Java application may choose to return any value by using the API call +\fBSystem\&.exit(exitValue)\fR\&. The values are: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB0\fR: Successful completion +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB>0\fR: An error occurred +.RE +.SH "SEE ALSO" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +javac(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jdb(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jar(1) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +jstat(1) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/jjs.1 b/.local/bin/IPMIView/jre/man/man1/jjs.1 new file mode 100755 index 0000000..04f8028 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/jjs.1 @@ -0,0 +1,247 @@ +'\" t +.\" Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Title: jjs +.\" Language: English +.\" Date: 03 March 2015 +.\" SectDesc: Basic Tools +.\" Software: JDK 8 +.\" Arch: generic +.\" Part Number: E38207-04 +.\" Doc ID: JSSON +.\" +.if n .pl 99999 +.TH "jjs" "1" "03 March 2015" "JDK 8" "Basic Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +jjs \- Invokes the Nashorn engine\&. +.SH "SYNOPSIS" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB\fBjjs\fR\fR\fB [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIscript\-files\fR\fR\fB] [\-\- \fR\fB\fIarguments\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +.RS 4 +One or more options of the +\fBjjs\fR +command, separated by spaces\&. For more information, see Options\&. +.RE +.PP +\fIscript\-files\fR +.RS 4 +One or more script files which you want to interpret using Nashorn, separated by spaces\&. If no files are specified, an interactive shell is started\&. +.RE +.PP +\fIarguments\fR +.RS 4 +All values after the double hyphen marker (\fB\-\-\fR) are passed through to the script or the interactive shell as arguments\&. These values can be accessed by using the +\fBarguments\fR +property (see Example 3)\&. +.RE +.SH "DESCRIPTION" +.PP +The +\fBjjs\fR +command\-line tool is used to invoke the Nashorn engine\&. You can use it to interpret one or several script files, or to run an interactive shell\&. +.SH "OPTIONS" +.PP +The options of the +\fBjjs\fR +command control the conditions under which scripts are interpreted by Nashorn\&. +.PP +\-cp \fIpath\fR +.br +\-classpath \fIpath\fR +.RS 4 +Specifies the path to the supporting class files To set multiple paths, the option can be repeated, or you can separate each path with a colon (:)\&. +.RE +.PP +\-D\fIname\fR=\fIvalue\fR +.RS 4 +Sets a system property to be passed to the script by assigning a value to a property name\&. The following example shows how to invoke Nashorn in interactive mode and assign +\fBmyValue\fR +to the property named +\fBmyKey\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs \-DmyKey=myValue\fR\fR +\fBjjs> \fR\fB\fBjava\&.lang\&.System\&.getProperty("myKey")\fR\fR +\fBmyValue\fR +\fBjjs>\fR + +.fi +.if n \{\ +.RE +.\} +This option can be repeated to set multiple properties\&. +.RE +.PP +\-doe +.br +\-\-dump\-on\-error +.RS 4 +Provides a full stack trace when an error occurs\&. By default, only a brief error message is printed\&. +.RE +.PP +\-fv +.br +\-\-fullversion +.RS 4 +Prints the full Nashorn version string\&. +.RE +.PP +\-fx +.RS 4 +Launches the script as a JavaFX application\&. +.RE +.PP +\-h +.br +\-help +.RS 4 +Prints the list of options and their descriptions\&. +.RE +.PP +\-\-language=[es5] +.RS 4 +Specifies the ECMAScript language version\&. The default version is ES5\&. +.RE +.PP +\-ot +.br +\-\-optimistic\-types=[true|false] +.RS 4 +Enables or disables optimistic type assumptions with deoptimizing recompilation\&. Running with optimistic types will yield higher final speed, but may increase warmup time\&. +.RE +.PP +\-scripting +.RS 4 +Enables shell scripting features\&. +.RE +.PP +\-strict +.RS 4 +Enables strict mode, which enforces stronger adherence to the standard (ECMAScript Edition 5\&.1), making it easier to detect common coding errors\&. +.RE +.PP +\-t=\fIzone\fR +.br +\-timezone=\fIzone\fR +.RS 4 +Sets the specified time zone for script execution\&. It overrides the time zone set in the OS and used by the +\fBDate\fR +object\&. +.RE +.PP +\-v +.br +\-version +.RS 4 +Prints the Nashorn version string\&. +.RE +.SH "EXAMPLES" +.PP +\fBExample 1 \fRRunning a Script with Nashorn +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fBjjs script\&.js\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBExample 2 \fRRunning Nashorn in Interactive Mode +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs\fR\fR +\fBjjs> \fR\fB\fBprintln("Hello, World!")\fR\fR +\fBHello, World!\fR +\fBjjs> \fR\fB\fBquit()\fR\fR +\fB>>\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.PP +\fBExample 3 \fRPassing Arguments to Nashorn +.RS 4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +\fB>> \fR\fB\fBjjs \-\- a b c\fR\fR +\fBjjs> \fR\fB\fBarguments\&.join(", ")\fR\fR +\fBa, b, c\fR +\fBjjs>\fR + +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.PP +\fBjrunscript\fR +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/keytool.1 b/.local/bin/IPMIView/jre/man/man1/keytool.1 new file mode 100755 index 0000000..878f2d5 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/keytool.1 @@ -0,0 +1,1619 @@ +'\" t +.\" Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Arch: generic +.\" Software: JDK 8 +.\" Date: 03 March 2015 +.\" SectDesc: Security Tools +.\" Title: keytool.1 +.\" +.if n .pl 99999 +.TH keytool 1 "03 March 2015" "JDK 8" "Security Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- + +.SH NAME +keytool \- Manages a keystore (database) of cryptographic keys, X\&.509 certificate chains, and trusted certificates\&. +.SH SYNOPSIS +.sp +.nf + +\fBkeytool\fR [\fIcommands\fR] +.fi +.sp +.TP +\fIcommands\fR +See Commands\&. These commands are categorized by task as follows: +.RS +.TP 0.2i +\(bu +Create or Add Data to the Keystore +.RS +.TP 0.2i +\(bu +-gencert +.TP 0.2i +\(bu +-genkeypair +.TP 0.2i +\(bu +-genseckey +.TP 0.2i +\(bu +-importcert +.TP 0.2i +\(bu +-importpassword +.RE + +.TP 0.2i +\(bu +Import Contents From Another Keystore +.RS +.TP 0.2i +\(bu +-importkeystore +.RE + +.TP 0.2i +\(bu +Generate Certificate Request +.RS +.TP 0.2i +\(bu +-certreq +.RE + +.TP 0.2i +\(bu +Export Data +.RS +.TP 0.2i +\(bu +-exportcert +.RE + +.TP 0.2i +\(bu +Display Data +.RS +.TP 0.2i +\(bu +-list +.TP 0.2i +\(bu +-printcert +.TP 0.2i +\(bu +-printcertreq +.TP 0.2i +\(bu +-printcrl +.RE + +.TP 0.2i +\(bu +Manage the Keystore +.RS +.TP 0.2i +\(bu +-storepasswd +.TP 0.2i +\(bu +-keypasswd +.TP 0.2i +\(bu +-delete +.TP 0.2i +\(bu +-changealias +.RE + +.TP 0.2i +\(bu +Get Help +.RS +.TP 0.2i +\(bu +-help +.RE + +.RE + +.SH DESCRIPTION +The \f3keytool\fR command is a key and certificate management utility\&. It enables users to administer their own public/private key pairs and associated certificates for use in self-authentication (where the user authenticates himself or herself to other users and services) or data integrity and authentication services, using digital signatures\&. The \f3keytool\fR command also enables users to cache the public keys (in the form of certificates) of their communicating peers\&. +.PP +A certificate is a digitally signed statement from one entity (person, company, and so on\&.), that says that the public key (and some other information) of some other entity has a particular value\&. (See Certificate\&.) When data is digitally signed, the signature can be verified to check the data integrity and authenticity\&. Integrity means that the data has not been modified or tampered with, and authenticity means the data comes from whoever claims to have created and signed it\&. +.PP +The \f3keytool\fR command also enables users to administer secret keys and passphrases used in symmetric encryption and decryption (DES)\&. +.PP +The \f3keytool\fR command stores the keys and certificates in a keystore\&. See KeyStore aliases\&. +.SH COMMAND\ AND\ OPTION\ NOTES +See Commands for a listing and description of the various commands\&. +.TP 0.2i +\(bu +All command and option names are preceded by a minus sign (-)\&. +.TP 0.2i +\(bu +The options for each command can be provided in any order\&. +.TP 0.2i +\(bu +All items not italicized or in braces or brackets are required to appear as is\&. +.TP 0.2i +\(bu +Braces surrounding an option signify that a default value will be used when the option is not specified on the command line\&. See Option Defaults\&. Braces are also used around the \f3-v\fR, \f3-rfc\fR, and \f3-J\fR options, which only have meaning when they appear on the command line\&. They do not have any default values other than not existing\&. +.TP 0.2i +\(bu +Brackets surrounding an option signify that the user is prompted for the values when the option is not specified on the command line\&. For the \f3-keypass\fR option, if you do not specify the option on the command line, then the \f3keytool\fR command first attempts to use the keystore password to recover the private/secret key\&. If this attempt fails, then the \f3keytool\fR command prompts you for the private/secret key password\&. +.TP 0.2i +\(bu +Items in italics (option values) represent the actual values that must be supplied\&. For example, here is the format of the \f3-printcert\fR command: +.sp +.nf +\f3keytool \-printcert {\-file \fIcert_file\fR} {\-v}\fP +.fi +.sp + + + + +When you specify a \f3-printcert\fR command, replace \fIcert_file\fR with the actual file name, as follows: \f3keytool -printcert -file VScert\&.cer\fR +.TP 0.2i +\(bu +Option values must be put in quotation marks when they contain a blank (space)\&. +.TP 0.2i +\(bu +The \f3-help\fR option is the default\&. The \f3keytool\fR command is the same as \f3keytool -help\fR\&. +.SH OPTION\ DEFAULTS +The following examples show the defaults for various option values\&. +.sp +.nf +\f3\-alias "mykey"\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-keyalg\fP +.fi +.nf +\f3 "DSA" (when using \-genkeypair)\fP +.fi +.nf +\f3 "DES" (when using \-genseckey)\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-keysize\fP +.fi +.nf +\f3 2048 (when using \-genkeypair and \-keyalg is "RSA")\fP +.fi +.nf +\f3 1024 (when using \-genkeypair and \-keyalg is "DSA")\fP +.fi +.nf +\f3 256 (when using \-genkeypair and \-keyalg is "EC")\fP +.fi +.nf +\f3 56 (when using \-genseckey and \-keyalg is "DES")\fP +.fi +.nf +\f3 168 (when using \-genseckey and \-keyalg is "DESede")\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-validity 90\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-keystore \fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-storetype \fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-file\fP +.fi +.nf +\f3 stdin (if reading)\fP +.fi +.nf +\f3 stdout (if writing)\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-protected false\fP +.fi +.nf +\f3\fP +.fi +.sp +In generating a public/private key pair, the signature algorithm (\f3-sigalg\fR option) is derived from the algorithm of the underlying private key: +.TP 0.2i +\(bu +If the underlying private key is of type DSA, then the \f3-sigalg\fR option defaults to SHA1withDSA\&. +.TP 0.2i +\(bu +If the underlying private key is of type RSA, then the \f3-sigalg\fR option defaults to SHA256withRSA\&. +.TP 0.2i +\(bu +If the underlying private key is of type EC, then the \f3-sigalg\fR option defaults to SHA256withECDSA\&. +.PP +For a full list of \f3-keyalg\fR and \f3-sigalg\fR arguments, see Java Cryptography Architecture (JCA) Reference Guide at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec\&.html#AppA +.SH COMMON\ OPTIONS +The \f3-v\fR option can appear for all commands except \f3-help\fR\&. When the \f3-v\fR option appears, it signifies verbose mode, which means that more information is provided in the output\&. +.PP +There is also a \f3-Jjavaoption\fR argument that can appear for any command\&. When the \f3-Jjavaoption\fR appears, the specified \f3javaoption\fR string is passed directly to the Java interpreter\&. This option does not contain any spaces\&. It is useful for adjusting the execution environment or memory usage\&. For a list of possible interpreter options, type \f3java -h\fR or \f3java -X\fR at the command line\&. +.PP +These options can appear for all commands operating on a keystore: +.TP +-storetype \fIstoretype\fR +.br +This qualifier specifies the type of keystore to be instantiated\&. +.TP +-keystore \fIkeystore\fR +.br +The keystore location\&. + +If the JKS \f3storetype\fR is used and a keystore file does not yet exist, then certain \f3keytool\fR commands can result in a new keystore file being created\&. For example, if \f3keytool -genkeypair\fR is called and the \f3-keystore\fR option is not specified, the default keystore file named \f3\&.keystore\fR in the user\&'s home directory is created when it does not already exist\&. Similarly, if the \f3-keystore ks_file\fR option is specified but ks_file does not exist, then it is created\&. For more information on the JKS \f3storetype\fR, see the \fIKeyStore Implementation\fR section in KeyStore aliases\&. + +Note that the input stream from the \f3-keystore\fR option is passed to the \f3KeyStore\&.load\fR method\&. If \f3NONE\fR is specified as the URL, then a null stream is passed to the \f3KeyStore\&.load\fR method\&. \f3NONE\fR should be specified if the keystore is not file-based\&. For example, when it resides on a hardware token device\&. +.TP +-storepass[:\fIenv\fR| :\fIfile\fR] argument +.br +The password that is used to protect the integrity of the keystore\&. + +If the modifier \f3env\fR or \f3file\fR is not specified, then the password has the \f3value\fR argument, which must be at least 6 characters long\&. Otherwise, the password is retrieved as follows: +.RS +.TP 0.2i +\(bu +\f3env\fR: Retrieve the password from the environment variable named \f3argument\fR\&. +.TP 0.2i +\(bu +\f3file\fR: Retrieve the password from the file named argument\&. +.RE + + +\fINote:\fR All other options that require passwords, such as \f3-keypass\fR, \f3-srckeypass\fR, -\f3destkeypass\fR, \f3-srcstorepass\fR, and \f3-deststorepass\fR, accept the \fIenv\fR and \fIfile\fR modifiers\&. Remember to separate the password option and the modifier with a colon (:)\&. + +The password must be provided to all commands that access the keystore contents\&. For such commands, when the \f3-storepass\fR option is not provided at the command line, the user is prompted for it\&. + +When retrieving information from the keystore, the password is optional\&. If no password is specified, then the integrity of the retrieved information cannot be verified and a warning is displayed\&. +.TP +-providerName \fIprovider_name\fR +.br +Used to identify a cryptographic service provider\&'s name when listed in the security properties file\&. +.TP +-providerClass \fIprovider_class_name\fR +.br +Used to specify the name of a cryptographic service provider\&'s master class file when the service provider is not listed in the security properties file\&. +.TP +-providerArg \fIprovider_arg\fR +.br +Used with the \f3-providerClass\fR option to represent an optional string input argument for the constructor of \f3provider_class_name\fR\&. +.TP +-protected +.br +Either \f3true\fR or \f3false\fR\&. This value should be specified as \f3true\fR when a password must be specified by way of a protected authentication path such as a dedicated PIN reader\&.Because there are two keystores involved in the \f3-importkeystore\fR command, the following two options \f3-srcprotected\fR and -\f3destprotected\fR are provided for the source keystore and the destination keystore respectively\&. +.TP +-ext \fI{name{:critical} {=value}}\fR +.br +Denotes an X\&.509 certificate extension\&. The option can be used in \f3-genkeypair\fR and \f3-gencert\fR to embed extensions into the certificate generated, or in \f3-certreq\fR to show what extensions are requested in the certificate request\&. The option can appear multiple times\&. The \f3name\fR argument can be a supported extension name (see Named Extensions) or an arbitrary OID number\&. The \f3value\fR argument, when provided, denotes the argument for the extension\&. When \fIvalue\fR is omitted, that means that the default value of the extension or the extension requires no argument\&. The \f3:critical\fR modifier, when provided, means the extension\&'s \f3isCritical\fR attribute is \f3true\fR; otherwise, it is \f3false\fR\&. You can use \f3:c\fR in place of \f3:critical\fR\&. +.SH NAMED\ EXTENSIONS +The \f3keytool\fR command supports these named extensions\&. The names are not case-sensitive)\&. +.TP +BC or BasicContraints +\fIValues\fR: The full form is: \f3ca:{true|false}[,pathlen:]\fR or \f3\fR, which is short for \f3ca:true,pathlen:\fR\&. When <\f3len\fR> is omitted, you have \f3ca:true\fR\&. +.TP +KU or KeyUsage +\fIValues\fR: \f3usage\fR(,\f3usage\fR)*, where \fIusage\fR can be one of \f3digitalSignature\fR, \f3nonRepudiation\fR (contentCommitment), \f3keyEncipherment\fR, \f3dataEncipherment\fR, \f3keyAgreement\fR, \f3keyCertSign\fR, \f3cRLSign\fR, \f3encipherOnly\fR, \f3decipherOnly\fR\&. The \fIusage\fR argument can be abbreviated with the first few letters (\f3dig\fR for \f3digitalSignature\fR) or in camel-case style (\f3dS\fR for \f3digitalSignature\fR or \f3cRLS\fR for \f3cRLSign\fR), as long as no ambiguity is found\&. The \f3usage\fR values are case-sensitive\&. +.TP +EKU or ExtendedKeyUsage +\fIValues\fR: \f3usage\fR(,\f3usage\fR)*, where \fIusage\fR can be one of \f3anyExtendedKeyUsage\fR, \f3serverAuth\fR, \f3clientAuth\fR, \f3codeSigning\fR, \f3emailProtection\fR, \f3timeStamping\fR, \f3OCSPSigning\fR, or any \fIOID string\fR\&. The \fIusage\fR argument can be abbreviated with the first few letters or in camel-case style, as long as no ambiguity is found\&. The \f3usage\fR values are case-sensitive\&. +.TP +SAN or SubjectAlternativeName +\fIValues\fR: \f3type\fR:\f3value\fR(,t\f3ype:value\fR)*, where \f3type\fR can be \f3EMAIL\fR, \f3URI\fR, \f3DNS\fR, \f3IP\fR, or \f3OID\fR\&. The \f3value\fR argument is the string format value for the \f3type\fR\&. +.TP +IAN or IssuerAlternativeName +\fIValues\fR: Same as \f3SubjectAlternativeName\fR\&. +.TP +SIA or SubjectInfoAccess +\fIValues\fR: \f3method\fR:\f3location-type\fR:\f3location-value\fR (,\f3method:location-type\fR:\f3location-value\fR)*, where \f3method\fR can be \f3timeStamping\fR, \f3caRepository\fR or any OID\&. The \f3location-type\fR and \f3location-value\fR arguments can be any \f3type\fR:\f3value\fR supported by the \f3SubjectAlternativeName\fR extension\&. +.TP +AIA or AuthorityInfoAccess +\fIValues\fR: Same as \f3SubjectInfoAccess\fR\&. The \f3method\fR argument can be \f3ocsp\fR,\f3caIssuers\fR, or any OID\&. +.PP +When \f3name\fR is OID, the value is the hexadecimal dumped DER encoding of the \f3extnValue\fR for the extension excluding the OCTET STRING type and length bytes\&. Any extra character other than standard hexadecimal numbers (0-9, a-f, A-F) are ignored in the HEX string\&. Therefore, both 01:02:03:04 and 01020304 are accepted as identical values\&. When there is no value, the extension has an empty value field\&. +.PP +A special name \f3honored\fR, used in \f3-gencert\fR only, denotes how the extensions included in the certificate request should be honored\&. The value for this name is a comma separated list of \f3all\fR (all requested extensions are honored), \f3name{:[critical|non-critical]}\fR (the named extension is honored, but using a different \f3isCritical\fR attribute) and \f3-name\fR (used with \f3all\fR, denotes an exception)\&. Requested extensions are not honored by default\&. +.PP +If, besides the\f3-ext honored\fR option, another named or OID \f3-ext\fR option is provided, this extension is added to those already honored\&. However, if this name (or OID) also appears in the honored value, then its value and criticality overrides the one in the request\&. +.PP +The \f3subjectKeyIdentifier\fR extension is always created\&. For non-self-signed certificates, the \f3authorityKeyIdentifier\fR is created\&. +.PP +\fINote:\fR Users should be aware that some combinations of extensions (and other certificate fields) may not conform to the Internet standard\&. See Certificate Conformance Warning\&. +.SH COMMANDS +.TP +-gencert +.sp +.nf +\f3{\-rfc} {\-infile \fIinfile\fR} {\-outfile \fIoutfile\fR} {\-alias \fIalias\fR} {\-sigalg \fIsigalg\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-dname \fIdname\fR} {\-startdate \fIstartdate\fR {\-ext \fIext\fR}* {\-validity \fIvalDays\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-keypass \fIkeypass\fR] {\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-storetype \fIstoretype\fR} {\-providername \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Generates a certificate as a response to a certificate request file (which can be created by the \f3keytool\fR\f3-certreq\fR command)\&. The command reads the request from \fIinfile\fR (if omitted, from the standard input), signs it using alias\&'s private key, and outputs the X\&.509 certificate into \fIoutfile\fR (if omitted, to the standard output)\&. When\f3-rfc\fR is specified, the output format is Base64-encoded PEM; otherwise, a binary DER is created\&. + +The \f3sigalg\fR value specifies the algorithm that should be used to sign the certificate\&. The \f3startdate\fR argument is the start time and date that the certificate is valid\&. The \f3valDays\fR argument tells the number of days for which the certificate should be considered valid\&. + +When \f3dname\fR is provided, it is used as the subject of the generated certificate\&. Otherwise, the one from the certificate request is used\&. + +The \f3ext\fR value shows what X\&.509 extensions will be embedded in the certificate\&. Read Common Options for the grammar of \f3-ext\fR\&. + +The \f3-gencert\fR option enables you to create certificate chains\&. The following example creates a certificate, \f3e1\fR, that contains three certificates in its certificate chain\&. + +The following commands creates four key pairs named \f3ca\fR, \f3ca1\fR, \f3ca2\fR, and \f3e1\fR: +.sp +.nf +\f3keytool \-alias ca \-dname CN=CA \-genkeypair\fP +.fi +.nf +\f3keytool \-alias ca1 \-dname CN=CA \-genkeypair\fP +.fi +.nf +\f3keytool \-alias ca2 \-dname CN=CA \-genkeypair\fP +.fi +.nf +\f3keytool \-alias e1 \-dname CN=E1 \-genkeypair\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The following two commands create a chain of signed certificates; \f3ca\fR signs \f3ca1\fR and \f3ca1\fR signs \f3ca2\fR, all of which are self-issued: +.sp +.nf +\f3keytool \-alias ca1 \-certreq |\fP +.fi +.nf +\f3 keytool \-alias ca \-gencert \-ext san=dns:ca1 |\fP +.fi +.nf +\f3 keytool \-alias ca1 \-importcert\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3keytool \-alias ca2 \-certreq |\fP +.fi +.nf +\f3 $KT \-alias ca1 \-gencert \-ext san=dns:ca2 |\fP +.fi +.nf +\f3 $KT \-alias ca2 \-importcert\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The following command creates the certificate \f3e1\fR and stores it in the file \f3e1\&.cert\fR, which is signed by \f3ca2\fR\&. As a result, \f3e1\fR should contain \f3ca\fR, \f3ca1\fR, and \f3ca2\fR in its certificate chain: +.sp +.nf +\f3keytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1\&.cert\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-genkeypair +.sp +.nf +\f3{\-alias \fIalias\fR} {\-keyalg \fIkeyalg\fR} {\-keysize \fIkeysize\fR} {\-sigalg \fIsigalg\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-dname \fIdname\fR] [\-keypass \fIkeypass\fR] {\-startdate \fIvalue\fR} {\-ext \fIext\fR}*\fP +.fi +.sp +.sp +.nf +\f3{\-validity \fIvalDays\fR} {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Generates a key pair (a public key and associated private key)\&. Wraps the public key into an X\&.509 v3 self-signed certificate, which is stored as a single-element certificate chain\&. This certificate chain and the private key are stored in a new keystore entry identified by alias\&. + +The \f3keyalg\fR value specifies the algorithm to be used to generate the key pair, and the \f3keysize\fR value specifies the size of each key to be generated\&. The \f3sigalg\fR value specifies the algorithm that should be used to sign the self-signed certificate\&. This algorithm must be compatible with the \f3keyalg\fR value\&. + +The \f3dname\fR value specifies the X\&.500 Distinguished Name to be associated with the value of \f3alias\fR, and is used as the issuer and subject fields in the self-signed certificate\&. If no distinguished name is provided at the command line, then the user is prompted for one\&. + +The value of \f3keypass\fR is a password used to protect the private key of the generated key pair\&. If no password is provided, then the user is prompted for it\&. If you press \fIthe Return key\fR at the prompt, then the key password is set to the same password as the keystore password\&. The \f3keypass\fR value must be at least 6 characters\&. + +The value of \f3startdate\fR specifies the issue time of the certificate, also known as the "Not Before" value of the X\&.509 certificate\&'s Validity field\&. + +The option value can be set in one of these two forms: + +\f3([+-]nnn[ymdHMS])+\fR + +\f3[yyyy/mm/dd] [HH:MM:SS]\fR + +With the first form, the issue time is shifted by the specified value from the current time\&. The value is a concatenation of a sequence of subvalues\&. Inside each subvalue, the plus sign (+) means shift forward, and the minus sign (-) means shift backward\&. The time to be shifted is \f3nnn\fR units of years, months, days, hours, minutes, or seconds (denoted by a single character of \f3y\fR, \f3m\fR, \f3d\fR, \f3H\fR, \f3M\fR, or \f3S\fR respectively)\&. The exact value of the issue time is calculated using the \f3java\&.util\&.GregorianCalendar\&.add(int field, int amount)\fR method on each subvalue, from left to right\&. For example, by specifying, the issue time will be: +.sp +.nf +\f3Calendar c = new GregorianCalendar();\fP +.fi +.nf +\f3c\&.add(Calendar\&.YEAR, \-1);\fP +.fi +.nf +\f3c\&.add(Calendar\&.MONTH, 1);\fP +.fi +.nf +\f3c\&.add(Calendar\&.DATE, \-1);\fP +.fi +.nf +\f3return c\&.getTime()\fP +.fi +.nf +\f3\fP +.fi +.sp + + +With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local time zone)\&. The user can provide only one part, which means the other part is the same as the current date (or time)\&. The user must provide the exact number of digits as shown in the format definition (padding with 0 when shorter)\&. When both the date and time are provided, there is one (and only one) space character between the two parts\&. The hour should always be provided in 24 hour format\&. + +When the option is not provided, the start date is the current time\&. The option can be provided at most once\&. + +The value of \f3valDays\fR specifies the number of days (starting at the date specified by \f3-startdate\fR, or the current date when \f3-startdate\fR is not specified) for which the certificate should be considered valid\&. + +This command was named \f3-genkey\fR in earlier releases\&. The old name is still supported in this release\&. The new name, \f3-genkeypair\fR, is preferred going forward\&. +.TP +-genseckey +.sp +.nf +\f3{\-alias \fIalias\fR} {\-keyalg \fIkeyalg\fR} {\-keysize \fIkeysize\fR} [\-keypass \fIkeypass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}} {\-v}\fP +.fi +.sp +.sp +.nf +\f3{\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Generates a secret key and stores it in a new \f3KeyStore\&.SecretKeyEntry\fR identified by \f3alias\fR\&. + +The value of \f3keyalg\fR specifies the algorithm to be used to generate the secret key, and the value of \f3keysize\fR specifies the size of the key to be generated\&. The \f3keypass\fR value is a password that protects the secret key\&. If no password is provided, then the user is prompted for it\&. If you press the Return key at the prompt, then the key password is set to the same password that is used for the \f3keystore\fR\&. The \f3keypass\fR value must be at least 6 characters\&. +.TP +-importcert +.sp +.nf +\f3{\-alias \fIalias\fR} {\-file \fIcert_file\fR} [\-keypass \fIkeypass\fR] {\-noprompt} {\-trustcacerts}\fP +.fi +.sp +.sp +.nf +\f3{\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Reads the certificate or certificate chain (where the latter is supplied in a PKCS#7 formatted reply or a sequence of X\&.509 certificates) from the file \f3cert_file\fR, and stores it in the \f3keystore\fR entry identified by \f3alias\fR\&. If no file is specified, then the certificate or certificate chain is read from \f3stdin\fR\&. + +The \f3keytool\fR command can import X\&.509 v1, v2, and v3 certificates, and PKCS#7 formatted certificate chains consisting of certificates of that type\&. The data to be imported must be provided either in binary encoding format or in printable encoding format (also known as Base64 encoding) as defined by the Internet RFC 1421 standard\&. In the latter case, the encoding must be bounded at the beginning by a string that starts with \f3-\fR\f3----BEGIN\fR, and bounded at the end by a string that starts with \f3-----END\fR\&. + +You import a certificate for two reasons: To add it to the list of trusted certificates, and to import a certificate reply received from a certificate authority (CA) as the result of submitting a Certificate Signing Request to that CA (see the \f3-certreq\fR option in Commands)\&. + +Which type of import is intended is indicated by the value of the \f3-alias\fR option\&. If the alias does not point to a key entry, then the \f3keytool\fR command assumes you are adding a trusted certificate entry\&. In this case, the alias should not already exist in the keystore\&. If the alias does already exist, then the \f3keytool\fR command outputs an error because there is already a trusted certificate for that alias, and does not import the certificate\&. If the alias points to a key entry, then the \f3keytool\fR command assumes you are importing a certificate reply\&. +.TP +-importpassword +.sp +.nf +\f3{\-alias \fIalias\fR} [\-keypass \fIkeypass\fR] {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Imports a passphrase and stores it in a new \f3KeyStore\&.SecretKeyEntry\fR identified by \f3alias\fR\&. The passphrase may be supplied via the standard input stream; otherwise the user is prompted for it\&. \f3keypass\fR is a password used to protect the imported passphrase\&. If no password is provided, the user is prompted for it\&. If you press the Return key at the prompt, the key password is set to the same password as that used for the \f3keystore\fR\&. \f3keypass\fR must be at least 6 characters long\&. +.TP +-importkeystore +.sp +.nf +\f3{\-srcstoretype \fIsrcstoretype\fR} {\-deststoretype \fIdeststoretype\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-srcstorepass \fIsrcstorepass\fR] [\-deststorepass \fIdeststorepass\fR] {\-srcprotected}\fP +.fi +.sp +.sp +.nf +\f3{\-destprotected} \fP +.fi +.sp +.sp +.nf +\f3{\-srcalias \fIsrcalias\fR {\-destalias \fIdestalias\fR} [\-srckeypass \fIsrckeypass\fR]} \fP +.fi +.sp +.sp +.nf +\f3[\-destkeypass \fIdestkeypass\fR] {\-noprompt}\fP +.fi +.sp +.sp +.nf +\f3{\-srcProviderName \fIsrc_provider_name\fR} {\-destProviderName \fIdest_provider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}} {\-v}\fP +.fi +.sp +.sp +.nf +\f3{\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Imports a single entry or all entries from a source keystore to a destination keystore\&. + +When the \f3-srcalias\fR option is provided, the command imports the single entry identified by the alias to the destination keystore\&. If a destination alias is not provided with \f3destalias\fR, then \f3srcalias\fR is used as the destination alias\&. If the source entry is protected by a password, then \f3srckeypass\fR is used to recover the entry\&. If \fIsrckeypass\fR is not provided, then the \f3keytool\fR command attempts to use \f3srcstorepass\fR to recover the entry\&. If \f3srcstorepass\fR is either not provided or is incorrect, then the user is prompted for a password\&. The destination entry is protected with \f3destkeypass\fR\&. If \f3destkeypass\fR is not provided, then the destination entry is protected with the source entry password\&. For example, most third-party tools require \f3storepass\fR and \f3keypass\fR in a PKCS #12 keystore to be the same\&. In order to create a PKCS #12 keystore for these tools, always specify a \f3-destkeypass\fR to be the same as \f3-deststorepass\fR\&. + +If the \f3-srcalias\fR option is not provided, then all entries in the source keystore are imported into the destination keystore\&. Each destination entry is stored under the alias from the source entry\&. If the source entry is protected by a password, then \f3srcstorepass\fR is used to recover the entry\&. If \f3srcstorepass\fR is either not provided or is incorrect, then the user is prompted for a password\&. If a source keystore entry type is not supported in the destination keystore, or if an error occurs while storing an entry into the destination keystore, then the user is prompted whether to skip the entry and continue or to quit\&. The destination entry is protected with the source entry password\&. + +If the destination alias already exists in the destination keystore, then the user is prompted to either overwrite the entry or to create a new entry under a different alias name\&. + +If the \f3-noprompt\fR option is provided, then the user is not prompted for a new destination alias\&. Existing entries are overwritten with the destination alias name\&. Entries that cannot be imported are skipped and a warning is displayed\&. +.TP +-printcertreq +.sp +.nf +\f3{\-file \fIfile\fR}\fP +.fi +.sp + + +Prints the content of a PKCS #10 format certificate request, which can be generated by the \f3keytool\fR\f3-certreq\fR command\&. The command reads the request from file\&. If there is no file, then the request is read from the standard input\&. +.TP +-certreq +.sp +.nf +\f3{\-alias \fIalias\fR} {\-dname \fIdname\fR} {\-sigalg \fIsigalg\fR} {\-file \fIcertreq_file\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-keypass \fIkeypass\fR] {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-storepass \fIstorepass\fR] {\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Generates a Certificate Signing Request (CSR) using the PKCS #10 format\&. + +A CSR is intended to be sent to a certificate authority (CA)\&. The CA authenticates the certificate requestor (usually off-line) and will return a certificate or certificate chain, used to replace the existing certificate chain (which initially consists of a self-signed certificate) in the keystore\&. + +The private key associated with alias is used to create the PKCS #10 certificate request\&. To access the private key, the correct password must be provided\&. If \f3keypass\fR is not provided at the command line and is different from the password used to protect the integrity of the keystore, then the user is prompted for it\&. If \f3dname\fR is provided, then it is used as the subject in the CSR\&. Otherwise, the X\&.500 Distinguished Name associated with alias is used\&. + +The \f3sigalg\fR value specifies the algorithm that should be used to sign the CSR\&. + +The CSR is stored in the file certreq_file\&. If no file is specified, then the CSR is output to \f3stdout\fR\&. + +Use the \f3importcert\fR command to import the response from the CA\&. +.TP +-exportcert +.sp +.nf +\f3{\-alias \fIalias\fR} {\-file \fIcert_file\fR} {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-storepass \fIstorepass\fR] {\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-rfc} {\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Reads from the keystore the certificate associated with \fIalias\fR and stores it in the cert_file file\&. When no file is specified, the certificate is output to \f3stdout\fR\&. + +The certificate is by default output in binary encoding\&. If the \f3-rfc\fR option is specified, then the output in the printable encoding format defined by the Internet RFC 1421 Certificate Encoding Standard\&. + +If \f3alias\fR refers to a trusted certificate, then that certificate is output\&. Otherwise, \f3alias\fR refers to a key entry with an associated certificate chain\&. In that case, the first certificate in the chain is returned\&. This certificate authenticates the public key of the entity addressed by \f3alias\fR\&. + +This command was named \f3-export\fR in earlier releases\&. The old name is still supported in this release\&. The new name, \f3-exportcert\fR, is preferred going forward\&. +.TP +-list +.sp +.nf +\f3{\-alias \fIalias\fR} {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v | \-rfc} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Prints to \f3stdout\fR the contents of the keystore entry identified by \f3alias\fR\&. If no \f3alias\fR is specified, then the contents of the entire keystore are printed\&. + +This command by default prints the SHA1 fingerprint of a certificate\&. If the \f3-v\fR option is specified, then the certificate is printed in human-readable format, with additional information such as the owner, issuer, serial number, and any extensions\&. If the \f3-rfc\fR option is specified, then the certificate contents are printed using the printable encoding format, as defined by the Internet RFC 1421 Certificate Encoding Standard\&. + +You cannot specify both \f3-v\fR and \f3-rfc\fR\&. +.TP +-printcert +.sp +.nf +\f3{\-file \fIcert_file\fR | \-sslserver \fIhost\fR[:\fIport\fR]} {\-jarfile \fIJAR_file\fR {\-rfc} {\-v}\fP +.fi +.sp +.sp +.nf +\f3{\-Jjavaoption}\fP +.fi +.sp + + +Reads the certificate from the file cert_file, the SSL server located at host:port, or the signed JAR file \f3JAR_file\fR (with the \f3-jarfile\fR option and prints its contents in a human-readable format\&. When no port is specified, the standard HTTPS port 443 is assumed\&. Note that \f3-sslserver\fR and -file options cannot be provided at the same time\&. Otherwise, an error is reported\&. If neither option is specified, then the certificate is read from \f3stdin\fR\&. + +When\f3-rfc\fR is specified, the \f3keytool\fR command prints the certificate in PEM mode as defined by the Internet RFC 1421 Certificate Encoding standard\&. See Internet RFC 1421 Certificate Encoding Standard\&. + +If the certificate is read from a file or \f3stdin\fR, then it might be either binary encoded or in printable encoding format, as defined by the RFC 1421 Certificate Encoding standard\&. + +If the SSL server is behind a firewall, then the \f3-J-Dhttps\&.proxyHost=proxyhost\fR and \f3-J-Dhttps\&.proxyPort=proxyport\fR options can be specified on the command line for proxy tunneling\&. See Java Secure Socket Extension (JSSE) Reference Guide at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide\&.html + +\fINote:\fR This option can be used independently of a keystore\&. +.TP +-printcrl +.sp +.nf +\f3\-file \fIcrl_\fR {\-v}\fP +.fi +.sp + + +Reads the Certificate Revocation List (CRL) from the file \f3crl_\fR\&. A CRL is a list of digital certificates that were revoked by the CA that issued them\&. The CA generates the \f3crl_\fR file\&. + +\fINote:\fR This option can be used independently of a keystore\&. +.TP +-storepasswd +.sp +.nf +\f3[\-new \fInew_storepass\fR] {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR}\fP +.fi +.sp +.sp +.nf +\f3[\-storepass \fIstorepass\fR] {\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-Jjavaoption}\fP +.fi +.sp + + +Changes the password used to protect the integrity of the keystore contents\&. The new password is \f3new_storepass\fR, which must be at least 6 characters\&. +.TP +-keypasswd +.sp +.nf +\f3{\-alias \fIalias\fR} [\-keypass \fIold_keypass\fR] [\-new \fInew_keypass\fR] {\-storetype \fIstoretype\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR] {\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}} {\-v}\fP +.fi +.sp +.sp +.nf +\f3{\-Jjavaoption}\fP +.fi +.sp + + +Changes the password under which the private/secret key identified by \f3alias\fR is protected, from \f3old_keypass\fR to \f3new_keypass\fR, which must be at least 6 characters\&. + +If the \f3-keypass\fR option is not provided at the command line, and the key password is different from the keystore password, then the user is prompted for it\&. + +If the \f3-new\fR option is not provided at the command line, then the user is prompted for it +.TP +-delete +.sp +.nf +\f3[\-alias \fIalias\fR] {\-storetype \fIstoretype\fR} {\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR]\fP +.fi +.sp +.sp +.nf +\f3{\-providerName \fIprovider_name\fR} \fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}}\fP +.fi +.sp +.sp +.nf +\f3{\-v} {\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Deletes from the keystore the entry identified by \f3alias\fR\&. The user is prompted for the alias, when no alias is provided at the command line\&. +.TP +-changealias +.sp +.nf +\f3{\-alias \fIalias\fR} [\-destalias \fIdestalias\fR] [\-keypass \fIkeypass\fR] {\-storetype \fIstoretype\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-keystore \fIkeystore\fR} [\-storepass \fIstorepass\fR] {\-providerName \fIprovider_name\fR}\fP +.fi +.sp +.sp +.nf +\f3{\-providerClass \fIprovider_class_name\fR {\-providerArg \fIprovider_arg\fR}} {\-v}\fP +.fi +.sp +.sp +.nf +\f3{\-protected} {\-Jjavaoption}\fP +.fi +.sp + + +Move an existing keystore entry from the specified \f3alias\fR to a new alias, \f3destalias\fR\&. If no destination alias is provided, then the command prompts for one\&. If the original entry is protected with an entry password, then the password can be supplied with the \f3-keypass\fR option\&. If no key password is provided, then the \f3storepass\fR (if provided) is attempted first\&. If the attempt fails, then the user is prompted for a password\&. +.TP +-help +.br +Lists the basic commands and their options\&. + +For more information about a specific command, enter the following, where \f3command_name\fR is the name of the command: \f3keytool -command_name -help\fR\&. +.SH EXAMPLES +This example walks through the sequence of steps to create a keystore for managing public/private key pair and certificates from trusted entities\&. +.SS GENERATE\ THE\ KEY\ PAIR +First, create a keystore and generate the key pair\&. You can use a command such as the following typed as a single line: +.sp +.nf +\f3keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US"\fP +.fi +.nf +\f3 \-alias business \-keypass \fP +.fi +.nf +\f3 \-keystore /working/mykeystore\fP +.fi +.nf +\f3 \-storepass \-validity 180\fP +.fi +.nf +\f3\fP +.fi +.sp +The command creates the keystore named \f3mykeystore\fR in the working directory (assuming it does not already exist), and assigns it the password specified by \f3\fR\&. It generates a public/private key pair for the entity whose distinguished name has a common name of Mark Jones, organizational unit of Java, organization of Oracle and two-letter country code of US\&. It uses the default DSA key generation algorithm to create the keys; both are 1024 bits\&. +.PP +The command uses the default SHA1withDSA signature algorithm to create a self-signed certificate that includes the public key and the distinguished name information\&. The certificate is valid for 180 days, and is associated with the private key in a keystore entry referred to by the alias \f3business\fR\&. The private key is assigned the password specified by \f3\fR\&. +.PP +The command is significantly shorter when the option defaults are accepted\&. In this case, no options are required, and the defaults are used for unspecified options that have default values\&. You are prompted for any required values\&. You could have the following: +.sp +.nf +\f3keytool \-genkeypair\fP +.fi +.nf +\f3\fP +.fi +.sp +In this case, a keystore entry with the alias \f3mykey\fR is created, with a newly generated key pair and a certificate that is valid for 90 days\&. This entry is placed in the keystore named \f3\&.keystore\fR in your home directory\&. The keystore is created when it does not already exist\&. You are prompted for the distinguished name information, the keystore password, and the private key password\&. +.PP +The rest of the examples assume you executed the \f3-genkeypair\fR command without options specified, and that you responded to the prompts with values equal to those specified in the first \f3-genkeypair\fR command\&. For example, a distinguished name of \f3cn=Mark Jones\fR, \f3ou=Java\fR, \f3o=Oracle\fR, \f3c=US\fR)\&. +.SS REQUEST\ A\ SIGNED\ CERTIFICATE\ FROM\ A\ CA +Generating the key pair created a self-signed certificate\&. A certificate is more likely to be trusted by others when it is signed by a Certification Authority (CA)\&. To get a CA signature, first generate a Certificate Signing Request (CSR), as follows: +.sp +.nf +\f3keytool \-certreq \-file MarkJ\&.csr\fP +.fi +.nf +\f3\fP +.fi +.sp +This creates a CSR for the entity identified by the default alias \f3mykey\fR and puts the request in the file named MarkJ\&.csr\&. Submit this file to a CA, such as VeriSign\&. The CA authenticates you, the requestor (usually off-line), and returns a certificate, signed by them, authenticating your public key\&. In some cases, the CA returns a chain of certificates, each one authenticating the public key of the signer of the previous certificate in the chain\&. +.SS IMPORT\ A\ CERTIFICATE\ FOR\ THE\ CA +You now need to replace the self-signed certificate with a certificate chain, where each certificate in the chain authenticates the public key of the signer of the previous certificate in the chain, up to a root CA\&. +.PP +Before you import the certificate reply from a CA, you need one or more trusted certificates in your keystore or in the \f3cacerts\fR keystore file\&. See \f3-importcert\fR in Commands\&. +.TP 0.2i +\(bu +If the certificate reply is a certificate chain, then you need the top certificate of the chain\&. The root CA certificate that authenticates the public key of the CA\&. +.TP 0.2i +\(bu +If the certificate reply is a single certificate, then you need a certificate for the issuing CA (the one that signed it)\&. If that certificate is not self-signed, then you need a certificate for its signer, and so on, up to a self-signed root CA certificate\&. +.PP +The \f3cacerts\fR keystore file ships with several VeriSign root CA certificates, so you probably will not need to import a VeriSign certificate as a trusted certificate in your keystore\&. But if you request a signed certificate from a different CA, and a certificate authenticating that CA\&'s public key was not added to \f3cacerts\fR, then you must import a certificate from the CA as a trusted certificate\&. +.PP +A certificate from a CA is usually either self-signed or signed by another CA, in which case you need a certificate that authenticates that CA\&'s public key\&. Suppose company ABC, Inc\&., is a CA, and you obtain a file named A\f3BCCA\&.cer\fR that is supposed to be a self-signed certificate from ABC, that authenticates that CA\&'s public key\&. Be careful to ensure the certificate is valid before you import it as a trusted certificate\&. View it first with the \f3keytool -printcert\fR command or the \f3keytool -importcert\fR command without the \f3-noprompt\fR option, and make sure that the displayed certificate fingerprints match the expected ones\&. You can call the person who sent the certificate, and compare the fingerprints that you see with the ones that they show or that a secure public key repository shows\&. Only when the fingerprints are equal is it guaranteed that the certificate was not replaced in transit with somebody else\&'s (for example, an attacker\&'s) certificate\&. If such an attack takes place, and you did not check the certificate before you imported it, then you would be trusting anything the attacker has signed\&. +.PP +If you trust that the certificate is valid, then you can add it to your keystore with the following command: +.sp +.nf +\f3keytool \-importcert \-alias abc \-file ABCCA\&.cer\fP +.fi +.nf +\f3\fP +.fi +.sp +This command creates a trusted certificate entry in the keystore, with the data from the file ABCCA\&.cer, and assigns the alias \f3abc\fR to the entry\&. +.SS IMPORT\ THE\ CERTIFICATE\ REPLY\ FROM\ THE\ CA +After you import a certificate that authenticates the public key of the CA you submitted your certificate signing request to (or there is already such a certificate in the cacerts file), you can import the certificate reply and replace your self-signed certificate with a certificate chain\&. This chain is the one returned by the CA in response to your request (when the CA reply is a chain), or one constructed (when the CA reply is a single certificate) using the certificate reply and trusted certificates that are already available in the keystore where you import the reply or in the \f3cacerts\fR keystore file\&. +.PP +For example, if you sent your certificate signing request to VeriSign, then you can import the reply with the following, which assumes the returned certificate is named VSMarkJ\&.cer: +.sp +.nf +\f3keytool \-importcert \-trustcacerts \-file VSMarkJ\&.cer\fP +.fi +.nf +\f3\fP +.fi +.sp +.SS EXPORT\ A\ CERTIFICATE\ THAT\ AUTHENTICATES\ THE\ PUBLIC\ KEY +If you used the \f3jarsigner\fR command to sign a Java Archive (JAR) file, then clients that want to use the file will want to authenticate your signature\&. One way the clients can authenticate you is by first importing your public key certificate into their keystore as a trusted entry\&. +.PP +You can export the certificate and supply it to your clients\&. As an example, you can copy your certificate to a file named MJ\&.cer with the following command that assumes the entry has an alias of \f3mykey\fR: +.sp +.nf +\f3keytool \-exportcert \-alias mykey \-file MJ\&.cer\fP +.fi +.nf +\f3\fP +.fi +.sp +With the certificate and the signed JAR file, a client can use the \f3jarsigner\fR command to authenticate your signature\&. +.SS IMPORT\ KEYSTORE +The command \f3importkeystore\fR is used to import an entire keystore into another keystore, which means all entries from the source keystore, including keys and certificates, are all imported to the destination keystore within a single command\&. You can use this command to import entries from a different type of keystore\&. During the import, all new entries in the destination keystore will have the same alias names and protection passwords (for secret keys and private keys)\&. If the \f3keytool\fR command cannot recover the private keys or secret keys from the source keystore, then it prompts you for a password\&. If it detects alias duplication, then it asks you for a new alias, and you can specify a new alias or simply allow the \f3keytool\fR command to overwrite the existing one\&. +.PP +For example, to import entries from a typical JKS type keystore key\&.jks into a PKCS #11 type hardware-based keystore, use the command: +.sp +.nf +\f3keytool \-importkeystore\fP +.fi +.nf +\f3 \-srckeystore key\&.jks \-destkeystore NONE\fP +.fi +.nf +\f3 \-srcstoretype JKS \-deststoretype PKCS11\fP +.fi +.nf +\f3 \-srcstorepass \fP +.fi +.nf +\f3 \-deststorepass \fP +.fi +.nf +\f3\fP +.fi +.sp +The \f3importkeystore\fR command can also be used to import a single entry from a source keystore to a destination keystore\&. In this case, besides the options you see in the previous example, you need to specify the alias you want to import\&. With the \f3-srcalias\fR option specified, you can also specify the destination alias name in the command line, as well as protection password for a secret/private key and the destination protection password you want\&. The following command demonstrates this: +.sp +.nf +\f3keytool \-importkeystore\fP +.fi +.nf +\f3 \-srckeystore key\&.jks \-destkeystore NONE\fP +.fi +.nf +\f3 \-srcstoretype JKS \-deststoretype PKCS11\fP +.fi +.nf +\f3 \-srcstorepass \fP +.fi +.nf +\f3 \-deststorepass \fP +.fi +.nf +\f3 \-srcalias myprivatekey \-destalias myoldprivatekey\fP +.fi +.nf +\f3 \-srckeypass \fP +.fi +.nf +\f3 \-destkeypass \fP +.fi +.nf +\f3 \-noprompt\fP +.fi +.nf +\f3\fP +.fi +.sp +.SS GENERATE\ CERTIFICATES\ FOR\ AN\ SSL\ SERVER +The following are \f3keytool\fR commands to generate key pairs and certificates for three entities: Root CA (\f3root\fR), Intermediate CA (\f3ca\fR), and SSL server (\f3server\fR)\&. Ensure that you store all the certificates in the same keystore\&. In these examples, RSA is the recommended the key algorithm\&. +.sp +.nf +\f3keytool \-genkeypair \-keystore root\&.jks \-alias root \-ext bc:c\fP +.fi +.nf +\f3keytool \-genkeypair \-keystore ca\&.jks \-alias ca \-ext bc:c\fP +.fi +.nf +\f3keytool \-genkeypair \-keystore server\&.jks \-alias server\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3keytool \-keystore root\&.jks \-alias root \-exportcert \-rfc > root\&.pem\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3keytool \-storepass \-keystore ca\&.jks \-certreq \-alias ca |\fP +.fi +.nf +\f3 keytool \-storepass \-keystore root\&.jks\fP +.fi +.nf +\f3 \-gencert \-alias root \-ext BC=0 \-rfc > ca\&.pem\fP +.fi +.nf +\f3keytool \-keystore ca\&.jks \-importcert \-alias ca \-file ca\&.pem\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3keytool \-storepass \-keystore server\&.jks \-certreq \-alias server |\fP +.fi +.nf +\f3 keytool \-storepass \-keystore ca\&.jks \-gencert \-alias ca\fP +.fi +.nf +\f3 \-ext ku:c=dig,kE \-rfc > server\&.pem\fP +.fi +.nf +\f3cat root\&.pem ca\&.pem server\&.pem |\fP +.fi +.nf +\f3 keytool \-keystore server\&.jks \-importcert \-alias server\fP +.fi +.nf +\f3\fP +.fi +.sp +.SH TERMS +.TP +Keystore +A keystore is a storage facility for cryptographic keys and certificates\&. +.TP +Keystore entries +Keystores can have different types of entries\&. The two most applicable entry types for the \f3keytool\fR command include the following: + +\fIKey entries\fR: Each entry holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access\&. Typically, a key stored in this type of entry is a secret key, or a private key accompanied by the certificate chain for the corresponding public key\&. See Certificate Chains\&. The \f3keytool\fR command can handle both types of entries, while the \f3jarsigner\fR tool only handles the latter type of entry, that is private keys and their associated certificate chains\&. + +\fITrusted certificate entries\fR: Each entry contains a single public key certificate that belongs to another party\&. The entry is called a trusted certificate because the keystore owner trusts that the public key in the certificate belongs to the identity identified by the subject (owner) of the certificate\&. The issuer of the certificate vouches for this, by signing the certificate\&. +.TP +KeyStore aliases +All keystore entries (key and trusted certificate entries) are accessed by way of unique aliases\&. + +An alias is specified when you add an entity to the keystore with the \f3-genseckey\fR command to generate a secret key, the \f3-genkeypair\fR command to generate a key pair (public and private key), or the \f3-importcert\fR command to add a certificate or certificate chain to the list of trusted certificates\&. Subsequent \f3keytool\fR commands must use this same alias to refer to the entity\&. + +For example, you can use the alias \f3duke\fR to generate a new public/private key pair and wrap the public key into a self-signed certificate with the following command\&. See Certificate Chains\&. +.sp +.nf +\f3keytool \-genkeypair \-alias duke \-keypass dukekeypasswd\fP +.fi +.nf +\f3\fP +.fi +.sp + + +This example specifies an initial password of \f3dukekeypasswd\fR required by subsequent commands to access the private key associated with the alias \f3duke\fR\&. If you later want to change Duke\&'s private key password, use a command such as the following: +.sp +.nf +\f3keytool \-keypasswd \-alias duke \-keypass dukekeypasswd \-new newpass\fP +.fi +.nf +\f3\fP +.fi +.sp + + +This changes the password from \f3dukekeypasswd\fR to \f3newpass\fR\&. A password should not be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system\&. If you do not specify a required password option on a command line, then you are prompted for it\&. +.TP +KeyStore implementation +The \f3KeyStore\fR class provided in the \f3java\&.security\fR package supplies well-defined interfaces to access and modify the information in a keystore\&. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular type of keystore\&. + +Currently, two command-line tools (\f3keytool\fR and \f3jarsigner\fR) and a GUI-based tool named Policy Tool make use of keystore implementations\&. Because the \f3KeyStore\fR class is \f3public\fR, users can write additional security applications that use it\&. + +There is a built-in default implementation, provided by Oracle\&. It implements the keystore as a file with a proprietary keystore type (format) named JKS\&. It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password\&. + +Keystore implementations are provider-based\&. More specifically, the application interfaces supplied by \f3KeyStore\fR are implemented in terms of a Service Provider Interface (SPI)\&. That is, there is a corresponding abstract \f3KeystoreSpi\fR class, also in the \f3java\&.security package\fR, which defines the Service Provider Interface methods that providers must implement\&. The term \fIprovider\fR refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API\&. To provide a keystore implementation, clients must implement a provider and supply a \f3KeystoreSpi\fR subclass implementation, as described in How to Implement a Provider in the Java Cryptography Architecture at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/crypto/HowToImplAProvider\&.html + +Applications can choose different types of keystore implementations from different providers, using the \f3getInstance\fR factory method supplied in the \f3KeyStore\fR class\&. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore\&. Keystore implementations of different types are not compatible\&. + +The \f3keytool\fR command works on any file-based keystore implementation\&. It treats the keystore location that is passed to it at the command line as a file name and converts it to a \f3FileInputStream\fR, from which it loads the keystore information\&.)The \f3jarsigner\fR command can read a keystore from any location that can be specified with a URL\&. + +For \f3keytool\fR and \f3jarsigner\fR, you can specify a keystore type at the command line, with the \f3-storetype\fR option\&. For Policy Tool, you can specify a keystore type with the \fIKeystore\fR menu\&. + +If you do not explicitly specify a keystore type, then the tools choose a keystore implementation based on the value of the \f3keystore\&.type\fR property specified in the security properties file\&. The security properties file is called \f3java\&.security\fR, and resides in the security properties directory, \f3java\&.home\elib\esecurity\fR on Windows and \f3java\&.home/lib/security\fR on Oracle Solaris, where \f3java\&.home\fR is the runtime environment directory\&. The \f3jre\fR directory in the SDK or the top-level directory of the Java Runtime Environment (JRE)\&. + +Each tool gets the \f3keystore\&.type\fR value and then examines all the currently installed providers until it finds one that implements a keystores of that type\&. It then uses the keystore implementation from that provider\&.The \f3KeyStore\fR class defines a static method named \f3getDefaultType\fR that lets applications and applets retrieve the value of the \f3keystore\&.type\fR property\&. The following line of code creates an instance of the default keystore type as specified in the \f3keystore\&.type\fR property: +.sp +.nf +\f3KeyStore keyStore = KeyStore\&.getInstance(KeyStore\&.getDefaultType());\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The default keystore type is \f3jks\fR, which is the proprietary type of the keystore implementation provided by Oracle\&. This is specified by the following line in the security properties file: +.sp +.nf +\f3keystore\&.type=jks\fP +.fi +.nf +\f3\fP +.fi +.sp + + +To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type\&. For example, if you have a provider package that supplies a keystore implementation for a keystore type called \f3pkcs12\fR, then change the line to the following: +.sp +.nf +\f3keystore\&.type=pkcs12\fP +.fi +.nf +\f3\fP +.fi +.sp + + +\fINote:\fR Case does not matter in keystore type designations\&. For example, JKS would be considered the same as jks\&. +.TP +Certificate +A certificate (or public-key certificate) is a digitally signed statement from one entity (the issuer), saying that the public key and some other information of another entity (the subject) has some specific value\&. The following terms are related to certificates: + +\fIPublic Keys\fR: These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity\&. Public keys are used to verify signatures\&. + +\fIDigitally Signed\fR: If some data is digitally signed, then it is stored with the identity of an entity and a signature that proves that entity knows about the data\&. The data is rendered unforgeable by signing with the entity\&'s private key\&. + +\fIIdentity\fR: A known way of addressing an entity\&. In some systems, the identity is the public key, and in others it can be anything from an Oracle Solaris UID to an email address to an X\&.509 distinguished name\&. + +\fISignature\fR: A signature is computed over some data using the private key of an entity\&. The signer, which in the case of a certificate is also known as the issuer\&. + +\fIPrivate Keys\fR: These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it is supposed to be kept secret)\&. Private and public keys exist in pairs in all public key cryptography systems (also referred to as public key crypto systems)\&. In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key\&. Private keys are used to compute signatures\&. + +\fIEntity\fR: An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree\&. + +Public key cryptography requires access to users\&' public keys\&. In a large-scale networked environment, it is impossible to guarantee that prior relationships between communicating entities were established or that a trusted repository exists with all used public keys\&. Certificates were invented as a solution to this public key distribution problem\&. Now a Certification Authority (CA) can act as a trusted third party\&. CAs are entities such as businesses that are trusted to sign (issue) certificates for other entities\&. It is assumed that CAs only create valid and reliable certificates because they are bound by legal agreements\&. There are many public Certification Authorities, such as VeriSign, Thawte, Entrust, and so on\&. + +You can also run your own Certification Authority using products such as Microsoft Certificate Server or the Entrust CA product for your organization\&. With the \f3keytool\fR command, it is possible to display, import, and export certificates\&. It is also possible to generate self-signed certificates\&. + +The \f3keytool\fR command currently handles X\&.509 certificates\&. +.TP +X\&.509 Certificates +The X\&.509 standard defines what information can go into a certificate and describes how to write it down (the data format)\&. All the data in a certificate is encoded with two related standards called ASN\&.1/DER\&. Abstract Syntax Notation 1 describes data\&. The Definite Encoding Rules describe a single way to store and transfer that data\&. + +All X\&.509 certificates have the following data, in addition to the signature: + +\fIVersion\fR: This identifies which version of the X\&.509 standard applies to this certificate, which affects what information can be specified in it\&. Thus far, three versions are defined\&. The \f3keytool\fR command can import and export v1, v2, and v3 certificates\&. It generates v3 certificates\&. + +X\&.509 Version 1 has been available since 1988, is widely deployed, and is the most generic\&. + +X\&.509 Version 2 introduced the concept of subject and issuer unique identifiers to handle the possibility of reuse of subject or issuer names over time\&. Most certificate profile documents strongly recommend that names not be reused and that certificates should not make use of unique identifiers\&. Version 2 certificates are not widely used\&. + +X\&.509 Version 3 is the most recent (1996) and supports the notion of extensions where anyone can define an extension and include it in the certificate\&. Some common extensions are: KeyUsage (limits the use of the keys to particular purposes such as \f3signing-only\fR) and AlternativeNames (allows other identities to also be associated with this public key, for example\&. DNS names, email addresses, IP addresses)\&. Extensions can be marked critical to indicate that the extension should be checked and enforced or used\&. For example, if a certificate has the KeyUsage extension marked critical and set to \f3keyCertSign\fR, then when this certificate is presented during SSL communication, it should be rejected because the certificate extension indicates that the associated private key should only be used for signing certificates and not for SSL use\&. + +\fISerial number\fR: The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues\&. This information is used in numerous ways\&. For example, when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL)\&. + +\fISignature algorithm identifier\fR: This identifies the algorithm used by the CA to sign the certificate\&. + +\fIIssuer name\fR: The X\&.500 Distinguished Name of the entity that signed the certificate\&. See X\&.500 Distinguished Names\&. This is typically a CA\&. Using this certificate implies trusting the entity that signed this certificate\&. In some cases, such as root or top-level CA certificates, the issuer signs its own certificate\&. + +\fIValidity period\fR: Each certificate is valid only for a limited amount of time\&. This period is described by a start date and time and an end date and time, and can be as short as a few seconds or almost as long as a century\&. The validity period chosen depends on a number of factors, such as the strength of the private key used to sign the certificate, or the amount one is willing to pay for a certificate\&. This is the expected period that entities can rely on the public value, when the associated private key has not been compromised\&. + +\fISubject name\fR: The name of the entity whose public key the certificate identifies\&. This name uses the X\&.500 standard, so it is intended to be unique across the Internet\&. This is the X\&.500 Distinguished Name (DN) of the entity\&. See X\&.500 Distinguished Names\&. For example, +.sp +.nf +\f3CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US\fP +.fi +.nf +\f3\fP +.fi +.sp + + +These refer to the subject\&'s common name (CN), organizational unit (OU), organization (O), and country (C)\&. + +\fISubject public key information\fR: This is the public key of the entity being named with an algorithm identifier that specifies which public key crypto system this key belongs to and any associated key parameters\&. +.TP +Certificate Chains +The \f3keytool\fR command can create and manage keystore key entries that each contain a private key and an associated certificate chain\&. The first certificate in the chain contains the public key that corresponds to the private key\&. + +When keys are first generated, the chain starts off containing a single element, a self-signed certificate\&. See \f3-genkeypair\fR in Commands\&. A self-signed certificate is one for which the issuer (signer) is the same as the subject\&. The subject is the entity whose public key is being authenticated by the certificate\&. Whenever the \f3-genkeypair\fR command is called to generate a new public/private key pair, it also wraps the public key into a self-signed certificate\&. + +Later, after a Certificate Signing Request (CSR) was generated with the \f3-certreq\fR command and sent to a Certification Authority (CA), the response from the CA is imported with \f3-importcert\fR, and the self-signed certificate is replaced by a chain of certificates\&. See the \f3-certreq\fR and \f3-importcert\fR options in Commands\&. At the bottom of the chain is the certificate (reply) issued by the CA authenticating the subject\&'s public key\&. The next certificate in the chain is one that authenticates the CA\&'s public key\&. + +In many cases, this is a self-signed certificate, which is a certificate from the CA authenticating its own public key, and the last certificate in the chain\&. In other cases, the CA might return a chain of certificates\&. In this case, the bottom certificate in the chain is the same (a certificate signed by the CA, authenticating the public key of the key entry), but the second certificate in the chain is a certificate signed by a different CA that authenticates the public key of the CA you sent the CSR to\&. The next certificate in the chain is a certificate that authenticates the second CA\&'s key, and so on, until a self-signed root certificate is reached\&. Each certificate in the chain (after the first) authenticates the public key of the signer of the previous certificate in the chain\&. + +Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs)\&. In this case, the certificate chain must be established from trusted certificate information already stored in the keystore\&. + +A different reply format (defined by the PKCS #7 standard) includes the supporting certificate chain in addition to the issued certificate\&. Both reply formats can be handled by the \f3keytool\fR command\&. + +The top-level (root) CA certificate is self-signed\&. However, the trust into the root\&'s public key does not come from the root certificate itself, but from other sources such as a newspaper\&. This is because anybody could generate a self-signed certificate with the distinguished name of, for example, the VeriSign root CA\&. The root CA public key is widely known\&. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only used as a vehicle to transport the root CA\&'s public key\&. Before you add the root CA certificate to your keystore, you should view it with the \f3-printcert\fR option and compare the displayed fingerprint with the well-known fingerprint obtained from a newspaper, the root CA\&'s Web page, and so on\&. +.TP +The cacerts Certificates File +A certificates file named \f3cacerts\fR resides in the security properties directory, \f3java\&.home\elib\esecurity\fR on Windows and \f3java\&.home/lib/security\fR on Oracle Solaris, where \f3java\&.home\fR is the runtime environment\&'s directory, which would be the \f3jre\fR directory in the SDK or the top-level directory of the JRE\&. + +The \f3cacerts\fR file represents a system-wide keystore with CA certificates\&. System administrators can configure and manage that file with the \f3keytool\fR command by specifying \f3jks\fR as the keystore type\&. The \f3cacerts\fR keystore file ships with a default set of root CA certificates\&. You can list the default certificates with the following command: +.sp +.nf +\f3keytool \-list \-keystore java\&.home/lib/security/cacerts\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The initial password of the \f3cacerts\fR keystore file is \f3changeit\fR\&. System administrators should change that password and the default access permission of that file upon installing the SDK\&. + +\fINote:\fR It is important to verify your \f3cacerts\fR file\&. Because you trust the CAs in the \f3cacerts\fR file as entities for signing and issuing certificates to other entities, you must manage the \f3cacerts\fR file carefully\&. The \f3cacerts\fR file should contain only certificates of the CAs you trust\&. It is your responsibility to verify the trusted root CA certificates bundled in the \f3cacerts\fR file and make your own trust decisions\&. + +To remove an untrusted CA certificate from the \f3cacerts\fR file, use the \f3delete\fR option of the \f3keytool\fR command\&. You can find the \f3cacerts\fR file in the JRE installation directory\&. Contact your system administrator if you do not have permission to edit this file +.TP +Internet RFC 1421 Certificate Encoding Standard +Certificates are often stored using the printable encoding format defined by the Internet RFC 1421 standard, instead of their binary encoding\&. This certificate format, also known as Base64 encoding, makes it easy to export certificates to other applications by email or through some other mechanism\&. + +Certificates read by the \f3-importcert\fR and \f3-printcert\fR commands can be in either this format or binary encoded\&. The \f3-exportcert\fR command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, when the \f3-rfc\fR option is specified\&. + +The \f3-list\fR command by default prints the SHA1 fingerprint of a certificate\&. If the \f3-v\fR option is specified, then the certificate is printed in human-readable format\&. If the \f3-rfc\fR option is specified, then the certificate is output in the printable encoding format\&. + +In its printable encoding format, the encoded certificate is bounded at the beginning and end by the following text: +.sp +.nf +\f3\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3encoded certificate goes here\&. \fP +.fi +.nf +\f3\fP +.fi +.nf +\f3\-\-\-\-\-END CERTIFICATE\-\-\-\-\-\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +X\&.500 Distinguished Names +X\&.500 Distinguished Names are used to identify entities, such as those that are named by the \f3subject\fR and \f3issuer\fR (signer) fields of X\&.509 certificates\&. The \f3keytool\fR command supports the following subparts: + +\fIcommonName\fR: The common name of a person such as Susan Jones\&. + +\fIorganizationUnit\fR: The small organization (such as department or division) name\&. For example, Purchasing\&. + +\fIlocalityName\fR: The locality (city) name, for example, Palo Alto\&. + +\fIstateName\fR: State or province name, for example, California\&. + +\fIcountry\fR: Two-letter country code, for example, CH\&. + +When you supply a distinguished name string as the value of a \f3-dname\fR option, such as for the \f3-genkeypair\fR command, the string must be in the following format: +.sp +.nf +\f3CN=cName, OU=orgUnit, O=org, L=city, S=state, C=countryCode\fP +.fi +.nf +\f3\fP +.fi +.sp + + +All the italicized items represent actual values and the previous keywords are abbreviations for the following: +.sp +.nf +\f3CN=commonName\fP +.fi +.nf +\f3OU=organizationUnit\fP +.fi +.nf +\f3O=organizationName\fP +.fi +.nf +\f3L=localityName\fP +.fi +.nf +\f3S=stateName\fP +.fi +.nf +\f3C=country\fP +.fi +.nf +\f3\fP +.fi +.sp + + +A sample distinguished name string is: +.sp +.nf +\f3CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US\fP +.fi +.nf +\f3\fP +.fi +.sp + + +A sample command using such a string is: +.sp +.nf +\f3keytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino,\fP +.fi +.nf +\f3S=California, C=US" \-alias mark\fP +.fi +.nf +\f3\fP +.fi +.sp + + +Case does not matter for the keyword abbreviations\&. For example, CN, cn, and Cn are all treated the same\&. + +Order matters; each subcomponent must appear in the designated order\&. However, it is not necessary to have all the subcomponents\&. You can use a subset, for example: +.sp +.nf +\f3CN=Steve Meier, OU=Java, O=Oracle, C=US\fP +.fi +.nf +\f3\fP +.fi +.sp + + +If a distinguished name string value contains a comma, then the comma must be escaped by a backslash (\e) character when you specify the string on a command line, as in: +.sp +.nf +\f3cn=Peter Schuster, ou=Java\e, Product Development, o=Oracle, c=US\fP +.fi +.nf +\f3\fP +.fi +.sp + + +It is never necessary to specify a distinguished name string on a command line\&. When the distinguished name is needed for a command, but not supplied on the command line, the user is prompted for each of the subcomponents\&. In this case, a comma does not need to be escaped by a backslash (\e)\&. +.SH WARNINGS +.SS IMPORTING\ TRUSTED\ CERTIFICATES\ WARNING +\fIImportant\fR: Be sure to check a certificate very carefully before importing it as a trusted certificate\&. +.PP +Windows Example: + +View the certificate first with the \f3-printcert\fR command or the \f3-importcert\fR command without the \f3-noprompt\fR option\&. Ensure that the displayed certificate fingerprints match the expected ones\&. For example, suppose sends or emails you a certificate that you put it in a file named \f3\etmp\ecert\fR\&. Before you consider adding the certificate to your list of trusted certificates, you can execute a \f3-printcert\fR command to view its fingerprints, as follows: +.sp +.nf +\f3 keytool \-printcert \-file \etmp\ecert\fP +.fi +.nf +\f3 Owner: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fP +.fi +.nf +\f3 Issuer: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fP +.fi +.nf +\f3 Serial Number: 59092b34\fP +.fi +.nf +\f3 Valid from: Thu Sep 25 18:01:13 PDT 1997 until: Wed Dec 24 17:01:13 PST 1997\fP +.fi +.nf +\f3 Certificate Fingerprints:\fP +.fi +.nf +\f3 MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F\fP +.fi +.nf +\f3 SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE\fP +.fi +.nf +\f3 SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90:\fP +.fi +.nf +\f3 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4\fP +.fi +.sp + +.PP +Oracle Solaris Example: + +View the certificate first with the \f3-printcert\fR command or the \f3-importcert\fR command without the \f3-noprompt\fR option\&. Ensure that the displayed certificate fingerprints match the expected ones\&. For example, suppose someone sends or emails you a certificate that you put it in a file named \f3/tmp/cert\fR\&. Before you consider adding the certificate to your list of trusted certificates, you can execute a \f3-printcert\fR command to view its fingerprints, as follows: +.sp +.nf +\f3 keytool \-printcert \-file /tmp/cert\fP +.fi +.nf +\f3 Owner: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fP +.fi +.nf +\f3 Issuer: CN=ll, OU=ll, O=ll, L=ll, S=ll, C=ll\fP +.fi +.nf +\f3 Serial Number: 59092b34\fP +.fi +.nf +\f3 Valid from: Thu Sep 25 18:01:13 PDT 1997 until: Wed Dec 24 17:01:13 PST 1997\fP +.fi +.nf +\f3 Certificate Fingerprints:\fP +.fi +.nf +\f3 MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F\fP +.fi +.nf +\f3 SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE\fP +.fi +.nf +\f3 SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90:\fP +.fi +.nf +\f3 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4\fP +.fi +.nf +\f3\fP +.fi +.sp +Then call or otherwise contact the person who sent the certificate and compare the fingerprints that you see with the ones that they show\&. Only when the fingerprints are equal is it guaranteed that the certificate was not replaced in transit with somebody else\&'s certificate such as an attacker\&'s certificate\&. If such an attack took place, and you did not check the certificate before you imported it, then you would be trusting anything the attacker signed, for example, a JAR file with malicious class files inside\&. +.PP +\fINote:\fR It is not required that you execute a \f3-printcert\fR command before importing a certificate\&. This is because before you add a certificate to the list of trusted certificates in the keystore, the \f3-importcert\fR command prints out the certificate information and prompts you to verify it\&. You can then stop the import operation\&. However, you can do this only when you call the \f3-importcert\fR command without the \f3-noprompt\fR option\&. If the \f3-noprompt\fR option is specified, then there is no interaction with the user\&. +.SS PASSWORDS\ WARNING +Most commands that operate on a keystore require the store password\&. Some commands require a private/secret key password\&. Passwords can be specified on the command line in the \f3-storepass\fR and \f3-keypass\fR options\&. However, a password should not be specified on a command line or in a script unless it is for testing, or you are on a secure system\&. When you do not specify a required password option on a command line, you are prompted for it\&. +.SS CERTIFICATE\ CONFORMANCE\ WARNING +The Internet standard RFC 5280 has defined a profile on conforming X\&.509 certificates, which includes what values and value combinations are valid for certificate fields and extensions\&. See the standard at http://tools\&.ietf\&.org/rfc/rfc5280\&.txt +.PP +The \f3keytool\fR command does not enforce all of these rules so it can generate certificates that do not conform to the standard\&. Certificates that do not conform to the standard might be rejected by JRE or other applications\&. Users should ensure that they provide the correct options for \f3-dname\fR, \f3-ext\fR, and so on\&. +.SH NOTES +.SS IMPORT\ A\ NEW\ TRUSTED\ CERTIFICATE +Before you add the certificate to the keystore, the \f3keytool\fR command verifies it by attempting to construct a chain of trust from that certificate to a self-signed certificate (belonging to a root CA), using trusted certificates that are already available in the keystore\&. +.PP +If the \f3-trustcacerts\fR option was specified, then additional certificates are considered for the chain of trust, namely the certificates in a file named \f3cacerts\fR\&. +.PP +If the \f3keytool\fR command fails to establish a trust path from the certificate to be imported up to a self-signed certificate (either from the keystore or the \f3cacerts\fR file), then the certificate information is printed, and the user is prompted to verify it by comparing the displayed certificate fingerprints with the fingerprints obtained from some other (trusted) source of information, which might be the certificate owner\&. Be very careful to ensure the certificate is valid before importing it as a trusted certificate\&. See Importing Trusted Certificates Warning\&. The user then has the option of stopping the import operation\&. If the \f3-noprompt\fR option is specified, then there is no interaction with the user\&. +.SS IMPORT\ A\ CERTIFICATE\ REPLY +When you import a certificate reply, the certificate reply is validated with trusted certificates from the keystore, and optionally, the certificates configured in the \f3cacerts\fR keystore file when the \f3-trustcacert\fR\f3s\fR option is specified\&. See The cacerts Certificates File\&. +.PP +The methods of determining whether the certificate reply is trusted are as follows: +.TP 0.2i +\(bu +If the reply is a single X\&.509 certificate, then the \f3keytool\fR command attempts to establish a trust chain, starting at the certificate reply and ending at a self-signed certificate (belonging to a root CA)\&. The certificate reply and the hierarchy of certificates is used to authenticate the certificate reply from the new certificate chain of aliases\&. If a trust chain cannot be established, then the certificate reply is not imported\&. In this case, the \f3keytool\fR command does not print the certificate and prompt the user to verify it, because it is very difficult for a user to determine the authenticity of the certificate reply\&. +.TP 0.2i +\(bu +If the reply is a PKCS #7 formatted certificate chain or a sequence of X\&.509 certificates, then the chain is ordered with the user certificate first followed by zero or more CA certificates\&. If the chain ends with a self-signed root CA certificate and the\f3-trustcacerts\fR option was specified, the \f3keytool\fR command attempts to match it with any of the trusted certificates in the keystore or the \f3cacerts\fR keystore file\&. If the chain does not end with a self-signed root CA certificate and the \f3-trustcacerts\fR option was specified, the \f3keytool\fR command tries to find one from the trusted certificates in the keystore or the \f3cacerts\fR keystore file and add it to the end of the chain\&. If the certificate is not found and the \f3-noprompt\fR option is not specified, the information of the last certificate in the chain is printed, and the user is prompted to verify it\&. +.PP +If the public key in the certificate reply matches the user\&'s public key already stored with \f3alias\fR, then the old certificate chain is replaced with the new certificate chain in the reply\&. The old chain can only be replaced with a valid \f3keypass\fR, and so the password used to protect the private key of the entry is supplied\&. If no password is provided, and the private key password is different from the keystore password, the user is prompted for it\&. +.PP +This command was named \f3-import\fR in earlier releases\&. This old name is still supported in this release\&. The new name, \f3-importcert\fR, is preferred going forward\&. +.SH SEE\ ALSO +.TP 0.2i +\(bu +jar(1) +.TP 0.2i +\(bu +jarsigner(1) +.TP 0.2i +\(bu +Trail: Security Features in Java SE at http://docs\&.oracle\&.com/javase/tutorial/security/index\&.html +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/pack200.1 b/.local/bin/IPMIView/jre/man/man1/pack200.1 new file mode 100755 index 0000000..667d367 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/pack200.1 @@ -0,0 +1,290 @@ +'\" t +.\" Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Arch: generic +.\" Software: JDK 8 +.\" Date: 21 November 2013 +.\" SectDesc: Java Deployment Tools +.\" Title: pack200.1 +.\" +.if n .pl 99999 +.TH pack200 1 "21 November 2013" "JDK 8" "Java Deployment Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- + +.SH NAME +pack200 \- Packages a JAR file into a compressed pack200 file for web deployment\&. +.SH SYNOPSIS +.sp +.nf + +\fBpack200\fR [\fIoptions\fR] \fIoutput\-file\fR \fIJAR\-file\fR +.fi +.sp +Options can be in any order\&. The last option on the command line or in a properties file supersedes all previously specified options\&. +.TP +\fIoptions\fR +The command-line options\&. See Options\&. +.TP +\fIoutput-file\fR +Name of the output file\&. +.TP +\fIJAR-file\fR +Name of the input file\&. +.SH DESCRIPTION +The \f3pack200\fR command is a Java application that transforms a JAR file into a compressed pack200 file with the Java gzip compressor\&. The pack200 files are highly compressed files that can be directly deployed to save bandwidth and reduce download time\&. +.PP +The \f3pack200\fR command has several options to fine-tune and set the compression engine\&. The typical usage is shown in the following example, where \f3myarchive\&.pack\&.gz\fR is produced with the default \f3pack200\fR command settings: +.sp +.nf +\f3pack200 myarchive\&.pack\&.gz myarchive\&.jar\fP +.fi +.nf +\f3\fP +.fi +.sp +.SH OPTIONS +.TP +-r, --repack +.br +Produces a JAR file by packing and unpacking a JAR file\&. The resulting file can be used as an input to the \f3jarsigner\fR(1) tool\&. The following example packs and unpacks the myarchive\&.jar file: +.sp +.nf +\f3pack200 \-\-repack myarchive\-packer\&.jar myarchive\&.jar\fP +.fi +.nf +\f3pack200 \-\-repack myarchive\&.jar\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The following example preserves the order of files in the input file\&. +.TP +-g, --no-gzip +.br +Produces a \f3pack200\fR file\&. With this option, a suitable compressor must be used, and the target system must use a corresponding decompresser\&. +.sp +.nf +\f3pack200 \-\-no\-gzip myarchive\&.pack myarchive\&.jar\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-G, --strip-debug +.br +Strips debugging attributes from the output\&. These include \f3SourceFile\fR, \f3LineNumberTable\fR, \f3LocalVariableTable\fR and \f3LocalVariableTypeTable\fR\&. Removing these attributes reduces the size of both downloads and installations, but reduces the usefulness of debuggers\&. +.TP +--keep-file-order +.br +Preserve the order of files in the input file\&. This is the default behavior\&. +.TP +-O, --no-keep-file-order +.br +The packer reorders and transmits all elements\&. The packer can also remove JAR directory names to reduce the download size\&. However, certain JAR file optimizations, such as indexing, might not work correctly\&. +.TP +-S\fIvalue\fR , --segment-limit=\fIvalue\fR +.br +The value is the estimated target size \fIN\fR (in bytes) of each archive segment\&. If a single input file requires more than \fIN\fR bytes, then its own archive segment is provided\&. As a special case, a value of \f3-1\fR produces a single large segment with all input files, while a value of 0 produces one segment for each class\&. Larger archive segments result in less fragmentation and better compression, but processing them requires more memory\&. + +The size of each segment is estimated by counting the size of each input file to be transmitted in the segment with the size of its name and other transmitted properties\&. + +The default is -1, which means that the packer creates a single segment output file\&. In cases where extremely large output files are generated, users are strongly encouraged to use segmenting or break up the input file into smaller JARs\&. + +A 10 MB JAR packed without this limit typically packs about 10 percent smaller, but the packer might require a larger Java heap (about 10 times the segment limit)\&. +.TP +-E\fIvalue\fR , --effort=\fIvalue\fR +.br +If the value is set to a single decimal digit, then the packer uses the indicated amount of effort in compressing the archive\&. Level 1 might produce somewhat larger size and faster compression speed, while level 9 takes much longer, but can produce better compression\&. The special value 0 instructs the \f3pack200\fR command to copy through the original JAR file directly with no compression\&. The JSR 200 standard requires any unpacker to understand this special case as a pass-through of the entire archive\&. + +The default is 5, to invest a modest amount of time to produce reasonable compression\&. +.TP +-H\fIvalue\fR , --deflate-hint=\fIvalue\fR +.br +Overrides the default, which preserves the input information, but can cause the transmitted archive to be larger\&. The possible values are: \f3true\fR, \f3false\fR, or \f3keep\fR\&. + +If the \f3value\fR is \f3true\fR or false, then the \f3packer200\fR command sets the deflation hint accordingly in the output archive and does not transmit the individual deflation hints of archive elements\&. + +The \f3keep\fR value preserves deflation hints observed in the input JAR\&. This is the default\&. +.TP +-m\fIvalue\fR , --modification-time=\fIvalue\fR +.br +The possible values are \f3latest\fR and \f3keep\fR\&. + +If the value is latest, then the packer attempts to determine the latest modification time, among all the available entries in the original archive, or the latest modification time of all the available entries in that segment\&. This single value is transmitted as part of the segment and applied to all the entries in each segment\&. This can marginally decrease the transmitted size of the archive at the expense of setting all installed files to a single date\&. + +If the value is \f3keep\fR, then modification times observed in the input JAR are preserved\&. This is the default\&. +.TP +-P\fIfile\fR , --pass-file=\fIfile\fR +.br +Indicates that a file should be passed through bytewise with no compression\&. By repeating the option, multiple files can be specified\&. There is no pathname transformation, except that the system file separator is replaced by the JAR file separator forward slash (/)\&. The resulting file names must match exactly as strings with their occurrences in the JAR file\&. If \f3file\fR is a directory name, then all files under that directory are passed\&. +.TP +-U\fIaction\fR , --unknown-attribute=\fIaction\fR +.br +Overrides the default behavior, which means that the class file that contains the unknown attribute is passed through with the specified \f3action\fR\&. The possible values for actions are \f3error\fR, \f3strip\fR, or \f3pass\fR\&. + +If the value is \f3error\fR, then the entire \f3pack200\fR command operation fails with a suitable explanation\&. + +If the value is \f3strip\fR, then the attribute is dropped\&. Removing the required Java Virtual Machine (JVM) attributes can cause class loader failures\&. + +If the value is \f3pass\fR, then the entire class is transmitted as though it is a resource\&. +.TP +.nf +-C\fIattribute-name\fR=\fIlayout\fR , --class-attribute=\fIattribute-name\fR=\fIaction\fR +.br +.fi +See next option\&. +.TP +.nf +-F\fIattribute-name\fR=\fIlayout\fR , --field-attribute=\fIattribute-name\fR=\fIaction\fR +.br +.fi +See next option\&. +.TP +.nf +-M\fIattribute-name\fR=\fIlayout\fR , --method-attribute=\fIattribute-name\fR=\fIaction\fR +.br +.fi +See next option\&. +.TP +.nf +-D\fIattribute-name\fR=\fIlayout\fR , --code-attribute=\fIattribute-name\fR=\fIaction\fR +.br +.fi +With the previous four options, the attribute layout can be specified for a class entity, such as \f3class-attribute\fR, \f3field-attribute\fR, \f3method-attribute\fR, and \f3code-attribute\fR\&. The \fIattribute-name\fR is the name of the attribute for which the layout or action is being defined\&. The possible values for \fIaction\fR are \f3some-layout-string\fR, \f3error\fR, \f3strip\fR, \f3pass\fR\&. + +\f3some-layout-string\fR: The layout language is defined in the JSR 200 specification, for example: \f3--class-attribute=SourceFile=RUH\fR\&. + +If the value is \f3error\fR, then the \f3pack200\fR operation fails with an explanation\&. + +If the value is \f3strip\fR, then the attribute is removed from the output\&. Removing JVM-required attributes can cause class loader failures\&. For example, \f3--class-attribute=CompilationID=pass\fR causes the class file that contains this attribute to be passed through without further action by the packer\&. + +If the value is \f3pass\fR, then the entire class is transmitted as though it is a resource\&. +.TP +-f \fIpack\&.properties\fR , --config-file=\fIpack\&.properties\fR +.br +A configuration file, containing Java properties to initialize the packer, can be specified on the command line\&. +.sp +.nf +\f3pack200 \-f pack\&.properties myarchive\&.pack\&.gz myarchive\&.jar\fP +.fi +.nf +\f3more pack\&.properties\fP +.fi +.nf +\f3# Generic properties for the packer\&.\fP +.fi +.nf +\f3modification\&.time=latest\fP +.fi +.nf +\f3deflate\&.hint=false\fP +.fi +.nf +\f3keep\&.file\&.order=false\fP +.fi +.nf +\f3# This option will cause the files bearing new attributes to\fP +.fi +.nf +\f3# be reported as an error rather than passed uncompressed\&.\fP +.fi +.nf +\f3unknown\&.attribute=error\fP +.fi +.nf +\f3# Change the segment limit to be unlimited\&.\fP +.fi +.nf +\f3segment\&.limit=\-1\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-v, --verbose +.br +Outputs minimal messages\&. Multiple specification of this option will create more verbose messages\&. +.TP +-q, --quiet +.br +Specifies quiet operation with no messages\&. +.TP +-l\fIfilename\fR , --log-file=\fIfilename\fR +.br +Specifies a log file to output messages\&. +.TP +-?, -h, --help +.br +Prints help information about this command\&. +.TP +-V, --version +.br +Prints version information about this command\&. +.TP +-J\fIoption\fR +.br +Passes the specified option to the Java Virtual Machine\&. For more information, see the reference page for the java(1) command\&. For example, \f3-J-Xms48m\fR sets the startup memory to 48 MB\&. +.SH EXIT\ STATUS +The following exit values are returned: 0 for successful completion and a number greater than 0 when an error occurs\&. +.SH NOTES +This command should not be confused with \f3pack\fR(1)\&. The \f3pack\fR and \f3pack200\fR commands are separate products\&. +.PP +The Java SE API Specification provided with the JDK is the superseding authority, when there are discrepancies\&. +.SH SEE\ ALSO +.TP 0.2i +\(bu +unpack200(1) +.TP 0.2i +\(bu +jar(1) +.TP 0.2i +\(bu +jarsigner(1) +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/rmid.1 b/.local/bin/IPMIView/jre/man/man1/rmid.1 new file mode 100755 index 0000000..4d8e3dd --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/rmid.1 @@ -0,0 +1,314 @@ +'\" t +.\" Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Arch: generic +.\" Software: JDK 8 +.\" Date: 21 November 2013 +.\" SectDesc: Remote Method Invocation (RMI) Tools +.\" Title: rmid.1 +.\" +.if n .pl 99999 +.TH rmid 1 "21 November 2013" "JDK 8" "Remote Method Invocation (RMI) Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- + +.SH NAME +rmid \- Starts the activation system daemon that enables objects to be registered and activated in a Java Virtual Machine (JVM)\&. +.SH SYNOPSIS +.sp +.nf + +\fBrmid\fR [\fIoptions\fR] +.fi +.sp +.TP +\fIoptions\fR +The command-line options\&. See Options\&. +.SH DESCRIPTION +The \f3rmid\fR command starts the activation system daemon\&. The activation system daemon must be started before activatable objects can be either registered with the activation system or activated in a JVM\&. For details on how to write programs that use activatable objects, the \fIUsing Activation\fR tutorial at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/rmi/activation/overview\&.html +.PP +Start the daemon by executing the \f3rmid\fR command and specifying a security policy file, as follows: +.sp +.nf +\f3rmid \-J\-Djava\&.security\&.policy=rmid\&.policy\fP +.fi +.nf +\f3\fP +.fi +.sp +When you run Oracle\(cqs implementation of the \f3rmid\fR command, by default you must specify a security policy file so that the \f3rmid\fR command can verify whether or not the information in each \f3ActivationGroupDesc\fR is allowed to be used to start a JVM for an activation group\&. Specifically, the command and options specified by the \f3CommandEnvironment\fR and any properties passed to an \f3ActivationGroupDesc\fR constructor must now be explicitly allowed in the security policy file for the \f3rmid\fR command\&. The value of the \f3sun\&.rmi\&.activation\&.execPolicy\fR property dictates the policy that the \f3rmid\fR command uses to determine whether or not the information in an \f3ActivationGroupDesc\fR can be used to start a JVM for an activation group\&. For more information see the description of the -J-Dsun\&.rmi\&.activation\&.execPolicy=policy option\&. +.PP +Executing the \f3rmid\fR command starts the Activator and an internal registry on the default port1098 and binds an \f3ActivationSystem\fR to the name \f3java\&.rmi\&.activation\&.ActivationSystem\fR in this internal registry\&. +.PP +To specify an alternate port for the registry, you must specify the \f3-port\fR option when you execute the \f3rmid\fR command\&. For example, the following command starts the activation system daemon and a registry on the registry\&'s default port, 1099\&. +.sp +.nf +\f3rmid \-J\-Djava\&.security\&.policy=rmid\&.policy \-port 1099\fP +.fi +.nf +\f3\fP +.fi +.sp +.SH START\ RMID\ ON\ DEMAND +An alternative to starting \f3rmid\fR from the command line is to configure \f3inetd\fR (Oracle Solaris) or \f3xinetd\fR (Linux) to start \f3rmid\fR on demand\&. +.PP +When RMID starts, it attempts to obtain an inherited channel (inherited from \f3inetd\fR/\f3xinetd\fR) by calling the \f3System\&.inheritedChannel\fR method\&. If the inherited channel is null or not an instance of \f3java\&.nio\&.channels\&.ServerSocketChannel\fR, then RMID assumes that it was not started by \f3inetd\fR/\f3xinetd\fR, and it starts as previously described\&. +.PP +If the inherited channel is a \f3ServerSocketChannel\fR instance, then RMID uses the \f3java\&.net\&.ServerSocket\fR obtained from the \f3ServerSocketChannel\fR as the server socket that accepts requests for the remote objects it exports: The registry in which the \f3java\&.rmi\&.activation\&.ActivationSystem\fR is bound and the \f3java\&.rmi\&.activation\&.Activator\fR remote object\&. In this mode, RMID behaves the same as when it is started from the command line, except in the following cases: +.TP 0.2i +\(bu +Output printed to \f3System\&.err\fR is redirected to a file\&. This file is located in the directory specified by the \f3java\&.io\&.tmpdir\fR system property (typically \f3/var/tmp\fR or \f3/tmp\fR) with the prefix \f3rmid-err\fR and the suffix \f3tmp\fR\&. +.TP 0.2i +\(bu +The \f3-port\fR option is not allowed\&. If this option is specified, then RMID exits with an error message\&. +.TP 0.2i +\(bu +The \f3-log\fR option is required\&. If this option is not specified, then RMID exits with an error message +.PP +See the man pages for \f3inetd\fR (Oracle Solaris) or \f3xinetd\fR (Linux) for details on how to configure services to be started on demand\&. +.SH OPTIONS +.TP +-C\fIoption\fR +.br +Specifies an option that is passed as a command-line argument to each child process (activation group) of the \f3rmid\fR command when that process is created\&. For example, you could pass a property to each virtual machine spawned by the activation system daemon: +.sp +.nf +\f3rmid \-C\-Dsome\&.property=value\fP +.fi +.nf +\f3\fP +.fi +.sp + + +This ability to pass command-line arguments to child processes can be useful for debugging\&. For example, the following command enables server-call logging in all child JVMs\&. +.sp +.nf +\f3rmid \-C\-Djava\&.rmi\&.server\&.logCalls=true\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-J\fIoption\fR +.br +Specifies an option that is passed to the Java interpreter running RMID\&. For example, to specify that the \f3rmid\fR command use a policy file named \f3rmid\&.policy\fR, the \f3-J\fR option can be used to define the \f3java\&.security\&.policy\fR property on the \f3rmid\fR command line, for example: +.sp +.nf +\f3rmid \-J\-Djava\&.security\&.policy\-rmid\&.policy\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-J-Dsun\&.rmi\&.activation\&.execPolicy=\fIpolicy\fR +.br +Specifies the policy that RMID employs to check commands and command-line options used to start the JVM in which an activation group runs\&. Please note that this option exists only in Oracle\&'s implementation of the Java RMI activation daemon\&. If this property is not specified on the command line, then the result is the same as though \f3-J-Dsun\&.rmi\&.activation\&.execPolicy=default\fR were specified\&. The possible values of \f3policy\fR can be \f3default\fR, \f3policyClassName\fR, or \f3none\fR\&. +.RS +.TP 0.2i +\(bu +default + +The \f3default\fR or unspecified value \f3execPolicy\fR allows the \f3rmid\fR command to execute commands with specific command-line options only when the \f3rmid\fR command was granted permission to execute those commands and options in the security policy file that the \f3rmid\fR command uses\&. Only the default activation group implementation can be used with the default execution policy\&. + +The \f3rmid\fR command starts a JVM for an activation group with the information in the group\&'s registered activation group descriptor, an \f3ActivationGroupDesc\fR\&. The group descriptor specifies an optional \f3ActivationGroupDesc\&.CommandEnvironment\fR that includes the command to execute to start the activation group and any command-line options to be added to the command line\&. By default, the \f3rmid\fR command uses the \f3java\fR command found in \f3java\&.home\fR\&. The group descriptor also contains properties overrides that are added to the command line as options defined as: \f3-D=\fR\&.The \f3com\&.sun\&.rmi\&.rmid\&.ExecPermission\fR permission grants the \f3rmid\fR command permission to execute a command that is specified in the group descriptor\&'s \f3CommandEnvironment\fR to start an activation group\&. The \f3com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR permission enables the \f3rmid\fR command to use command-line options, specified as properties overrides in the group descriptor or as options in the \f3CommandEnvironment\fR when starting the activation group\&.When granting the \f3rmid\fR command permission to execute various commands and options, the permissions \f3ExecPermission\fR and \f3ExecOptionPermission\fR must be granted to all code sources\&. + +\fIExecPermission\fR + +The \f3ExecPermission\fR class represents permission for the \f3rmid\fR command to execute a specific command to start an activation group\&. + +\fISyntax\fR: The name of an \f3ExecPermission\fR is the path name of a command to grant the \f3rmid\fR command permission to execute\&. A path name that ends in a slash (/) and an asterisk (*) indicates that all of the files contained in that directory where slash is the file-separator character, \f3File\&.separatorChar\fR\&. A path name that ends in a slash (/) and a minus sign (-) indicates all files and subdirectories contained in that directory (recursively)\&. A path name that consists of the special token \f3<>\fR matches any file\&. + +A path name that consists of an asterisk (*) indicates all the files in the current directory\&. A path name that consists of a minus sign (-) indicates all the files in the current directory and (recursively) all files and subdirectories contained in the current directory\&. + +\fIExecOptionPermission\fR + +The \f3ExecOptionPermission\fR class represents permission for the \f3rmid\fR command to use a specific command-line option when starting an activation group\&. The name of an \f3ExecOptionPermission\fR is the value of a command-line option\&. + +\fISyntax\fR: Options support a limited wild card scheme\&. An asterisk signifies a wild card match, and it can appear as the option name itself (matches any option), or an asterisk (*) can appear at the end of the option name only when the asterisk (*) follows a dot (\&.) or an equals sign (=)\&. + +For example: \f3*\fR or \f3-Dmydir\&.*\fR or \f3-Da\&.b\&.c=*\fR is valid, but \f3*mydir\fR or \f3-Da*b\fR or \f3ab*\fR is not\&. + +\fIPolicy file for rmid\fR + +When you grant the \f3rmid\fR command permission to execute various commands and options, the permissions \f3ExecPermission\fR and \f3ExecOptionPermission\fR must be granted to all code sources (universally)\&. It is safe to grant these permissions universally because only the \f3rmid\fR command checks these permissions\&. + +An example policy file that grants various execute permissions to the \f3rmid\fR command is: +.sp +.nf +\f3grant {\fP +.fi +.nf +\f3 permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fP +.fi +.nf +\f3 "/files/apps/java/jdk1\&.7\&.0/solaris/bin/java";\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3 permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fP +.fi +.nf +\f3 "/files/apps/rmidcmds/*";\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3 permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fP +.fi +.nf +\f3 "\-Djava\&.security\&.policy=/files/policies/group\&.policy";\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3 permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fP +.fi +.nf +\f3 "\-Djava\&.security\&.debug=*";\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3 permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fP +.fi +.nf +\f3 "\-Dsun\&.rmi\&.*";\fP +.fi +.nf +\f3};\fP +.fi +.nf +\f3\fP +.fi +.sp + + +The first permission granted allows the \f3rmid\fR tcommand o execute the 1\&.7\&.0 release of the \f3java\fR command, specified by its explicit path name\&. By default, the version of the \f3java\fR command found in \f3java\&.home\fR is used (the same one that the \f3rmid\fR command uses), and does not need to be specified in the policy file\&. The second permission allows the \f3rmid\fR command to execute any command in the directory \f3/files/apps/rmidcmds\fR\&. + +The third permission granted, an \f3ExecOptionPermission\fR, allows the \f3rmid\fR command to start an activation group that defines the security policy file to be \f3/files/policies/group\&.policy\fR\&. The next permission allows the \f3java\&.security\&.debug property\fR to be used by an activation group\&. The last permission allows any property in the \f3sun\&.rmi property\fR name hierarchy to be used by activation groups\&. + +To start the \f3rmid\fR command with a policy file, the \f3java\&.security\&.policy\fR property needs to be specified on the \f3rmid\fR command line, for example: + +\f3rmid -J-Djava\&.security\&.policy=rmid\&.policy\fR\&. +.TP 0.2i +\(bu + + +If the default behavior is not flexible enough, then an administrator can provide, when starting the \f3rmid\fR command, the name of a class whose \f3checkExecCommand\fR method is executed to check commands to be executed by the \f3rmid\fR command\&. + +The \f3policyClassName\fR specifies a public class with a public, no-argument constructor and an implementation of the following \f3checkExecCommand\fR method: +.sp +.nf +\f3 public void checkExecCommand(ActivationGroupDesc desc, String[] command)\fP +.fi +.nf +\f3 throws SecurityException;\fP +.fi +.nf +\f3\fP +.fi +.sp + + +Before starting an activation group, the \f3rmid\fR command calls the policy\&'s \f3checkExecCommand\fR method and passes to it the activation group descriptor and an array that contains the complete command to start the activation group\&. If the \f3checkExecCommand\fR throws a \f3SecurityException\fR, then the \f3rmid\fR command does not start the activation group and an \f3ActivationException\fR is thrown to the caller attempting to activate the object\&. +.TP 0.2i +\(bu +none + +If the \f3sun\&.rmi\&.activation\&.execPolicy\fR property value is \f3none\fR, then the \f3rmid\fR command does not perform any validation of commands to start activation groups\&. +.RE + +.TP +-log \fIdir\fR +.br +Specifies the name of the directory the activation system daemon uses to write its database and associated information\&. The log directory defaults to creating a log, in the directory in which the \f3rmid\fR command was executed\&. +.TP +-port \fIport\fR +.br +Specifies the port the registry uses\&. The activation system daemon binds the \f3ActivationSystem\fR, with the name \f3java\&.rmi\&.activation\&.ActivationSystem\fR, in this registry\&. The \f3ActivationSystem\fR on the local machine can be obtained using the following \f3Naming\&.lookup\fR method call: +.sp +.nf +\f3import java\&.rmi\&.*; \fP +.fi +.nf +\f3 import java\&.rmi\&.activation\&.*;\fP +.fi +.nf +\f3\fP +.fi +.nf +\f3 ActivationSystem system; system = (ActivationSystem)\fP +.fi +.nf +\f3 Naming\&.lookup("//:port/java\&.rmi\&.activation\&.ActivationSystem");\fP +.fi +.nf +\f3\fP +.fi +.sp + +.TP +-stop +.br +Stops the current invocation of the \f3rmid\fR command for a port specified by the \f3-port\fR option\&. If no port is specified, then this option stops the \f3rmid\fR invocation running on port 1098\&. +.SH ENVIRONMENT\ VARIABLES +.TP +CLASSPATH +Used to provide the system a path to user-defined classes\&. Directories are separated by colons, for example: \f3\&.:/usr/local/java/classes\fR\&. +.SH SEE\ ALSO +.TP 0.2i +\(bu +java(1) +.TP 0.2i +\(bu +Setting the Class Path +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/rmiregistry.1 b/.local/bin/IPMIView/jre/man/man1/rmiregistry.1 new file mode 100755 index 0000000..822d376 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/rmiregistry.1 @@ -0,0 +1,98 @@ +'\" t +.\" Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Arch: generic +.\" Software: JDK 8 +.\" Date: 21 November 2013 +.\" SectDesc: Remote Method Invocation (RMI) Tools +.\" Title: rmiregistry.1 +.\" +.if n .pl 99999 +.TH rmiregistry 1 "21 November 2013" "JDK 8" "Remote Method Invocation (RMI) Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- + +.SH NAME +rmiregistry \- Starts a remote object registry on the specified port on the current host\&. +.SH SYNOPSIS +.sp +.nf + +\fBrmiregistry\fR [ \fIport\fR ] +.fi +.sp +.TP +\fIport\fR +The number of a \f3port\fR on the current host at which to start the remote object registry\&. +.SH DESCRIPTION +The \f3rmiregistry\fR command creates and starts a remote object registry on the specified port on the current host\&. If the port is omitted, then the registry is started on port 1099\&. The \f3rmiregistry\fR command produces no output and is typically run in the background, for example: +.sp +.nf +\f3rmiregistry &\fP +.fi +.nf +\f3\fP +.fi +.sp +A remote object registry is a bootstrap naming service that is used by RMI servers on the same host to bind remote objects to names\&. Clients on local and remote hosts can then look up remote objects and make remote method invocations\&. +.PP +The registry is typically used to locate the first remote object on which an application needs to call methods\&. That object then provides application-specific support for finding other objects\&. +.PP +The methods of the \f3java\&.rmi\&.registry\&.LocateRegistry\fR class are used to get a registry operating on the local host or local host and port\&. +.PP +The URL-based methods of the \f3java\&.rmi\&.Naming\fR class operate on a registry and can be used to look up a remote object on any host and on the local host\&. Bind a simple name (string) to a remote object, rebind a new name to a remote object (overriding the old binding), unbind a remote object, and list the URL bound in the registry\&. +.SH OPTIONS +.TP +-J +.br +Used with any Java option to pass the option following the \f3-J\fR (no spaces between the \f3-J\fR and the option) to the Java interpreter\&. +.SH SEE\ ALSO +.TP 0.2i +\(bu +java(1) +.TP 0.2i +\(bu +\f3java\&.rmi\&.registry\&.LocateRegistry\fR class description at http://docs\&.oracle\&.com/javase/8/docs/api/java/rmi/registry/LocateRegistry\&.html +.TP 0.2i +\(bu +\f3java\&.rmi\&.Naming class description\fR at http://docs\&.oracle\&.com/javase/8/docs/api/java/rmi/Naming\&.html +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/man/man1/unpack200.1 b/.local/bin/IPMIView/jre/man/man1/unpack200.1 new file mode 100755 index 0000000..22d63c0 --- /dev/null +++ b/.local/bin/IPMIView/jre/man/man1/unpack200.1 @@ -0,0 +1,137 @@ +'\" t +.\" Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. +.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +.\" +.\" This code is free software; you can redistribute it and/or modify it +.\" under the terms of the GNU General Public License version 2 only, as +.\" published by the Free Software Foundation. +.\" +.\" This code is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" version 2 for more details (a copy is included in the LICENSE file that +.\" accompanied this code). +.\" +.\" You should have received a copy of the GNU General Public License version +.\" 2 along with this work; if not, write to the Free Software Foundation, +.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +.\" or visit www.oracle.com if you need additional information or have any +.\" questions. +.\" +.\" Arch: generic +.\" Software: JDK 8 +.\" Date: 21 November 2013 +.\" SectDesc: Java Deployment Tools +.\" Title: unpack200.1 +.\" +.if n .pl 99999 +.TH unpack200 1 "21 November 2013" "JDK 8" "Java Deployment Tools" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- + +.SH NAME +unpack200 \- Transforms a packed file produced by pack200(1) into a JAR file for web deployment\&. +.SH SYNOPSIS +.sp +.nf + +\fBunpack200\fR [ \fIoptions\fR ] input\-file \fIJAR\-file\fR +.fi +.sp +.TP +\fIoptions\fR +The command-line options\&. See Options\&. +.TP +\fIinput-file\fR +Name of the input file, which can be a pack200 gzip file or a pack200 file\&. The input can also be JAR file produced by \f3pack200\fR(1) with an effort of \f30\fR, in which case the contents of the input file are copied to the output JAR file with the Pack200 marker\&. +.TP +\fIJAR-file\fR +Name of the output JAR file\&. +.SH DESCRIPTION +The \f3unpack200\fR command is a native implementation that transforms a packed file produced by \f3pack200\fR\f3(1)\fR into a JAR file\&. A typical usage follows\&. In the following example, the \f3myarchive\&.jar\fR file is produced from \f3myarchive\&.pack\&.gz\fR with the default \f3unpack200\fR command settings\&. +.sp +.nf +\f3unpack200 myarchive\&.pack\&.gz myarchive\&.jar\fP +.fi +.nf +\f3\fP +.fi +.sp +.SH OPTIONS +.TP +-Hvalue --deflate-hint=\fIvalue\fR +.br +Sets the deflation to be \f3true\fR, \f3false\fR, or \f3keep\fR on all entries within a JAR file\&. The default mode is \f3keep\fR\&. If the value is \f3true\fR or \f3false\fR, then the \f3--deflate=hint\fR option overrides the default behavior and sets the deflation mode on all entries within the output JAR file\&. +.TP +-r --remove-pack-file +.br +Removes the input pack file\&. +.TP +-v --verbose +.br +Displays minimal messages\&. Multiple specifications of this option displays more verbose messages\&. +.TP +-q --quiet +.br +Specifies quiet operation with no messages\&. +.TP +-lfilename --log-file=\fIfilename\fR +.br +Specifies a log file where output messages are logged\&. +.TP +-? -h --help +.br +Prints help information about the \f3unpack200\fR command\&. +.TP +-V --version +.br +Prints version information about the \f3unpack200\fR command\&. +.TP +-J\fIoption\fR +.br +Passes option to the Java Virtual Machine, where \f3option\fR is one of the options described on the reference page for the Java application launcher\&. For example, \f3-J-Xms48m\fR sets the startup memory to 48 MB\&. See java(1)\&. +.SH NOTES +This command should not be confused with the \f3unpack\fR command\&. They are distinctly separate products\&. +.PP +The Java SE API Specification provided with the JDK is the superseding authority in case of discrepancies\&. +.SH EXIT\ STATUS +The following exit values are returned: 0 for successful completion, and a value that is greater than 0 when an error occurred\&. +.SH SEE\ ALSO +.TP 0.2i +\(bu +pack200(1) +.TP 0.2i +\(bu +jar(1) +.TP 0.2i +\(bu +jarsigner(1) +.TP 0.2i +\(bu +Pack200 and Compression at http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/deployment/deployment-guide/pack200\&.html +.TP 0.2i +\(bu +The Java SE Technical Documentation page at http://docs\&.oracle\&.com/javase/ +.RE +.br +'pl 8.5i +'bp diff --git a/.local/bin/IPMIView/jre/release b/.local/bin/IPMIView/jre/release new file mode 100755 index 0000000..25f5864 --- /dev/null +++ b/.local/bin/IPMIView/jre/release @@ -0,0 +1,9 @@ +IMPLEMENTOR="Red Hat, Inc." +IMPLEMENTOR_VERSION="(Red_Hat-11.0.19.0.7-1)" +JAVA_VERSION="11.0.19" +JAVA_VERSION_DATE="2023-04-18" +LIBC="gnu" +MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.charsets jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.httpserver jdk.internal.ed jdk.internal.le jdk.internal.vm.compiler.management jdk.jdwp.agent jdk.jfr jdk.jsobject jdk.localedata jdk.management.agent jdk.management.jfr jdk.naming.dns jdk.naming.ldap jdk.naming.rmi jdk.net jdk.pack jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.xml.dom jdk.zipfs" +OS_ARCH="x86_64" +OS_NAME="Linux" +SOURCE=".:git:2081c00707d1+" diff --git a/.local/bin/IPMIView/lax.jar b/.local/bin/IPMIView/lax.jar new file mode 100755 index 0000000..af25c8e Binary files /dev/null and b/.local/bin/IPMIView/lax.jar differ diff --git a/.local/bin/IPMIView/libSharedLibrary32.so b/.local/bin/IPMIView/libSharedLibrary32.so new file mode 100755 index 0000000..a0aff4d Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary32.so differ diff --git a/.local/bin/IPMIView/libSharedLibrary64.jnilib b/.local/bin/IPMIView/libSharedLibrary64.jnilib new file mode 100755 index 0000000..a36d9f5 Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary64.jnilib differ diff --git a/.local/bin/IPMIView/libSharedLibrary64.so b/.local/bin/IPMIView/libSharedLibrary64.so new file mode 100755 index 0000000..a254229 Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary64.so differ diff --git a/.local/bin/IPMIView/libSharedLibrary_v11_32.so b/.local/bin/IPMIView/libSharedLibrary_v11_32.so new file mode 100755 index 0000000..a0aff4d Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary_v11_32.so differ diff --git a/.local/bin/IPMIView/libSharedLibrary_v11_64.jnilib b/.local/bin/IPMIView/libSharedLibrary_v11_64.jnilib new file mode 100755 index 0000000..941dc49 Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary_v11_64.jnilib differ diff --git a/.local/bin/IPMIView/libSharedLibrary_v11_64.so b/.local/bin/IPMIView/libSharedLibrary_v11_64.so new file mode 100755 index 0000000..b85add1 Binary files /dev/null and b/.local/bin/IPMIView/libSharedLibrary_v11_64.so differ diff --git a/.local/bin/IPMIView/libiKVM32.so b/.local/bin/IPMIView/libiKVM32.so new file mode 100755 index 0000000..98a814c Binary files /dev/null and b/.local/bin/IPMIView/libiKVM32.so differ diff --git a/.local/bin/IPMIView/libiKVM64.jnilib b/.local/bin/IPMIView/libiKVM64.jnilib new file mode 100755 index 0000000..a234c29 Binary files /dev/null and b/.local/bin/IPMIView/libiKVM64.jnilib differ diff --git a/.local/bin/IPMIView/libiKVM64.so b/.local/bin/IPMIView/libiKVM64.so new file mode 100755 index 0000000..a39f04f Binary files /dev/null and b/.local/bin/IPMIView/libiKVM64.so differ diff --git a/.local/bin/IPMIView/libiKVM_v11_32.so b/.local/bin/IPMIView/libiKVM_v11_32.so new file mode 100755 index 0000000..c73873b Binary files /dev/null and b/.local/bin/IPMIView/libiKVM_v11_32.so differ diff --git a/.local/bin/IPMIView/libiKVM_v11_64.jnilib b/.local/bin/IPMIView/libiKVM_v11_64.jnilib new file mode 100755 index 0000000..c50e82a Binary files /dev/null and b/.local/bin/IPMIView/libiKVM_v11_64.jnilib differ diff --git a/.local/bin/IPMIView/libiKVM_v11_64.so b/.local/bin/IPMIView/libiKVM_v11_64.so new file mode 100755 index 0000000..883432d Binary files /dev/null and b/.local/bin/IPMIView/libiKVM_v11_64.so differ diff --git a/.local/bin/IPMIView/smcrakp.properties b/.local/bin/IPMIView/smcrakp.properties new file mode 100644 index 0000000..0f09038 --- /dev/null +++ b/.local/bin/IPMIView/smcrakp.properties @@ -0,0 +1,2 @@ +#MyTitle +#Sat May 31 22:29:03 PDT 2025 diff --git a/.local/bin/IPMIView/sort.properties b/.local/bin/IPMIView/sort.properties new file mode 100644 index 0000000..e69de29 diff --git a/.local/bin/IPMIView/stunnel.properties b/.local/bin/IPMIView/stunnel.properties new file mode 100644 index 0000000..1a74f6a --- /dev/null +++ b/.local/bin/IPMIView/stunnel.properties @@ -0,0 +1,3 @@ +#MyTitle +#Wed May 29 21:46:04 PDT 2024 +vm_security=off diff --git a/.local/bin/IPMIView/timeout.properties b/.local/bin/IPMIView/timeout.properties new file mode 100644 index 0000000..47586a8 --- /dev/null +++ b/.local/bin/IPMIView/timeout.properties @@ -0,0 +1,2 @@ +5 +2 diff --git a/.local/bin/ipmiview b/.local/bin/ipmiview new file mode 100755 index 0000000..2350e02 --- /dev/null +++ b/.local/bin/ipmiview @@ -0,0 +1,2 @@ +#!/bin/bash +~/.local/bin/IPMIView/IPMIView20 diff --git a/.local/bin/mc b/.local/bin/mc new file mode 100755 index 0000000..34f9700 Binary files /dev/null and b/.local/bin/mc differ diff --git a/.profile b/.profile index f1ff09c..ba34100 100644 --- a/.profile +++ b/.profile @@ -31,3 +31,6 @@ if [ $(which nvim) ]; then export EDITOR=nvim fi +# Set zsh as the default shell if available +[ -e /bin/zsh ] && export SHELL=/bin/zsh +