Разработайте решение в соответствии с тем, что вы хотите ...
Из класса, на который он вызван ...
получит две вещи, которыеgetResource
/ getResourceAsStream()
Итак, если вы сделаете
this.getClass().getResource("foo.txt");
, он попытается загрузить foo .txt из того же пакета, что и этот «класс», и с загрузчиком классов этого «класса». Если вы положили «/» спереди, вы абсолютно ссылаетесь на ресурс.
this.getClass().getResource("/x/y/z/foo.txt")
загрузит ресурс из загрузчика классов «this» и из пакета xyz (он должен быть в том же каталоге, что и классы в этом пакете).
Thread.currentThread().getContextClassLoader().getResource(name)
загружается загрузчиком контекстного класса, но не будет разрешать имя в соответствии с каким-либо пакетом (он должен быть абсолютно привязан)
System.class.getResource(name)
Будет загружен ресурс загрузчиком системного класса (он также должен быть абсолютно привязан, так как вы не сможете поместить что-либо в пакет java.lang (пакет System).
Просто взгляните на источник. Также указывает, что getResourceAsStream просто вызывает «openStream» по URL-адресу, возвращенному из getResource, и возвращает это.
См. https://apple.stackexchange.com/questions/8455 .suit не является папкой, но к ней можно обращаться как к папке. Чтобы открыть часть шрифта в файле .suit, используйте:
local file = io.open ("/ Library / Fonts / Maestro.suit / .. namedfork / rsrc", "rb")