javac\java 含有包路径的类

近两天因为刚入职,属于熟悉环境的阶段,研究了下算法(第四版),当不使用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

该命令成功执行。

时间: 2024-10-09 04:37:46

javac\java 含有包路径的类的相关文章

关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

一,官方描述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检索元素.当许多线程共享访问同一个集合时,这个类是不二选择.这个队列不允许有null元素. 这个实现基于一种被描述为简单,快速,实用的非阻塞和阻塞公布队列算法而提供的一种有效的空闲等待算法. 注意,不像大多数集合,size方法的操作不是常量时间的,由于是异步队列,决定了元素的数量需要遍历真个元素集. 这个

Java遍历包中所有类

PackageUtil 类 import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; /** * 获取包中所有的类 * @au

java.lang包【Object类】

基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.可以使用类型为Object的变量指向任意类型的对象 Object的主要方法介绍: package java.lang; public class Object { /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用.*

java学习--java.util包中常用类

java.util包被称为java工具包,里面包含大部分的工具类 Random 随机数类 new Random() rd.nextInt() rd.nextInt(100) Scanner 扫描器类 Scanner sc = new Scanner(system.in); String str = sc.next(); String str1 = sc.nextLine(); int t = sc.nextInt(); float t = sc.nextFloat(); Date 日期类 Dat

源码分析七(java.lang包之IllegalArgumentException类)

一:IllegalArgumentException非法参数类,这个类继承父类RuntimeException 1 public 2 class IllegalArgumentException extends RuntimeException 重载的几个构造方法都是直接调用父类的构造方法: //无参数构造器,默认构造器 public IllegalArgumentException() { super(); } //参数为字符串String的构造器 public IllegalArgument

批量修改Java类文件中引入的package包路径

http://libeey.blogbus.com/logs/101848958.html当复制其他工程中的包到新工程的目录中时,由于包路径不同,出现红叉,下面的类要一个一个修改包路径,类文件太多的话就比较麻烦了,如何批量改变包路径解决这个问题? 方法一: Ctrl+h >> file serach >> 输入原包名(类型为*.java)>>Replace>>找到后输入要替换的包名 然后自己选择是全部替换还是部分替换. 方法二: 直接修改出错的类所在的包的名

java学习--java.lang包中常用的类

java.lang包中的类是不需要import的 基本数据类型的包装类 包装类的使用相差不大,使用方法则以Integer为例 属性: MAX_VALUE 最大值 MIN_VALUE 最小值 构造方法: Integer t1 = new Integer(123); 将int构造成Integer Integer t2 = new Integer("1234"); 将数字字符串构造成Integer Integer t3 = 12345; 包装类与其对应的基本数据类型的区别是,包装类型所占用的

java.time包常用类API学习记录

Java8出来已那么多年了,java.time包之前一直没有使用过,最近正好有用到,在此做个记录. 上图列出了java.time包下的类,接下来我们详细看下其中每个类的用法. Clock:获取到当前时间点,包含时区信息,该类是抽象类,其实现类由其内部类实现,也可以自定义其实现类. Clock方法描述: getZone():获取创建日期时间的时区: withZone(ZoneId zone):返回一个指定时区clock副本: instant():返回instant实例: millis():获取当前

九:Java之包

Java包(package) 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 一.包的作用 java中"包"的引入的主要原因是java本身跨平台特性的需求.因为java中的所有的资源也是以文件方式组织,这其中主要包含大量的类文件需要组织管理.java中同样采用了目录树形结构.虽然各种常见操作系统平台对文件的管理都是以目录树的形式的组织,但是它们对目录的分隔表达方式不同,为了区别于各种平台,java中采用了"."来分隔目录. 1 把功能相似或相关的类