`
庄周小孟
  • 浏览: 25973 次
  • 性别: 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 即可,不需要添加别的参数

 

分享到:
评论

相关推荐

    生成java可执行文件

    1. **Java程序在默认文件夹下**:当Java源文件没有使用`package`语句时,程序会被放在默认的包中。为了在没有Java环境的机器上运行,你需要将JRE文件夹(包含Java运行时环境)复制到一个新的文件夹,比如E盘的Java...

    JAVA语言程序设计重要复习题库

    - 编译Java源代码后,会生成.class扩展名的字节码文件。 - Java程序的运行包括三个主要步骤:编辑源程序、编译生成字节码、解释运行字节码。 2. Java语言的语法和编程基础 - Java的基本数据类型中,char型使用...

    JAVA100例之实例77 如何应用JAR包

    在Java编程中,JAR(Java Archive)文件是一种标准的归档格式,用于打包和分发Java类库、资源文件以及元数据。本实例77将深入探讨如何在Java项目中应用JAR包,这对于开发者来说是至关重要的,因为这有助于简化代码...

    OCJP认证-3期(PX017) 面向对象程序设计-Package及JAR.doc

    在Java中,包(Package)和JAR文件(Java Archive)是组织和管理类的重要方式,它们对于代码的可维护性和重用性至关重要。 1. 包(Package)在Java中的作用: 包在Java中主要起到命名空间的作用,它帮助我们避免...

    JAVA 开发单独的ibatis jar包

    6. **打包成jar**:在Maven中,运行`mvn package`命令,Gradle中执行`gradle build`,这将会生成一个包含所有编译后类和资源的jar文件。 三、使用单独的Ibatis jar包 1. **引入依赖**:在新的项目中,将生成的jar包...

    Java源程序结构.docx

    Java程序通常包含源代码、编译后的类文件、.jar归档文件以及对象状态序列化的.ser文件。Java语言是大小写敏感的,源文件名应与公共类(public class)的名字相同,并以.java为扩展名。每个源文件最多只能有一个...

    ojdbc14 .jar

    Oracle JDBC驱动程序是Java开发者与Oracle数据库交互的重要工具,而`ojdbc14.jar`是Oracle公司提供的一个特定版本的JDBC驱动包,主要用于支持Java应用程序连接到Oracle数据库。在这个详细的解释中,我们将深入探讨`...

    java学习文档(快速学习-非常使用)

    生成的.jar文件是一个标准的ZIP归档,包含了类文件和其他资源。 九、Java程序的编译和执行过程 1. 启动JVM。 2. 解析并加载类文件。 3. 验证字节码的正确性。 4. 解释执行字节码,或者在启用的情况下,进行即时编译...

    paint.rar 是一个Java的程序

    - 性能优化:减少不必要的计算,合理使用数据结构和算法,以及使用适当的并发模型来提升程序性能。 - 错误处理:添加适当的错误处理机制,防止程序因未预期的输入或条件而崩溃。 - 用户体验:提供友好的用户界面,...

    ojdbc6.jar

    在Java编程中,与数据库的交互是必不可少的一部分,而Oracle数据库作为世界上最广泛使用的数据库系统之一,其Java驱动程序——ojdbc6.jar,成为了Java开发者的重要工具。本文将详细介绍ojdbc6.jar及其在Java与Oracle...

    jar包双击执行程序的方法

    综上所述,要想使一个jar包通过双击来执行Java程序,需要完成以下步骤:编写并编译Java源代码,通过package语句对生成的class文件进行封装,创建并编辑清单文件来指定主类,最后使用jar命令打包。完成这些步骤之后,...

    JAVA 学习笔记

    JAVA学习笔记涵盖了从环境配置到Java运行过程,再...总结来说,JAVA学习笔记包含了Java开发的基础环境配置、程序运行流程、内存管理、安全机制以及源代码的编写和编译执行。这些知识点对于初学者理解Java编程至关重要。

    mybatis配置文件生成jar包

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在实际项目开发中,为了方便部署和运行,有时我们需要将配置文件和其他资源打包成JAR文件。本教程将详细解释如何生成包含MyBatis配置...

    java调用matlab笔记

    ### Java调用Matlab知识点详解 ...综上所述,Java调用Matlab涉及多个步骤,包括环境配置、Matlab代码编写、编译以及在Java中调用Matlab编译后的JAR文件。正确地完成这些步骤,可以实现Java与Matlab之间的有效交互。

    示例源码_SpringBoot踩坑记录:IDEA+MAVEN本地 jar 包打包及引入使用_Qc20201223.zip

    总结起来,这个压缩包提供了一个关于SpringBoot项目打包和使用的过程实例,包括了错误修正、IDEA与Maven的配合使用,以及如何处理和引入jar包。对于学习SpringBoot开发和Maven的初学者来说,这是一个很好的实践案例...

    JAVA学习精细笔记

    使用`javac`命令编译Java源文件,生成`.class`文件,然后用`java`命令运行程序。在创建包结构时,需在源文件的开头指定`package`语句,并使用`javac -d`命令指定编译后的包结构路径。 Java支持三种类型的注释:单行...

    Java关于jar包的知识详解

    - 使用`MANIFEST.MF`文件:jar包可以包含一个名为`META-INF/MANIFEST.MF`的文件,用于指定主类、版本信息等元数据,这在创建可执行jar文件时尤其重要。 - `jar`命令的其他选项:除了`cvf`,`jar`命令还有其他选项,...

    华为java培训讲义.doc

    编译Java源文件时,可以使用javac命令,如果涉及包结构,可以使用-d选项指定生成路径。 包(package)的概念是为了组织源文件,类似于目录结构。声明包名通常放在源文件的第一行,多层包之间用点分隔。编译时,如果...

Global site tag (gtag.js) - Google Analytics