Unable to find the VMX binary 'D:\新建文件夹\vmware-vmx.exe'.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unable to find the VMX binary 'D:\新建文件夹\vmware-vmx.exe'.相关的知识,希望对你有一定的参考价值。

VMware安装虚拟机完毕后,点开机出现以下提示,求大神解救!!!万分感谢!!!
Unable to find the VMX binary 'D:\新建文件夹\vmware-vmx.exe'.

VMware安装虚拟机完毕后,点开机出现以下提示,是设置错误造成的,解决方法如下:

1、打开计算机,找到虚拟机安装的盘,这里是r盘,所以打开r。

2、然后在打开的R盘中,点击顶部的工具文件夹选项。

3、在下图先点击查看,下拉找到隐藏后缀名的把它勾去掉后点击应用。这里已经是去掉了。

4、然后在根目录下拉就看到了vmx文件,右键它用note打开。

5、打开后,添加如下图这行文字smc.version = 0,然后点击保存,退出软件即可解决问题。

参考技术A 重新安装VMware workstation软件,请勿修改安装路径或安装后移动程序目录!本回答被提问者和网友采纳 参考技术B 1、首先要通过Win+R打开msconfig, 关掉所有的VMWare 相关运行程序。
2、以管理员的身份运行命令编辑器,运行sc delete VMAuthdService指令把不需要的删除VMAuthdService 服务。
3、在控制面板->程序->程序和功能中找到VMWare workstation点击进行“修复”(记得千万不要卸载),即可解决上述问题。
参考技术C 不用重新安装,软件只是找不到原来的安装路径,变回原来的安装路径就可以了 参考技术D 点击安装虚拟机的程序,里面有修复功能,别问我为啥知道,我刚就这样了,简直崩溃

Realm [*] was unable to find account data for the submitted AuthenticationToken

    使用shiro登录的系统,在dev环境一切正常,今天早上部署到test环境就报这个异常了。。。 

     网上搜了下,从shiro源码的 ModularRealmAuthenticator 里面的  doSingleRealmAuthentication 找到了异常原因

 

技术图片

 

 

 

刚开始不太明白,自己本地和dev环境都没问题,怎么这里就报错了那? 然后去看自己的实现shiro权限里面,忽然既然shiro里面说认证为空,会不会是查询数据库的数据没有没有存进去?

然后看了下自己的实现

package com.sq.transportmanage.gateway.service.common.shiro.realm;

import com.google.common.collect.Maps;
import com.sq.transportmanage.gateway.dao.entity.driverspark.CarAdmUser;
import com.sq.transportmanage.gateway.dao.entity.driverspark.SaasPermission;
import com.sq.transportmanage.gateway.dao.mapper.driverspark.ex.SaasPermissionExMapper;
import com.sq.transportmanage.gateway.dao.mapper.driverspark.ex.SaasRoleExMapper;
import com.sq.transportmanage.gateway.service.auth.MyDataSourceService;
import com.sq.transportmanage.gateway.service.common.constants.Constants;
import com.sq.transportmanage.gateway.service.common.constants.SaasConst;
import com.sq.transportmanage.gateway.service.common.dto.SaasPermissionDTO;
import com.sq.transportmanage.gateway.service.util.BeanUtil;
import com.sq.transportmanage.gateway.service.util.MD5Utils;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.security.NoSuchAlgorithmException;
import java.util.*;

/**认证  与  权限  **/

/**
 * 这个就是shiro SSOLogin 的用户获取的属性配置
 */
@Component
public class UsernamePasswordRealm extends AuthorizingRealm {
    private static final Logger logger = LoggerFactory.getLogger(UsernamePasswordRealm.class);

    @Autowired
    private MyDataSourceService myDataSourceService;

    @Autowired
    private SaasPermissionExMapper saasPermissionExMapper;

    @Autowired
    private SaasRoleExMapper saasRoleExMapper;
    
    /**重写:获取用户的身份认证信息**/
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException{
        logger.info( "[获取用户的身份认证信息开始]authenticationToken="+authenticationToken);
        try {
            UsernamePasswordToken token = (UsernamePasswordToken)authenticationToken;
            CarAdmUser adMUser = myDataSourceService.queryByAccount(token.getUsername());
            SSOLoginUser loginUser = new SSOLoginUser();  //当前登录的用户
            loginUser.setId( adMUser.getUserId() );                //用户ID
            loginUser.setLoginName( adMUser.getAccount() );//登录名
            loginUser.setMobile( adMUser.getPhone() );         //手机号码
            loginUser.setName( adMUser.getUserName() );    //真实姓名
            loginUser.setEmail(adMUser.getEmail()); //邮箱地址
            loginUser.setType(null);   //
            loginUser.setStatus( adMUser.getStatus() );           //状态
            loginUser.setAccountType( adMUser.getAccountType() );   //自有的帐号类型:[100 普通用户]、[900 管理员]
            loginUser.setLevel(adMUser.getLevel());
            loginUser.setMerchantId(adMUser.getMerchantId());
            loginUser.setSupplierIds(adMUser.getSuppliers());
            String md5= null;
            try {
                md5 = MD5Utils.getMD5DigestBase64(loginUser.getMerchantId().toString());
            } catch (NoSuchAlgorithmException e) {
                logger.info("sign error" + e);
            }
            if(Constants.MANAGE_MD5.equals(md5)){
                loginUser.setSuper(true);
            }else {
                loginUser.setSuper(false);
            }
            List<String> menuUrlList = saasPermissionExMapper.queryPermissionMenussOfUser(adMUser.getUserId());
            loginUser.setMenuUrlList(menuUrlList);
            /**当前用户所拥有的菜单权限**/
            List<Integer> permissionIds = saasPermissionExMapper.queryPermissionIdsOfUser(adMUser.getUserId());

            List<Byte> permissionTypes =  Arrays.asList( new Byte[] { SaasConst.PermissionType.MENU });

            Map<Integer,List<SaasPermissionDTO>> mapPermission = Maps.newHashMap();

            /**查询所有的一级菜单**/
            if(!CollectionUtils.isEmpty(permissionIds)){
                List<SaasPermission> permissionList = saasPermissionExMapper.queryModularPermissions(permissionIds);
                Map<Integer,String> map = Maps.newHashMap();
                permissionList.forEach(list ->{
                    map.put(list.getPermissionId(),list.getPermissionName());
                    //查询所有一级菜单下的子菜单 以树形结果返回
                    List<SaasPermissionDTO> menuPerms = this.getChildren( permissionIds , list.getPermissionId(), permissionTypes);
                    mapPermission.put(list.getPermissionId(),menuPerms);
                });

                loginUser.setMenuPermissionMap(map);
                loginUser.setMapPermission(mapPermission);
            }
            //




            //---------------------------------------------------------------------------------------------------------数据权限BEGIN

            logger.info( "[获取用户的身份认证信息]="+loginUser);
            return new SimpleAuthenticationInfo(loginUser, authenticationToken.getCredentials()  ,  this.getName() );
        } catch (Exception e) {
            logger.error("获取用户的身份认证信息异常",e);
            return null;
        }
    }


    /**
     * 查询每个一级菜单下的子菜单
     * @param permissionIds
     * @param parentPermissionId
     * @param permissionTypes  tree 树形,list 列表
     * @return
     */
    private List<SaasPermissionDTO> getChildren( List<Integer> permissionIds,  Integer parentPermissionId,  List<Byte> permissionTypes ){
        List<SaasPermission> childrenPos = saasPermissionExMapper.queryPermissions(permissionIds, parentPermissionId, null, permissionTypes, null, null);
        if(childrenPos==null || childrenPos.size()==0) {
            return null;
        }
        //递归
        List<SaasPermissionDTO> childrenDtos = BeanUtil.copyList(childrenPos, SaasPermissionDTO.class);
        Iterator<SaasPermissionDTO> iterator = childrenDtos.iterator();
        while (iterator.hasNext()) {
            SaasPermissionDTO childrenDto = iterator.next();
            List<SaasPermissionDTO> childs = this.getChildren( permissionIds, childrenDto.getPermissionId() ,  permissionTypes );
            childrenDto.setChildPermissions(childs);
        }
        return childrenDtos;
    }


    /**
     * 查询角色登录进来所拥有的菜单时候shiro实现
     * @param principalCollection
     * @return
     */
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        SSOLoginUser loginUser = (SSOLoginUser) principalCollection.getPrimaryPrincipal();
        String account = loginUser.getLoginName(); //登录名

        List<String> perms_string = saasPermissionExMapper.queryPermissionCodesOfUser(  loginUser.getId() );
        List<String> roles_string   = saasRoleExMapper.queryRoleCodesOfUser( loginUser.getId() );

        SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
        Set<String> roles = new HashSet<String>( roles_string );
        authorizationInfo.setRoles( roles );
        logger.info( "[获取用户授权信息(角色)] "+account+"="+roles);

        Set<String> perms = new HashSet<String>( perms_string );
        authorizationInfo.setStringPermissions(perms);
        logger.info( "[获取用户授权信息(权限)] "+account+"="+perms);
        return authorizationInfo;
    }

    @Override
    public Object getAuthorizationCacheKey(PrincipalCollection principals) {
        SSOLoginUser loginUser = (SSOLoginUser) principals.getPrimaryPrincipal();
        String account = loginUser.getLoginName(); //登录名
        return "-AuthInfo-"+account;
    }
    

    @Override
    public void clearCachedAuthorizationInfo(PrincipalCollection principals) {
        super.clearCachedAuthorizationInfo(principals);
    }
    @Override
    public void clearCachedAuthenticationInfo(PrincipalCollection principals) {
        super.clearCachedAuthenticationInfo(principals);
    }
    @Override
    public void clearCache(PrincipalCollection principals) {
        super.clearCache(principals);
    }
}

 

 

 再把本地的dev环境改成test环境的数据库地址,发现sql 报错了。。。

   test环境的一个表里面的字段和dev 不同。。。  初始化数据库字段错了。。 额  

 

修改后 登录正常了。。。。

以上是关于Unable to find the VMX binary 'D:\新建文件夹\vmware-vmx.exe'.的主要内容,如果未能解决你的问题,请参考以下文章

Unable to find the wrapper "https"错误的解决办法

linux编译内核make menuconfig报错Unable to find the ncurses libraries解决办法

错误记录编译 Linux 内核报错 ( Unable to find the ncurses package. )

Unable to find a single main class from the following candidates

Realm [*] was unable to find account data for the submitted AuthenticationToken

Unable to find the wrapper ”https” - did youforget to enable it when you configured PHP?