我不知道将平台模块转换为独立JAR的任何“官方”方式。但是我相信您可以解压缩文件jdk-11/jmods/jdk.unsupported.desktop.jmod
并将其重新打包为JAR文件。
- 将
jdk-11/jmods/jdk.unsupported.desktop.jmod
复制到临时文件jdk.unsupported.desktop.zip
- 解压缩
jdk.unsupported.desktop.zip
- 将目录
jdk.unsupported.desktop/classes
中的类压缩为jdk.unsupported.desktop.jar
现在,如果将jdk.unsupported.desktop.jar
放在类路径中,它应该可以在JRE 11中使用。
,
我还有其他关于 java.desktop 模块的问题 - 如果我想深入了解模块系统,并且会尝试出于教育目的仅提取/分离该 java.desktop 模块的“javax.sound”部分以创建我自己的 javax在不需要整个 java.desktop 模块的 javafx 应用程序中使用的 .sound 模块 - 怎么做?我首先尝试重新编译 module-info.java 并在那里进行了预期的更改,但我还没有成功......是的,我知道这是唯一的学术辩论,因为我可能无法在任何地方重新分发它,对吗?
修改后的 module-info.java(由 javap 反编译)是这样的:(我不知道导入,我添加了它们并留在那里比现在需要的更多,但我的 javac 命令行仍然抱怨......
import javax.sound.midi.*;
import javax.sound.midi.spi.*;
import javax.sound.sampled.*;
import javax.sound.sampled.spi.*;
import com.sun.media.sound.*;
module javax.sound {
requires java.base;
requires java.prefs;
requires transitive java.datatransfer;
requires transitive java.xml;
exports javax.sound.midi;
exports javax.sound.midi.spi;
exports javax.sound.sampled;
exports javax.sound.sampled.spi;
uses javax.sound.midi.spi.MidiDeviceProvider;
uses javax.sound.midi.spi.MidiFileReader;
uses javax.sound.midi.spi.MidiFileWriter;
uses javax.sound.midi.spi.SoundbankReader;
uses javax.sound.sampled.spi.AudioFileReader;
uses javax.sound.sampled.spi.AudioFileWriter;
uses javax.sound.sampled.spi.FormatConversionProvider;
uses javax.sound.sampled.spi.MixerProvider;
provides javax.sound.midi.spi.MidiDeviceProvider with
com.sun.media.sound.MidiInDeviceProvider,com.sun.media.sound.MidiOutDeviceProvider,com.sun.media.sound.RealTimeSequencerProvider,com.sun.media.sound.SoftProvider;
provides javax.sound.midi.spi.MidiFileReader with
com.sun.media.sound.StandardMidiFileReader;
provides javax.sound.midi.spi.MidiFileWriter with
com.sun.media.sound.StandardMidiFileWriter;
provides javax.sound.midi.spi.SoundbankReader with
com.sun.media.sound.AudioFileSoundbankReader,com.sun.media.sound.DLSSoundbankReader,com.sun.media.sound.JARSoundbankReader,com.sun.media.sound.SF2SoundbankReader;
provides javax.sound.sampled.spi.AudioFileReader with
com.sun.media.sound.AiffFileReader,com.sun.media.sound.AuFileReader,com.sun.media.sound.SoftMidiAudioFileReader,com.sun.media.sound.WaveFileReader,com.sun.media.sound.WaveFloatFileReader,com.sun.media.sound.WaveExtensibleFileReader;
provides javax.sound.sampled.spi.AudioFileWriter with
com.sun.media.sound.AiffFileWriter,com.sun.media.sound.AuFileWriter,com.sun.media.sound.WaveFileWriter,com.sun.media.sound.WaveFloatFileWriter;
provides javax.sound.sampled.spi.FormatConversionProvider with
com.sun.media.sound.AlawCodec,com.sun.media.sound.AudioFloatFormatConverter,com.sun.media.sound.PCMtoPCMCodec,com.sun.media.sound.UlawCodec;
provides javax.sound.sampled.spi.MixerProvider with
com.sun.media.sound.DirectAudioDeviceProvider,com.sun.media.sound.PortMixerProvider;
}
这还不行:javac -p %JAVA_HOME\jmod% module-info.java
module-info.java:1: error: package javax.sound.midi is not visible
import javax.sound.midi.*;
^
(package javax.sound.midi is declared in the unnamed module,but module javax.sound does not read it)
module-info.java:2: error: package javax.sound.midi.spi is not visible
import javax.sound.midi.spi.*;
^
(package javax.sound.midi.spi is declared in the unnamed module,but module javax.sound does not read it)
module-info.java:3: error: package javax.sound.sampled is not visible
import javax.sound.sampled.*;
^
(package javax.sound.sampled is declared in the unnamed module,but module javax.sound does not read it)
module-info.java:4: error: package javax.sound.sampled.spi is not visible
import javax.sound.sampled.spi.*;
本文链接:https://www.f2er.com/3102722.html