`
庄周小孟
  • 浏览: 25435 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

linux下含有package语句的java程序编译执行以及jar的使用、外部引用一个jar程序的编译和执行

阅读更多

一、

在路径~/java_study/java_code/pageTest 中有一个java文件:staticinit.java 代码如下:

package java2.java_code.pageTest;
class Bowl
{
 Bowl(int marker)
  {
 System.out.println("Bowl(" + marker + ")");
 }
 void f1()
  {
 System.out.println("Ok");
 }
 }

 class Cupboard
  {
 Bowl b1 = new Bowl(1);

 static Bowl b2 = new Bowl(2);

 Cupboard()
 {
 System.out.println("Cupboard()");
 }

 static Bowl b3 = new Bowl(3);
 }

 class Table
  {
 Table()
 {
 System.out.println("Table()");
 }
 Table(String a,int i){
 this();
 System.out.println("Ok");
 }
 }

 public class staticinit
 {
    
 static Cupboard t1 = new Cupboard();

 static Table t2;

 Bowl t3 = new Bowl(10);

 void print()
 {
 t3.f1();
 }

 public static void main(String[] args)
  {
     new Bowl(6);
 System.out.println("Creating new Cupboard() in main");
 new Cupboard();
 System.out.println("Creating new Cupboard() in main");
 //staticinit od = new staticinit();
 //od.t3.f1();
 Table t4 = new Table("aa",1);
 }
 }

终端的当前目录为~/java_study/java_code/pageTest

环境变量为:

CLASSPATH=".:/usr/lib/jdk_6u26/java-6-sun/lib"

使用命令:

javac -d . staticinit.java

会在当前目录下生成一个java2的目录,里面包含class文件

java java2.java_code.pageTest.staticinit

可执行此程序,终端上会看见一些输出

二、

修改staticinit.java的main函数为:

public static void main2()
  {
     new Bowl(6);
 System.out.println("Creating new Cupboard() in main");
 new Cupboard();
 System.out.println("Creating new Cupboard() in main");
 //staticinit od = new staticinit();
 //od.t3.f1();
 Table t4 = new Table("aa",1);
 }

保存,执行命令javac -d . staticinit.java

重新创建一个java文件:two.java,代码如下:

import java2.java_code.pageTest.*;
public class two
{
    public static void main(String[] args)
    {
        staticinit t = new staticinit();
        t.main2();
    }
}

在two中引用staticinit。

执行命令:javac two.java后会出现如下错误:

two.java:6: 无法访问 staticinit
错误的类文件: ./staticinit.java
文件不包含类 staticinit
请删除该文件或确保该文件位于正确的类路径子目录中。
        staticinit t = new staticinit();
        ^
1 错误
这是因为 staticinit.java文件存在的缘故,把staticinit删掉即可,重新执行命令javac two.java,正常

再执行命令:java two,终端会有输出

三、

接一、二步骤

执行命令:

jar cvf java2.jar java2/* 将java2打包成jar包

javac -cp java2.jar two.java 编译two

java -cp java2.jar:$CLASS_PATH two 执行two

当外部引用一个jar中,有一个较简单的方法,就是将该 jar 的路径加入CLASS_PATH中,剩下的操作就和普通的包没什么多大区别了:

import //引用一个包

完成后 javac、java 即可,不需要添加别的参数

 

分享到:
评论

相关推荐

    javacv-1.5.5.jar中文文档.zip

    # 含有的 Java package(包): ``` cl.eye org.bytedeco.javacv ``` # 含有的 Java class(类)(此处仅列举3个): ``` cl.eye.CLCamera org.bytedeco.javacv.AndroidFrameConverter org.bytedeco.javacv....

    DJ Java Decompiler 3.12.12.96 老朽痴拙汉化版(JAVA反编译)

    使用DJ Java Decompiler你还可以反编译一次性反编译多个class文件。 安装路径,如:C:/Program Files/decomp。然后将该路径加入到环境变量path中。 首先将要反编译的jar文件,用winrar解压到和jar文件名称一样...

    多项目管理编译运行(package、jar)的程序示例,包括Java项目源代码、编译和运行的脚本,全部打包在一起。可直接编译运行

    多项目管理编译运行(package、jar)的程序示例,包括Java项目源代码、编译和运行的脚本,全部打包在一起。可直接编译运行

    android反编译(dex2jar.zip)

    附件是dxe2jar和JD,两个工具都是open source的,我已经全部放在一个压缩包了。 别着急,有办法: 1. 假设你要反汇编的是app.apk,那么先改名成app.zip 2. 解压 3. 在解压出来的里面找到classes.dex,这个就是目标...

    JAVA程序命令行下的执行

    JAVA程序命令行下的执行 IED用惯了,基础都快忘记了 javac 先不说了,环境变量里面设置对了基本没什么问题。关键是java这个命令 java -classpath .class的类路径(如果是包的话,需要指定到包上面的路径);引用的类路径...

    javacv-1.3.2.jar中文文档.zip

    # 含有的 Java package(包): ``` cl.eye org.bytedeco.javacv ``` # 含有的 Java class(类)(此处仅列举3个): ``` cl.eye.CLCamera org.bytedeco.javacv.AndroidFrameConverter org.bytedeco.javacv....

    LINUX下安装JAVA

    介绍linux下如何安装JDK o Linux 自解压二进制文件 此文件可用于在用户所选...Linux RPM (Redhat Package Manager) 使用 RPM 来安装 Java。要使用这种方法,您的系统上需要具有 RPM。如果没有 RPM,请使用另一个选项

    Java中package语句.pdf

    Java中package语句.pdf 学习资料 复习资料 教学资源

    java程序设计-Java坦克大战游戏源码,基于Spring Boot,JDK8,Swing组件开发(源码+说明文档)

    ###### 1、下载源码,在根目录执行maven命令mvn clean package,可在target目录下生成jar包,然后直接CMD下执行命令java -jar xxx.jar即可。 ###### 2、或者直接用IDE(Eclipse或IDEA)导入源码,找到...

    JByteMod-Beta.zip(反编译工具源码以及打完包后的jar)

    JByteMod 是一个多功能字节码编辑器,具有语法高亮、实时反编译和方法图 构建方式 mvn clean mvn package java -jar target/JByteMod-1.5.1.jar

    java反编译工具jd-gui

    java反编译工具jd-gui 批量反编译工具是将java语言打包的执行文件回滚为java代码,同时支持单文件反编译和批量操作 支持多种格式,可直接反编译类文件,或j2ee的ear分发包,甚至支持直接反编译android应用 批量反...

    关于java中package的设置

    package就是程序库单元,在一般的java程序中,我们使用关键字import导入整个程序库,例如: import java.util.*; 这时我们取用的便是所谓的package,这种写法会将java标准公用程序库(utility library,也就是java....

    jna-5.6.0.jar中文文档.zip

    # 含有的 Java package(包)(此处仅列举3个): ``` com.sun.jna com.sun.jna.internal com.sun.jna.platform ...... ``` # 含有的 Java class(类)(此处仅列举3个): ``` com.sun.jna.AltCallingConvention ...

    Java文件转换为 Exe 可执行文件

    可执行程序能够自动从“注册表”或“JAVA_HOME环境变量” 找到当前操作系统中所安装的 jre 环境。 3.2 配置运行环境 如果 jre 文件夹采用复制方式,随同可执行文件一起发布,那么可以添加配置文件进行配置。 配置...

    javacv-1.4.4.jar中文文档.zip

    # 含有的 Java package(包): ``` cl.eye org.bytedeco.javacv ``` # 含有的 Java class(类)(此处仅列举3个): ``` cl.eye.CLCamera org.bytedeco.javacv.AndroidFrameConverter org.bytedeco.javacv....

    自动打包.java文件成.jar的小程序(C++)

    自动打包.java的文件成.jar 注意.java文件里面不能带package!

    wsdl2java_jar.zip

    webservice生成java调用代码需要的所有jar包

    同一个package的类型分散在不同JAR包中

    NULL 博文链接:https://rednaxelafx.iteye.com/blog/600619

    DOS命令运行和编译带有package包名的java程序

    首先用记事本编写程序,把下面红色代码复制进去,然后以Yanwen.java文件名保存。 package cyw; public class Yanwen { public static void main(String[] args) { System.out.println("你好,陈燕文!"); } }...

Global site tag (gtag.js) - Google Analytics