首页 > 编程语言 >JAVA命令行编译及运行

JAVA命令行编译及运行

时间:2023-01-04 14:56:25浏览次数:36  
标签:fs JAVA lib jar HelloWorld 编译 命令行 java esl

第一部分:单文件

一、背景
目标文件HelloWorld.java

复制代码
package ccdate;

public class HelloWorld {
        public static void main(String[] args) {
                System.out.println("Hello World!");
        }   
}
复制代码

二、编译

cd ccdate
javac HelloWorld.java

如果不报错而且多了一个HelloWorld.classs,恭喜你编译成功。


三、运行

java HelloWorld

什么?报错了

Error: Could not find or load main class HelloWorld

 

四、解决方案
网上搜索到的最普遍的说法是CLASSPATH没有正确的设置。

export JAVA_HOME=/usr/java/jdk1.8.0_112  
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH

然后执行source /etc/profile
然而,错误依旧。


五、最终的解决
原因,我的示例类有一个包路径ccdate

cd ..  //就是离开当前的包路径
java ccdate.HelloWorld

OK,能看到让人激动的Hello World!打印了。

 

第二部分:含第三方依赖库的项目

一、背景
  1. 项目名称fs-esl
  2. 项目主路径/home/fs-esl
  3. 项目结构
     3.1 java源文件的路径     

    fs-esl/com/*

         //本文档实际测试时就一个main类,
         //具体路径fs-esl/com/vvhi/fsesl/begining/FsEsl.java
         //这个类就干一件事,打印Hello World!
     3.2 项目关联的第三方库

    fs-esl/lib

     3.3 menifest文件

    fs-esl/menifest


二、编译

cd /home/fs-esl
javac -Djava.ext.dirs=./lib com/vvhi/fsesl/begining/FsEsl.java

如果多了一个FsEsl.java旁边多了一个同名的class文件,编译成功。

三、menifest
编辑menifest,根据实际情况改写。示例:

复制代码
Manifest-Version: 1.0
Class-Path: . lib/slf4j-api-1.7.25.jar lib/log4j-slf4j-imp
 l-2.8.2.jar lib/log4j-api-2.8.2.jar lib/log4j-core-2.8.2.
 jar lib/spring-jdbc-4.3.6.RELEASE.jar lib/junit-4.12.jar
 lib/spring-beans-4.3.6.RELEASE.jar lib/spring-core-4.3.6.
 RELEASE.jar lib/spring-tx-4.3.6.RELEASE.jar lib/hamcrest-
 core-1.3.jar lib/commons-logging-1.2.jar lib/esl.jar
Main-Class: com.vvhi.fsesl.begining.FsEslMain
复制代码

四、打包

cd /home/fs-esl
jar cvmf menifest fs-esl.jar com/vvhi/fsesl/begining/FsEsl.class

如果不报错而且多了一个fs-esl.jar文件,打包成功。

五、运行

java -jar fs-esl.jar

如果屏幕出现Hello World!

恭喜!你成功的完成了一次手动编译、打包java项目的全过程。

标签:fs,JAVA,lib,jar,HelloWorld,编译,命令行,java,esl
From: https://www.cnblogs.com/kn-zheng/p/17024797.html

相关文章

  • sun.security.validator.ValidatorException: PKIXpath building failed: sun.securit
    报错信息:javax.net.ssT.SSLHandshakeExceptions.certpath.SunCertPathBuilderException:unabletofindvalidcertificationpathtoreguestedtarget问题描述:在ja......
  • Java调用Linux命令(cd的处理)
    一、Java调用Linux系统的命令非常简单这是一个非常常用的调用方法示例:1publicStringexecuteLinuxCmd(Stringcmd){2System.out.println("gotcmd......
  • [java] a simple Applet program
    //javacodefileimportjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.net.*;publicclassWelcomeAppletextendsJApplet{publicvoidinit()......
  • [java]Regular Expression Testor
    importjava.awt.Dimension;importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListene......
  • Java线程生命周期
    java.lang.Thread类包含一个静态枚举,它定义了它的潜在状态。在任何给定的时间点内,线程只能处于以下状态之一:NEW–一个新创建的线程,尚未开始执行RUNNABLE–正在运行......
  • 第五阶段:Java Web 核心技术
    认清现实,放弃幻想。(特此感谢动力节点老杜分享出来的学习路线)5.第五阶段:JavaWeb核心技术5.1Tomcat与HTTP5.1.1学习目标1.掌握Tomcat服务器搭建2......
  • java spring jar包下载
    想学习一下javaspring,真是不知道怎么来着手。在网上查了一下eclipse里建spring工程的方法:1、创建Java项目转到 文件菜单- 新建- 项目- Java项目。输入项目名称,例如......
  • self hosted private support chat software use JavaScript remove HTML tags
    ThemainreasonforremovingHTMLtagsinonlinecustomerservicesystemsistopreventmalicioususersfromattackingthewebsiteorotherusersbyinputting......
  • 在线客服系统中javascript 源码实现除去html标签
    在线客服系统中除去HTML标签的主要原因是为了防止恶意用户通过输入恶意的HTML代码来攻击网站或其他用户。例如,如果你不过滤用户输入的HTML,一个恶意用户可能会输入下面这段......
  • Java 合并PDF文件
    这篇文章主要介绍如何在Java应用程序中实现将多个PDF文件合并为一个PDF的功能。使用组件:Spire.PDFforJava使用以下代码前,需要下载​​Spire.PDFforJava​​包并解压,然后......