Mac下 javac java 进行编译和运行含有包路径及引入jar包的类
近两天因为刚入职,属于熟悉环境的阶段,研究了下算法(第四版),当不使用IDE工具直接使用终端进行javac 编译带有包的类,然后使用java 会出现如下错误提示:

使用谷歌搜索了很久,终于找到解决的办法,作记录一下,免得到时候会忘
因为该问题的出现时因为BinarySearch.java类中存在包路径,该文件我是使用eclipse,放到workspace中的.
package com.sort;
public class BinarySearch {
public static int rank(int key ,int[] a){
return rank(key,a,0,a.length-1);
}
public static int rank(int key ,int[] a,int lo,int hi){
//如果key存在与a[]中,它的索引不会小于lo且不会大于hi
if(lo>hi)return -1;
int mid=lo+(hi-lo)/2;
if(key < a[mid])return rank(key,a,lo,mid-1);
else if(key>a[mid])return rank(key,a,mid+1,hi);
else return mid;
}
public static void main(String[] args) {
int[] a={0,2,4,5,6,7,12,45};
int t=rank(1,a);
System.out.println(t);
//StdOut.println ("Hello, World");
}
}
该类的包路径应该是com.sort
当编译完成后,仍需将该包的包名带上,既com.sort.BinarySearch,又因为该编辑文件是在sort包下的,这就需要我们使用相对路径定位到com包上,
使用命令java -cp ../../ com.sort.BinarySearch
或者使用绝对路径执行
java -cp /Users/moon/Documents/workspace/javaDemo1/src com.sort.BinarySearch
该命令成功执行。

补充:如果类中引用其它的jar包,编译和运行需加入jar包的路径
如:
javac -cp /Users/moon/Documents/workspace/javaDemo1/lib/algs4.jar RandomSeq.java
java -cp /Users/moon/Documents/workspace/javaDemo1/lib/algs4.jar:../../ com.random.RandomSeq 5 100.0 200.0
该类成功运行

Mac下 javac java 进行编译和运行含有包路径及引入jar包的类的更多相关文章
- java文件编译及运行
1 配置环境变量 使用鼠标右击“我的电脑”->属性->高级->环境变量 系统变量->新建->变量名:JAVA_HOME 变量值:C:\Program Files (x86 ...
- Java程序编译和运行的过程
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程. 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1.源文件由编译器编译成字节码(ByteCode) 2 ...
- Java程序编译和运行的过程【转】
转自:http://www.360doc.com/content/14/0218/23/9440338_353675002.shtml Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来 ...
- java 程序编译和运行过程
java整个编译以及运行的过程相当繁琐,我就举一个简单的例子说明: Java程序从源文件创建到程序运行要经过两大步骤: 1.源文件由编译器编译成字节码(ByteCode): 2.字节码由java虚拟机 ...
- Java编辑编译及运行环境
Java编辑编译及运行环境 Microsoft Windows 编辑工具 EditPlus JDK JDK(Java Development Kit,Java开发工具包)安装JDK之后,其中bin文件 ...
- Mac下添加java环境变量
2015年4月22号更新: 发现一个坑:最近发现有同事按照本文方式配置jdk环境变量一直不成功,后来发现他是使用了“Oh-My-Zsh”,配置文件的路径不是/etc/profile或~/.bash_p ...
- Intellij IDEA下导出Java工程的可运行JAR包
Intellij IDEA下导出Java工程的可运行JAR包 昨天一直向导出一个Java工程的可运行JAR包,然后查阅网上的资料以及自己一遍一遍的尝试,均以失败告终.可以导出JAR包,但是导出的JAR ...
- Java高编译低运行错误(ConcurrentHashMap.keySet)
Java高编译低运行错误(ConcurrentHashMap.keySet) 调了一天: https://www.jianshu.com/p/f4996b1ccf2f
- javac编译单文件、多文件引入jar包、-cp解决无法加载主类问题
引言:很多人用ide集成开发环境用的多了,对dos命令编译多个java文件或引入jar包都变得陌生了,java不同于其他解释语言,如ruby.php 都有require,直接引入即可运行代码,但ja ...
随机推荐
- eclipse JavaEE版"javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决办法
使用eclipse JavaEE 版,新建 Dynamic Web Project 项目.在项目里添加 JSP 文件,会在文件头部出现错误提示.提示语句为:The superclass "j ...
- jsp页面定义的map
<script type="text/javascript">function Map(){ this.elements = new Array(); //删除MAP所 ...
- Java中static的使用
static 使用之静态变量: 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大 ...
- asp.net网站防恶意刷新的Cookies与Session解决方法
本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧.分享给大家供大家参考.具体实现方法如下: Session版实现方法: public ...
- poj 3308(最小点权覆盖、最小割)
题目链接:http://poj.org/problem?id=3308 思路:裸的最小点权覆盖,建立超级源点和超级汇点,将源点与行相连,容量为这行消灭敌人的代价,将列与汇点相连,容量为这列消灭敌人的代 ...
- SmartStoreNet解图
概述: Ioc: Autofac 1. 通过继承, 对MVC的Controller的加强.
- Android实例-使用电话拨号器在移动设备上
Android实例-使用电话拨号器在移动设备上 源文地址: http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial:_Using ...
- delphi连接sql server数据库,并根据sql语句查询出数据显示--初级
需要用到四个组件,分别为: 1.ADOConnection1 设置Connectionstring属性(连接串),loginPrompt属性控制是否连接记住了密码: 2.ADOQuery1 设置Con ...
- 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
- Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成
作者:zyl910 手工写文档是一件苦差事,幸好现在有从源码中抽取注释生成文档的专用工具.对于Objective-C来说,目前最好用的工具是appledoc和doxygen.可是这两种工具对于注释的要 ...