According to your comment,
if it's only the `MultipartFileWrapper.class.getField("multipartFile")` statement that might throw a `NoSuchFieldException`,
then when that happens, the lines that set `imageFormats` and `videoFormats` will not be reached, so these values will remain `null`, and the `if` conditions in the `catch` block are pointless.

Furthermore, it's good to minimize the scope of `try-catch` blocks.
Consider this reworked version:

    static {
        Field multipartFileField = null;
        try {
            multipartFileField = MultipartFileWrapper.class.getField("multipartFile");
        } catch (NoSuchFieldException e) {
            // maybe log that something bad happened?
        }
        if (multipartFileField != null) {
            Extensions annotation = multipartFileField.getAnnotation(Extensions.class);
            ACCEPTED_IMAGE_FORMATS = annotation.imageFormats();
            ACCEPTED_VIDEO_FORMATS = annotation.videoFormats();
        } else {
            ACCEPTED_IMAGE_FORMATS = new String[]{};
            ACCEPTED_VIDEO_FORMATS = new String[]{};
        }
    }

Here, I don't need to ask what might throw the `NoSuchFieldException`,
it's obvious, which is good.

As for avoiding the static initializer...
if you want to have static fields with non-trivial constants,
then there's just no other way,
you have no choice but to initialize them in a static initialization block like this.
Other option would be to give up the static fields,
make them non-static and initialize in the constructor.
But this probably won't make much sense,
since the field values come from static data (`MultipartFileWrapper.class`).