zoukankan      html  css  js  c++  java
  • eclipse 中添加自定义 classpath 的方法,以及 javac 和 java 的一些使用细节

    目标: 将 ~/java 加入classpath
    eclipse: 右键选中 Project, Properties, Java Build Path, Libraries, Add External Class Folder,
    此时, 如果想要让home folder下的 java 文件夹成为 classpath, 选择 ~/java 即可。
    要求:在这个classpath ~/java 中的 所有.java文件里, 比如 ~/java/username/util/RandomNewClass.java 中必须在开头声明: package username.util;
    这样, 在当前Project里, 就可以 import username.util.*; 然后就可以用这个 RandomNewClass 类了。
    javac 和 java 的使用就麻烦了一些, 反正我就是不喜欢命令行= =
    首先:javac -cp ~/java RandomNewClass.java
    然后: java -cp .:~/java RandomNewClass (
    /*错误:如果RandomNewClass.class 是在当前目录的话, 不是的话就把前面那个点改成这个.class 所在的目录*/
    正确: 前面这个点是RandomNewClass 的 classpath, 因为当前我写的RandomNewClass.java 里面没有申明 package, 然后还放在了home folder...)
    至于为什么compile的时候不需要当前目录, 而运行时又需要,我就不知道了。。
    经实验大概是这样: compile的时候, 那个 RandomNewClass.java 本身已经是文件了,
    如果这个 .java文件不在当前目录的话,compile的时候是要指出它的绝对路径的, 所以classpath里只要加入那些有被 import 过的就行了
    但是当 java 运行的时候: java -cp classpath ClassName, 这里这个ClassName不是file, 需要给定它所在的package的全称, 类似于 username.uitl.RandomNewClass 这样, 所以为了定位这个 RandomNewClass 的 .class 文件在哪里, 也要给出它的 classpath, 这样 classpath + package (隐含部分path) + RandomNewClass.class 就是这个 .class file 的真正位置了。

  • 相关阅读:
    Jenkins Pipeline Script from SCM应用
    Jenkins获取所有job
    Jenkins pipeline使用git共享库(ShareLibrary)
    Jenkins获取用户所属组
    PowerShell函数当做变量传递给另一个函数
    Jenkins input获取提交人
    Groovy Map排序
    Jenkins Pipeline使用File parameter
    Jenkins Active Parameters之Groovy Script(获取具有管理员权限的组+组成员)
    Android中C/C++的日志打印
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/3440426.html
Copyright © 2011-2022 走看看