什么是定义?
下定义就是用简洁明了的语句揭示概念所反映的对象的本质属性。定义由三部分组成:被定义项、定义项和定义联项。
定义规则
定义项的外延和被定义项的外延具有同一关系;如果违反了这条规则就会犯“定义过宽”或“定义过窄”的错误。
定义项不能直接或间接包含被定义项;如果违反了这条规则就会犯“同语反复”或“循环定义”的错误。
有一些场景我们必须在windows机器上部署一些Java应用。如通过HTTP 调用小程序开发者工具提供了命令行与 HTTP 服务两种接口供外部调用,开发者可以通过命令行或 HTTP 请求指示工具进行登录、预览、上传等操作。
端口号文件位置提供了两种:一种是Mac,一种是Windows,我们在这里只考虑Windows,Windows的Port代理端口号读取:
~/AppData/Local/微信开发者工具/User Data/<开发者工具安装路径的MD5>/Default/.ide
那么用java -jar 在cmd.exe启动和以Windows 服务的方式启动有什么区别呢?有的同学会说Windows服务的方式启动会更加优雅。
Microsoft Windows 服务(过去称为 NT 服务):允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。还可以在与登录用户或默认计算机帐户不同的特定用户帐户的安全性上下文中运行服务。
我们再来看一下cmd.exe的定义:
The genuine cmd.exe file is a software component of Microsoft Windows Operating System by Microsoft Corporation.
真正的cmd.exe文件是微软公司开发的微软Windows操作系统的软件组件。
画外音:cmd.exe 只是操作系统的软件组件,不是纯粹的系统程序。
当然作为服务都可以用,如果访问挂载的NFA和NAS呢?先说结论:通过cmd.exe启动的,可以直接用挂载的路径或者挂载的盘直接访问。如果通过Windows服务的方式,必须通过Samba或者一些Client访问,不能通过挂载的盘路径直接访问。
回归到定义不难看出,Windows 服务账号的安全性控制,必须是本操作系统的,挂载的必须通过授权的方式去访问。cmd.exe只要是命令参数能访问的,都可以通过直接路径访问到。
下定义其实就是对一个事物的高度抽象和理解,如果我们对一个事物理解的不透彻,就回去看看它的定义,在充分的思想实验之后勇于试错。