2 votos

¿Cómo puedo actualizar las páginas del manual de java con Homebrew?

Estoy usando Homebrew para instalar AdoptOpenJDK 11. Quiero ver la documentación a través de las páginas del manual.

Síntomas

Cuando corro man java Veo la 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 corro 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)

Me parece que la ubicación de la java manual:

man -w java
# /usr/share/man/man1/java.1

Veo que Homebrew almacena manuales de otros programas: /usr/local/share/man .

Basado en la fuente de cask, no veo las páginas man instaladas, pero no sé qué OpenJDK11U-jdk_x64_mac_hotspot_11.0.8_10.pkg está haciendo. Cuando ejecuto fswatch /usr/local/share/ mientras se reinstala 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

Lo que he probado

Leo ¿Están anticuadas 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.

He comprobado 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 shell es Fish. También tengo instalado AdoptOpenJDK 8.

1voto

ordonezalex Puntos 101

Tengo una solución, pero si alguien encuentra una solución más sencilla, la aceptaré. Aquí está la mía.

Recuerda que 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

He copiado y ajustado 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 ) tienen 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 que 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 lee desde el 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 otro problema, y es que el JDK 11 parece venir con la documentación del JDK 8.

man -M /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/man javac | tail -n 1
# JDK 8                            03 March 2015                        javac(1)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X