- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [ ] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.7.4.1
* Java version: 1.8

### Actual Result

[https://github.com/apache/dubbo/blob/839d2a604e629ea9e96b964be09ae221e85312ba/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java#L175](https://github.com/apache/dubbo/blob/839d2a604e629ea9e96b964be09ae221e85312ba/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java#L175)

### Expected Result

```
guess version from jar file name if nothing's found from MANIFEST.MF
```
 **fro ==> from**




return version;
                }
            }
            
            CodeSource codeSource = cls.getProtectionDomain().getCodeSource();
            if (codeSource == null) {
                logger.info("No codeSource for class " + cls.getName() + " when getVersion, use default version " + defaultVersion);
                return defaultVersion;
            }
            String file = codeSource.getLocation().getFile();
            if (!StringUtils.isEmpty(file) && file.endsWith(".jar")) {
                version = getFromFile(file);
            }
            
            return StringUtils.isEmpty(version) ? defaultVersion : version;
        } catch (Throwable e) {
            
            logger.error("return default version, ignore exception " + e.getMessage(), e);
            return defaultVersion;
        }
    }
    /**
     * get version from file: path/to/group-module-x.y.z.jar, returns x.y.z
     */
    private static String getFromFile(String file) {
        
        file = file.substring(0, file.length() - 4);
        
        int i = file.lastIndexOf('/');
        if (i >= 0) {