mac下java如何java linux 执行命令令

mac下使用jenv管理切换jdk版本_MAC教程-织梦者
当前位置:&>&&>& > mac下使用jenv管理切换jdk版本
mac下使用jenv管理切换jdk版本
1、安装jenv
执行:curl -s get.jenv.io | bash
2、进入jenv目录,然后建相关目录:
cd ~/.jenv/candidates/
mkdir java
3、执行以下命令:
ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.6
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8
这里的1.6使用的路径是mac下默认的jdk路径,如果自己安装了1.6的路径可以改成/Library/Java/JavaVirtualMachines/目录下的jdk1.6
切换版本使用命令 jenv use java 1.8
设置默认版本命令 jenv default java 1.6
以上就是mac下使用jenv管理切换jdk版本的全文介绍,希望对您学习mac开发和使用有所帮助.
这些内容可能对你也有帮助
更多可查看MAC教程列表页。
猜您也会喜欢这些文章mac怎么运行.jar 程序? 自己在mac的eclipse里写了一个程序,可以在console_百度知道
mac怎么运行.jar 程序? 自己在mac的eclipse里写了一个程序,可以在console
mac怎么运行.jar 程序?自己在mac的eclipse里写了一个程序,可以在console里运行,然后export成runnable jar file,生成的jar文件,双击总是显示“未能启动java jar,请查看控制台”什么的。怎么回事?是mac不支持打开jar,还是我的导出方式有问题?
我有更好的答案
请问一下是怎么解决的我也遇到这个问题,使用终端java命令可以运行但是双击无法运行。。。可否告知~
采纳率:100%
java jar 你的jar
java -jar xxx.jar
不是双击运行的
在终端里面执行?
虽然最后发现是路径的问题,不过解决了,你也算给了一点重要提示。kanxia~
有错误的截图吗?
其他1条回答
为您推荐:
其他类似问题
eclipse的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您需要通过验证再能继续浏览 3秒后开始验证
丨 粤ICP备号-10 丨 新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!
(C) Joyslink Inc. All rights reserved 保留所有权利用纯JAVA语言编程读取MAC地址的实现
当前位置:&>&
用纯JAVA语言编程读取MAC地址的实现
发布时间: 16:22:12
&  1 引言
  用Java编写的程序,可以很方便地运行在各种平台的环境。但在实际的开发过程中,有时不得不涉及一些底层的编程。比如为了防止软件盗用,我们希望软件只能在指定计算机上运行,所以需要程序读取该机区分于其它计算机的硬件特征,如MAC地址等。作为一种跨平台语言,给Java语言提出了挑战。正是针对该问题,提出一种直接用纯Java语言,读去MAC地址的编程方法。
  我们知道,在每一个Java应用程序中都存在着一个与其运行环境相联系的Runtime对象。该对象可执行外部命令、查可用内存等。而多数操作系统都提供有查询该机MAC地址的命令。如在Microsoft的操作系统中,命令IPCONFIG等。的思路是在程序中运行一个外部命令,将该命令的运行结果作为一个流(Stream),读取并分析之,进而实现获取MAC地址的目的。
  2 Runtime类
  在每一个Java 应用程序里面,都有惟一的一个Runtime 对象。通过这个Runtime 对象,应用程序可以与其运行环境发生相互作用。
  一般不实例化一个Runtime对象。但是可以通过调用静态方法Runtime.getRuntime( )而获得对当前Runtime对象的引用。Runtime 类的大多数方法是实例方法。
  Runtime 对象的作用主要有:执行外部命令;返回空闲内存;运行垃圾回收器;加载动态库等。
  Applets和其他不可信赖的程序由于没有引起一个安全异常(SecurityException)而不能调用任何的Runtime方法。
  下面的例子演示了怎样使用Runtime 对象运行一个外部命令。
以下是引用片段:
Process&process&=&Runtime.getRuntime().exec(&cmd.exe&/c&dir&);&
process.waitFor();&
  Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的是等待子进程完成后再往下执行。
  上面的程序在运行时会执行dir命令。如果在Windows95/98下,命令格式可以写成&command.exe /c dir&。开关/C指明后面跟随的字符串是命令,并在执行命令后关闭DOS 窗口。
  方法exec还可以打开一个不可执行的程序,但该文件存在关联的应用程序。以打开一个word文档Mydoc.doc文件为例,Java中可以有以下两种写法
以下是引用片段:
exec(&&cmd&/E:ON&/c&start&MyDoc.doc&&);&
exec(&&c:Program&FilesMicrosoft&Officeofficewinword.exe&.mydoc.doc&);
  在第一种方式中,被执行的命令是start Mydoc.doc,开关E:ON 指定DOS 命令处理器允许命令扩展,而start 命令会开启一个单独的窗口执行所提供的命令。|||&
执行一个有标准输出的DOS命令,程序执行完后往往不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的原因可能是该命令的输出比较多,而运行窗口的输出缓冲区不够大。解决的办法是,利用Java的Process类提供的方法让Java虚拟机截获DOS运行的标准输出,在waitfor()命令之前读出该缓冲区的内容。以运行命令dir为例,典型的程序
以下是引用片段:
Process&process&=&Runtime.getRuntime().exec(&cmd&/c&dir&);&
BufferedReader&bufferedReader&=&new&BufferedReader&(&new&InputStreamReader(process.getInputStream()));&
while&(&(line&=&bufferedReader.readLine())&!=&-1)&System.&out.println(line);&
process.waitFor(&);&
:3&Process
  Runtime.exec方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。
  抽象类Process封装了一个进程(process),一个正在执行的程序。它主要被当作由Runtime类中的exec( )方法所创建的对象的类型的超类。在抽象类Process中,主要包含了如下一些抽象方法。
  InputStream getInputStream( ):返回一个从进程的out输出流中读输入的输入流。
  OutputStream getOutputStream( ):返回一个从进程的in输入流中写输出的输出流。
  int waitFor( ) throws InterruptedException:返回由进程返回的退出码。这个方法直到调用它的进程中止,才会返回。
  4 程序编写
  我们先来分析ipconfig/all的输出格式
以下是引用片段:
Process&process&=&Runtime.getRuntime().exec(&cmd&/c&ipconfig&/all&);&
BufferedReader&bufferedReader&=&
new&BufferedReader(new&InputStreamReader&(process.getInputStream()));&
while&(&(line=bufferedReader.readLine())&!=&null){&
if(line.indexOf(&Physical&Address.&.&.&.&.&.&.&.&.&:&)&!=&-1){&
if(line.indexOf(&:&)&!=&-1){&
physicalAddress&=&line.substring(line.indexOf(&:&)+2);&
  在上面的程序中,为了读取命令输出的字符,利用子进程process生成了一个数据流缓冲区。
  依据上面的代码,我们编写了一个类ReadMAC,见下面程序的源代码
以下是引用片段:
import&java.io.*;&
public&class&ReadMAC&{&
public&static&String&physicalAddress&=&&read&MAC&error!&;&
public&ReadMAC()&{&
public&static&String&checkPhysicalAddress(){&
Process&process&=&Runtime.getRuntime().exec(&cmd&/c&ipconfig&/all&);&
BufferedReader&bufferedReader&=&new&BufferedReader(new&InputStreamReader(process.getInputStream()));&
while&(&(line=bufferedReader.readLine())&!=&null){&
if(line.indexOf(&Physical&Address.&.&.&.&.&.&.&.&.&:&)&!=&-1){&
if(line.indexOf(&:&)&!=&-1){&
physicalAddress&=&line.substring(line.indexOf(&:&)+2);&
&//找到MAC,推出循环&
process.waitFor();&
}catch(Exception&e){&
e.printStackTrace();&
return&physicalA&
public&static&void&main(String&args)&{&
System.out.println(&本机的MAC地址是:&&+&ReadMAC.checkPhysicalAddress());&
  编译运行该程序的输出结果如图2所示。
  由于每一台计算机的MAC地址都不同,所以该程序在不同计算机上运行结果都会不一样。
  5 结束语
  作为一个跨平台语言,编写的JAVA程序一般都与硬件无关,因而能运行在不同的操作系统环境。但这给编写底层相关的程序时带来不便。
  Java的应用程序都存在着一个与其运行环境相联系的Runtime对象,利用该对象可执行外部命令,在WindowsXP/NT/2000环境中的命令IPCONFIG的输出包含有MAC地址。编写的Java程序,执行外部命令IPCONFIG,并通过分析该命令的输入流而获得本机的MAC地址。由于IPCONFIG命令是操作系统命令,所以该方法既方便又可靠。
  以上讨论的程序适合于Windows XP/NT/2000操作系统,因为它是基于该操作系统的命令IPCONFIG格式的。由于不同操作系统读取MAC地址的命令、以及命令输出格式的不同,所以该程序不能直接运用到其它系统。要移植到其它系统只需针对命令的输出格式稍作修改。在mac中如何使用往常的cmd命令来打包jar呢?【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:710,983贴子:
在mac中如何使用往常的cmd命令来打包jar呢?收藏
没怎么用过mac,求知道的人说一下,我不知道如何使用终端,按照往常cmd那样的使用步骤行不通,求指点。
同问。。。
为何不选择maven呢?使用maven命令打包挺方便的啊!如果cmd窗口不能执行java命令的话,建议先检查下环境变量看看java javac等命令是否能正常输出,如果正常输出的话那么打包命令应该也没问题
大哥,会了就来交流交流,让我也学学
登录百度帐号}

我要回帖

更多关于 java 执行命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信