Estoy usando Homebrew para instalar AdoptOpenJDK 11. Quiero ver la documentación a través de las páginas del manual.
Cuando ejecuto man java
, veo documentación de 2004. En la parte inferior:
SEE ALSO
javac(1), jdb(1), javah(1), jar(1),
See (or search java.sun.com) for the following:
The Java Extensions Framework @
http://java.sun.com/j2se/1.5.0/docs/guide/extensions/index.html
Security Features @
http://java.sun.com/j2se/1.5.0/docs/guide/security/index.html
23 June 2004 java(1)
Cuando ejecuto man javac
, veo documentación de 2002. En la parte inferior:
SEE ALSO
jar(1), java(1), javadoc(1), javah(1), javap(1), jdb(1)
See or search the Java web site for the following:
The Java Extensions Mechanism @
http://java.sun.com/j2se/1.5/docs/guide/extensions/index.html
05 March 2002 javac(1)
Encuentro la ubicación del java
manual:
man -w java
# /usr/share/man/man1/java.1
Veo que Homebrew está almacenando manuales para otro software: /usr/local/share/man
.
Basado en la fuente del barril, no veo las páginas de manual instaladas, pero no sé qué OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.pkg
está haciendo. Cuando ejecuto fswatch /usr/local/share/
mientras reinstalo adoptopenjdk11
, no veo ningún cambio.
brew cask cat adoptopenjdk11
# cask 'adoptopenjdk11' do
# version '11.0.8,10'
# sha256 'c9ce3e78a7ec7f8c23041af63a66bfe18bbf75c7bfa8f8a51148a098f3653699'
#
# url 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/# OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.pkg'
# appcast "https://github.com/AdoptOpenJDK/openjdk#{version.major}-binaries/releases/latest"
# name 'AdoptOpenJDK 11'
# homepage 'https://adoptopenjdk.net/'
# pkg 'OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.pkg'
# postflight do
# system_command '/usr/sbin/pkgutil', args: ['--pkg-info', 'net.adoptopenjdk.11.jdk'], print_stdout: true
# end
# uninstall pkgutil: 'net.adoptopenjdk.11.jdk'
# end
Leí ¿Están desactualizadas mis páginas man de macOS? , pero no creo que la respuesta se aplique aquí, porque Java no es una herramienta antigua de Unix, y he instalado Java con Homebrew.
Verifiqué que tengo instalada la última versión de AdoptOpenJDK 11:
brew reinstall adoptopenjdk11
# ==> Downloading https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.
# Already downloaded: /Users/alex.ordonez/Library/Caches/Homebrew/# downloads/1d0d41e7cf8f14ebb4df0ff39fa16e0fe2a1ac85f05ae404c62841c6ff01d4c8--OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.pkg
# ==> Verifying SHA-256 checksum for Cask 'adoptopenjdk11'.
# ==> Uninstalling Cask adoptopenjdk11
# ==> Uninstalling packages:
# net.adoptopenjdk.11.jdk
# ==> Purging files for version 11.0.8,10 of Cask adoptopenjdk11
# ==> Installing Cask adoptopenjdk11
# ==> Running installer for adoptopenjdk11; your password may be necessary.
# ==> Package installers may write to any location; options such as --appdir are ignored.
# installer: Package name is AdoptOpenJDK
# installer: Upgrading at base path /
# installer: The upgrade was successful.
# package-id: net.adoptopenjdk.11.jdk
# version: 11.0.8+10
# volume: /
# location: Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk#
Puedo verificar que las versiones son correctas:
java -version
# openjdk version "11.0.8" 2020-07-14
# OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
# OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
javac -version
# javac 11.0.8
Además, puedo compilar y ejecutar código Java 11.
Información adicional: estoy usando macOS Catalina 10.15.6 (19G2021). Mi caparazón es Fish. También tengo instalado AdoptOpenJDK 8.
Tengo una solución, pero si alguien encuentra una solución más simple, la aceptaré. Aquí esta el mio.
Recuerda, estoy usando pescado.
~/.config/fish/functions/java8.fish
function java8
if set --local idx (contains --index -- $JAVA_HOME $fish_user_paths)
# Remove other JAVA_HOME from path
# Otherwise it will take priority
set --erase fish_user_paths[$idx]
end
set --export JAVA_HOME /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
# We do not need JAVA_HOME on the path for the executables
# We need it for the man pages, so man will search $JAVA_HOME/man
# If we add $JAVA_HOME/bin to the path, then man erroneously searches $JAVA_HOME/bin/man
set fish_user_paths $fish_user_paths $JAVA_HOME
end
Copié y ajusté este script para Java 11 (abreviado):
~/.config/fish/functions/java11.fish
function java11
if set --local idx (contains --index -- $JAVA_HOME $fish_user_paths)
set --erase fish_user_paths[$idx]
end
set --export JAVA_HOME /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
set fish_user_paths $fish_user_paths $JAVA_HOME
end
Ahora mi fish_user_paths
(y PATH
) tiene JAVA_HOME
:
echo $fish_user_paths
# /usr/local/sbin /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
echo $PATH
# /usr/local/sbin /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home /usr/local/bin /usr/bin /bin /usr/sbin /sbin
Esto significa manpath
también tiene $JAVA_HOME/man
(abreviado):
manpath
# /usr/local/share/man:/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man:/usr/share/man
Y significa man
lecturas del directorio correcto:
man --path java
# /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man/man1/java.1
Y puedo cambiar a Java 8 y volver a Java 11:
java8
man --path java
# /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/man/man1/java.1
java11
man --path java
# /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man/man1/java.1
Hay un problema aparte, que es que JDK 11 parece enviarse con la documentación de JDK 8.
man -M /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man javac | tail -n 1
# JDK 8 03 March 2015 javac(1)
man
menos que use esta solución. AdoptOpenJDK 11, por otro lado, no se envía con las páginas de manual correctas y tampoco se encuentran a man
menos que use esta solución.
marc wilson
ordonezalex
/usr/local/share/man
. Veo páginas de manual que solo he instalado con homebrew allí.marc wilson
ordonezalex
fswatch /usr/local/share/
mientras reinstalaba adoptopenjdk11 y no vi ningún cambio. Veo las páginas del manual en/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man
, pero no en el manpath, a menos que use mi respuesta a continuación. Intenté investigar ayer, pero no pude encontrar cómo un barril Homebrew instalaría las páginas del manual.