2021.10.25,内容:CustomerView退出功能

客户信息管理软件:用户操作主模块实现
该代码段展示了`CustomerView`类的实现,它是客户信息管理软件的主模块。类中包含了显示菜单、处理用户输入、以及添加、修改、删除和列出客户信息的相关方法。用户可以选择相应操作,程序会根据选择执行对应的功能,直至用户选择退出。
package com.charles.p1.ui;

import com.charles.p1.service.CustomerList;
import com.charles.p1.util.CMUtility;

/**
 * 
 * @Description CustomerView为主模块,负责菜单的显示和处理用户操作
 * @author Charles
 * @version
 * @date 2021年10月21日下午13:26:40
 *
 */
public class CustomerView {
	private CustomerList customerList = new CustomerList(10);

	/**
	 * 显示客户信息管理软件界面的方法
	 */
	public void enterMainMenu() {

		boolean isFlag = true;
		while (isFlag) {
			System.out.println("\n--------------------客户信息管理软件--------------------\n");
			System.out.println("                         1 添加客户");
			System.out.println("                         2 修改客户");
			System.out.println("                         3 删除客户");
			System.out.println("                         4 客户列表");
			System.out.println("                         5 退    出\n");
			System.out.print("                          请选择(1-5):");

			char menu = CMUtility.readMenuSelection();
			switch (menu) {
			case '1':
				addNewCustomer();
				break;
			case '2':
				modifyCustomer();
				break;
			case '3':
				deleteCustomer();
				break;
			case '4':
				listAllCustomers();
				break;
			case '5':
				// System.out.println("退出");

				System.out.print("确认是否退出(Y/N):");
				char isExit = CMUtility.readConfirmSelection();
				if (isExit == 'Y') {
					isFlag = false;
				}

			}
		}

	}

	/**
	 * 添加客户的操作
	 */
	private void addNewCustomer() {
		System.out.println("添加客户的操作");
	}

	/**
	 * 修改客户的操作
	 */
	private void modifyCustomer() {
		System.out.println("修改客户的操作");
	}

	/**
	 * 删除客户的操作
	 */
	private void deleteCustomer() {
		System.out.println("删除客户的操纵");
	}

	/**
	 * 显示客户列表的操作
	 */
	private void listAllCustomers() {
		System.out.println("显示客户列表的操作");
	}

	public static void main(String[] args) {
		CustomerView view = new CustomerView();
		view.enterMainMenu();
	}
}

<think> 我们正在处理一个Windows系统上的Go编译程序兼容性问题。错误信息"CreateProcess error=216,该版本的 %1 与你运行的 Windows 版本不兼容"通常意味着我们试图运行一个为不同架构(如32位与64位)或不同操作系统版本编译的可执行文件。 根据用户描述,他是在目录 'D:\GoWorkstaion\modle' 下运行 'C:\Users\lii\AppData\Local\JetBrains\GoLand2023.1\tmp\GoLand\___go_build_customerView_go.exe' 时出现此错误。 首先,我们需要明确几点: 1. 用户的操作系统是64位还是32位?因为错误可能是由于尝试在32位系统上运行64位程序,或者反过来。 2. GoLand生成的这个可执行文件(___go_build_customerView_go.exe)是为哪个目标平台编译的? 然而,由于我们无法直接获取用户系统信息,我们可以通过以下步骤来排查和解决: 步骤1:检查操作系统架构 - 用户可以在Windows中按Win+R,输入“msinfo32”并回车,查看“系统类型”是x64还是x86(32位)。 步骤2:检查GoLand的编译目标设置 - 在GoLand中,默认情况下会为当前操作系统和架构生成可执行文件。但是,有时可能因为配置问题导致生成错误的可执行文件。 - 用户可以检查GoLand中的构建配置(Run Configuration)是否设置了正确的环境变量(如GOOS和GOARCH)。特别是,如果用户是64位系统,那么GOARCH应该为amd64;如果是32位系统,则为386。 步骤3:手动编译并指定目标平台 - 用户可以尝试在命令行中手动编译程序,并指定目标平台。 - 打开命令提示符(CMD)或PowerShell,进入项目目录(D:\GoWorkstaion\modle),然后执行: go build -o customerView.exe 这将在当前目录生成一个可执行文件。 - 然后尝试运行生成的customerView.exe,看是否出现同样的错误。 步骤4:如果手动编译可以运行,则可能是GoLand的临时构建目录的问题。 - 在GoLand中,默认的构建输出目录是临时目录(如C:\Users\lii\AppData\Local\JetBrains\...),有时临时目录的路径过长或包含特殊字符可能导致问题。 - 用户可以在GoLand的设置中更改构建输出目录:File | Settings | Build, Execution, Deployment | Build Tools | Go Build,然后修改“Output directory”为一个较短的路径(例如D:\build)。 步骤5:检查是否安装了正确版本的Go - 确保安装的Go版本与操作系统匹配(64位系统安装64位Go,32位系统安装32位Go)。 - 运行命令:`go version` 可以查看Go版本信息,同时也会显示架构(如windows/amd64表示64位,windows/386表示32位)。 步骤6:检查系统环境变量 - 确保PATH环境变量中包含了Go的安装路径(例如C:\Go\bin)且没有其他冲突的Go版本。 步骤7:以管理员身份运行 - 有时权限问题可能导致兼容性问题,可以尝试以管理员身份运行GoLand或命令行。 步骤8:检查程序依赖 - 如果程序使用了CGO,那么可能依赖于一些动态链接库(DLL),而这些DLL可能与系统不兼容。但根据错误信息,这个问题更可能是可执行文件本身的问题。 步骤9:检查Windows版本兼容性设置 - 右键点击可执行文件(___go_build_customerView_go.exe),选择“属性”,然后在“兼容性”选项卡中,尝试以兼容模式运行(例如选择Windows 7或8),并勾选“以管理员身份运行此程序”。 根据以上步骤,用户应该能定位到问题所在。最可能的原因是GoLand默认构建的可执行文件与用户系统架构不匹配(比如用户是32位系统,而构建的是64位程序)。 如果用户确认系统是64位,而Go安装的是64位,那么问题可能出在构建配置上。建议用户按照步骤2和步骤3进行手动构建测试。 最后,如果用户仍然无法解决,可以尝试重新安装与系统架构匹配的Go语言环境,并确保GoLand中配置的GOROOT指向正确的Go安装路径。 相关问题: 1. 如何查看Windows操作系统的位数? 2. 如何在GoLand中设置构建目标平台? 3. 如何使用Go命令手动编译程序? 4. 如何修改GoLand的构建输出目录? 5. 如何检查Go的安装版本和架构? 注意:由于用户的问题中引用了多个无关的引用(如Python代码、LaTeX公式等),但根据上下文,这些引用可能是系统错误引入的,我们应忽略它们,专注于用户最后的关于Go程序兼容性的问题。 </think> ### 解决 "CreateProcess error=216" 的完整指南 #### 问题分析 出现 `CreateProcess error=216` 错误通常表示可执行文件与当前 Windows 系统架构不兼容,常见原因包括: 1. **架构不匹配**:尝试在 32 位系统上运行 64 位程序(或反之) 2. **系统版本过低**:程序需要更高版本的 Windows(如 Win10 但系统是 Win7) 3. **编译配置错误**:GoLand 编译时使用了错误的 GOOS/GOARCH 参数 4. **路径问题**:特殊字符或超长路径导致执行失败(路径长度超过 260 字符限制) #### 解决方案步骤 ##### 1. **检查系统架构兼容性** ```powershell # 在 PowerShell 中运行 [System.Environment]::Is64BitOperatingSystem ``` - 若返回 `True` 表示 64 位系统,`False` 表示 32 位 - 确保编译目标架构匹配: ```bash # 检查 Go 编译配置 go env GOOS GOARCH ``` - 对于 64 位系统:`GOARCH=amd64` - 对于 32 位系统:`GOARCH=386` ##### 2. **修改 GoLand 构建配置** 在 GoLand 中: 1. 打开 `Run > Edit Configurations` 2. 在 `Build flags` 添加: ``` -ldflags="-s -w" -gcflags="all=-trimpath=${GOPATH}" -asmflags="all=-trimpath=${GOPATH}" ``` 3. 设置环境变量: ``` GOOS=windows GOARCH=amd64 # 根据实际系统修改 ``` ##### 3. **手动编译测试** ```bash cd D:\GoWorkstaion\modle set GOOS=windows set GOARCH=amd64 go build -o custom_build.exe .\custom_build.exe ``` - 若手动编译可运行,说明原问题在于 GoLand 的临时构建配置 ##### 4. **解决路径超限问题** ```powershell # 启用长路径支持(管理员权限运行) New-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled -Value 1 -Type DWORD -Force ``` - 或移动项目到短路径目录:`C:\projects\` ##### 5. **更新开发环境** 1. 升级 GoLand 到最新版 (2023.1+) 2. 更新 Go 工具链: ```bash go get -u all go mod tidy ``` ##### 6. **兼容模式运行(临时方案)** ![右键设置兼容模式](https://via.placeholder.com/400x200?text=兼容性设置示意图) 对 `___go_build_customerView_go.exe` 右键: - 属性 > 兼容性 > 勾选"以兼容模式运行程序" > 选择 Windows 8 - 勾选"以管理员身份运行" #### 预防措施 1. **在代码中明确架构**: ```go /* //go:build windows && amd64 */ package main ``` 2. **创建编译脚本** `build.bat`: ```batch @echo off SET GOOS=windows SET GOARCH=amd64 go build -o bin/main.exe ``` > 若以上步骤无效,可能是防病毒软件拦截执行,尝试临时禁用防护软件[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值