zoukankan      html  css  js  c++  java
  • 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  

    该类成功运行 

  • 相关阅读:
    deb app install under terminal
    修改代理
    virtualenv install &usage
    what a pietty
    晚上想睡觉不要喝可乐
    ubuntu server 调教
    修改代理
    修改网关为静态IP
    infobright install tips
    i like fujishu laptop more than mac
  • 原文地址:https://www.cnblogs.com/moon521/p/5481018.html
Copyright © 2011-2022 走看看