【问题标题】:compile and run java files - run main method [duplicate]编译并运行java文件-运行main方法[重复]
【发布时间】:2015-12-23 10:10:39
【问题描述】:

我是 java 新手,我需要运行一些已编译的代码

来源

public class OiosiRaspClient {

    private static Log log = LogFactory.getLog(OiosiRaspClient.class);
    public static final String PATH_INVOICE_OIOUBL = "./Resources/xml/OIOUBL_Invoice_v2p1_5798009811578.xml";

    public static final String RaspConfigurationLive = "./Resources/RaspConfiguration.Live.xml";
    public static final String RaspConfigurationTest = "./Resources/RaspConfiguration.Test.xml";

    public UddiType uddiType;
    public String xmlDocumentUrl;

    public enum UddiType {
        Production(RaspConfigurationLive),
        NewProduction(RaspConfigurationLive),
        Test(RaspConfigurationTest),
        LocalJava_v1_2_3(RaspConfigurationTest),
        LocalJava_v1_2_4(RaspConfigurationTest),
        LocalNet_v1_2_3(RaspConfigurationTest),
        LocalNet_v1_2_4(RaspConfigurationTest),

        FOCES2Test("cfg/RaspConfiguration.Oces2.xml"),
        FOCES2_99018008("cfg/RaspConfiguration.99018008.xml"),
        FOCES2_99018080("cfg/RaspConfiguration.99018080.xml");

        private final String raspConfigurationFile;

        UddiType(String configFile) {
            raspConfigurationFile = configFile;
        }
    }

    public OiosiRaspClient() {
        uddiType = UddiType.Production;
        xmlDocumentUrl = PATH_INVOICE_OIOUBL;
    }

    public OiosiRaspClient(UddiType uddiType, String xmlDocumentUrl) {
        this.uddiType = uddiType;
        this.xmlDocumentUrl = xmlDocumentUrl;
    }

    public static void main(final String[] args) {
        new OiosiRaspClient().sendDocument_Test();
    }

    public boolean sendDocument_Test() {
        // some code
    }
    
}

所有代码都使用ant compilebuild.xml文件编译

现在OiosiRaspClient类被编译成如下文件

OiosiRaspClient$1.class
OiosiRaspClient$UddiType.class
OiosiRaspClient.class

如何在OiosiRaspClient中运行main方法?

我还需要在每次运行之前更改公共变量PATH_INVOICE_OIOUBL..

命令行

# java OiosiRaspClient
Error: Could not find or load main class OiosiRaspClient

【问题讨论】:

  • java OiosiRaspClient
  • 使用 javac 编译并使用 java 运行该类。
  • @BilboBaggins,你能用命令行或代码提供答案吗?我还需要在运行主类之前更改一个公共变量。已经更新了我的问题
  • @clarkk 在运行之前您会将PATH_INVOICE_OIOUBL 更新为什么?

标签: java


【解决方案1】:

我希望我理解你的问题,但我认为你需要的是命令行参数。当您使用"java RaspiClient C:\Users\..." 运行类的主方法时,您可以访问主方法中传递的参数,例如String arg = args[0]

【讨论】:

【解决方案2】:

编译和运行OiosiRaspClient使用

javac OiosiRaspClient.java
java OiosiRaspClient

或者就像Nicholas Kadaeux说得很好here

假设您的文件位于 C:\mywork\

运行命令提示符

C:> cd \mywork

这使得 C:\mywork 成为当前目录。

C:\mywork> 目录

这将显示目录内容。您应该在文件中看到 filenamehere.java。

C:\mywork> 设置路径=%path%;C:\Program Files\Java\jdk1.5.0_09\bin

这告诉系统在哪里可以找到 JDK 程序。

C:\mywork> javac 文件名here.java

这会运行编译器 javac.exe。您应该只看到下一个系统提示...

C:\mywork> 目录

javac 已创建 filenamehere.class 文件。您应该在文件中看到 filenamehere.java 和 filenamehere.class。

C:\mywork>这里的java文件名

这会运行 Java 解释器。然后您应该会看到您的程序输出。

如果系统找不到 javac,请检查 set path 命令。如果 javac 运行但出现错误,请检查 Java 文本。如果程序编译但出现异常,请检查文件名和类名中的拼写和大小写以及 java HelloWorld 命令。 Java 区分大小写!

【讨论】:

    【解决方案3】:

    假设你有两个类文件,

    SampleClass1.java 和 SampleClass2.java(都在某个目录 /usr/XYZ/JavaCode/src 中)

    您需要通过命令行导航到该目录。进入目录后使用以下命令进行编译。

    javac -d ../bin SampleClass1.java
    

    (bin是src同级目录,存放编译好的.class文件,需要在/usr/XYZ/JavaCode/bin创建)

    假设 SampleClass1.java 包含一个 main 方法,使用以下命令运行它。

    java -cp ../bin SampleClass1
    

    编辑: 为了传递争论,

    java -cp ../bin SampleClass1 "Hello World" Java
    

    在上面的例子中,Hello World 是一个参数,即当你想传递一个句子时使用双引号传递它,第二个参数是 Java,一个单词可以不带双引号传递。

    在代码中使用 arg[0]、arg1 ...(或您在主方法参数中指定的任何名称,不一定是 arg)访问它们。

    请注意,类名将是“完全限定的类名”,即如果您了解 java 中的包,您就会理解完全限定的名称,简而言之,它就像 PACKAGE_NAME.CLASSNAME。

    现在这个工作的首要任务是定义 JAVA_HOME 环境变量(我猜你已经完成了,否则它将无法编译。)

    关于 Class 的另一件事是,您可以在单个文件中定义任意数量的类,但其中只有一个是公共类,并且文件名应与公共类名匹配。

    您可以通过以下链接进一步了解更多信息,这似乎是一个正确的起点,欢迎来到 Java 世界... :) :) 学习愉快... :)

    First Cup Of Java

    【讨论】:

    • java文件已经编译好了..我只需要运行类文件..但首先我需要在OiosiRaspClient中运行main方法之前设置公共变量PATH_INVOICE_OIOUBL
    • 没听明白,你的意思是在特定位置搜索文件?
    • 我只需要将文件路径作为参数发送到命令行java .. filepath
    • 当 arg[0] 覆盖类中的公共变量时,main 方法的外观如何
    • 好的,我正在回答中编辑它。
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 2017-01-30
    • 2013-10-25
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    相关资源
    最近更新 更多