从命令行运行包中的java

     2023-03-07     75

关键词:

【中文标题】从命令行运行包中的java【英文标题】:Running java in package from command line 【发布时间】:2013-10-26 08:02:54 【问题描述】:

我已阅读之前发布的问题。有些含糊不清,没有一个能解决我的问题,所以我不得不再次询问。

我有两个简单的类,

package One;
import One.Inner.MyFrame;
public class test

    public static void main(String args[])
    
        MyFrame f= new MyFrame();
    

另一个类是,

package One.Inner;
import java.awt.*;
import javax.swing.*;

public class MyFrame extends JFrame

    public MyFrame()
    
        setPreferredSize(new Dimension(400,560));
        setVisible(true);
    

我在 Windows cmd 的基本文件夹“basic”中。我编译使用

basic> javac *.java -d .

创建了一个文件夹和子文件夹。

cd One
basic\One> java test

这会产生大量错误。许多答案指向指定不起作用的完整路径。 我的课程在 One 中,因此使用 -cp 指定 One 也不起作用。

【问题讨论】:

只是为了添加一些关于这个问题的好东西:webucator.com/how-to/how-compile-packages-java.cfm 【参考方案1】:

你可以这样运行它:

java One.Test

...但来自 root 目录 (basic),不是来自 One 目录。您始终指定完全限定的类名。

哦,Java 中的包名应该是小写的,所以应该是oneone.inner,而不是OneOne.Inner。只是一个约定,但几乎每个人都遵循。

【讨论】:

必须从中完成的目录非常重要。我之前弄错了。TY....注意了。我的错误印象是只有 java 的内置包必须很小。 有没有办法从同一个目录运行它?例如,通过命令行选项指定工作目录?我为此搜索了很多,每个人都说“只上一个目录”,但在某些情况下真的很烦人。 哦,这里是:java -cp ../ one.Test。我确定我以前尝试过。 是 - 在 Java 应用程序启动器 javaman 文件中,它声明:“默认情况下,第一个不带选项的参数是要调用的类的名称。应使用完全限定的类名。"我认为他们应该将其更改为“必须使用完全限定的类名必须”!【参考方案2】:

如果目录是:

basic\One

从包的基目录运行java:

basic>java One.test or basic>One.test <optional arguments>

(理想情况下包是小写,类是大写):

basic>java one.Test

如果您收到“不存在”消息,则 java 命令无法找到您在类中引用的类。您可以使用 -cp 选项指向它们(“.”表示“此处”,您可以添加任意数量的位置,在 Windows 上用“;”分隔,在 Linux 上用“:”分隔)。

basic>java -cp . one.Test
or
basic>java -cp .;..\..\someJar.jar;c:\someDirectory\classesDirectory  one.Test

【讨论】:

带有 -cp 标志的示例很有帮助。 +1 谢谢,很有帮助。【参考方案3】:

在创建带有包的类时,如果您想从 cmd 运行它,您必须创建一个与包名称相同的目录,将 .class 放入其中,然后您可以轻松运行它,例如您创建了一个名为“ one" 并且这个类在包中名为 pack ,你必须运行这些命令

1 javac one.java 编译后创建一个名为 pack 的目录,然后运行此命令 2 java pack.one 注意: 所有这些都必须在当前工作目录中完成,我在这里选择了名称“one”作为文件名和主类名 我们都知道第一个命令中使用的第一个名称是文件名,第二个是主类名

【讨论】:

你应该使用格式来简化你的答案的理解。【参考方案4】:

这是因为如果您在 java 文件中声明 package,那么 JAVA 编译器会认为您的系统中具有相同的文件夹架构。 在您的情况下,Java 编译器寻找 One 作为一个包,然后是 test.class。,或者更具体地说,只需查看您的 .class 文件,您就可以看到它在寻找什么路径。请查看下面的图片(我的情况是我使用 Hello 和 Tester)

您可以在图像中看到路径是 Hello/Tester(我的案例示例),因此架构应该类似于 Hello->Tester。

如果你没有相同的架构并且想在编译时创建相同的架构,那么使用 javacp 命令。

【讨论】:

【参考方案5】:

下面这行 Haralan Dobrev 代​​码解决了这个问题。

java -cp ../ one.Test

【讨论】:

java示例代码_在一个包中编译并运行一个类,该类从另一个包中的另一个类继承受保护的成员

java示例代码_在一个包中编译并运行一个类,该类从另一个包中的另一个类继承受保护的成员 查看详情

可以从命令行运行 C++ 代码,但不能从 Visual Studio 中的调试模式运行

】可以从命令行运行C++代码,但不能从VisualStudio中的调试模式运行【英文标题】:canrunC++codefromcommandlinebutnotfromdebugmodeinvisualstudio【发布时间】:2013-08-0921:56:46【问题描述】:我在调试模式下编译了下面的程序,没有任何错误。... 查看详情

Maven:如何从命令行传递参数运行 .java 文件

】Maven:如何从命令行传递参数运行.java文件【英文标题】:Maven:Howtoruna.javafilefromcommandlinepassingarguments【发布时间】:2012-04-2321:38:35【问题描述】:我有以下问题。我想从命令行运行mvn以获得Main.java文件。Main.java接受一个参数。... 查看详情

从命令行运行时混合java和kotlin代码的classnotfoundexception

我在一个演示项目中混合了Java和Kotlin代码,我想从commandline运行。对于只有java,我能够用java-jarfoo.jar运行程序但是当我使用Kotlin代码中的任何类时,它会生成java.lang.NoClassDefFoundError:kotlin/jvm/internal/Intrinsics我尝试了不同的解决方... 查看详情

从 java servlet 运行命令行 php 脚本

】从javaservlet运行命令行php脚本【英文标题】:runacommandlinephpscriptfromjavaservlet【发布时间】:2013-03-2621:59:19【问题描述】:有没有办法从javaservlet运行php命令行脚本(服务器端)?我一直在尝试,我没有得到任何异常,但脚本并... 查看详情

java执行jar包中的main方法

通过OneJar或Maven打包后jar文件,用命令:java-jar****.jar执行后总是运行指定的主方法,如果jar中有多个main方法,那么如何运行指定的main方法呢?用下面的命令试试看:java-classpath****.jar****.****.className[args]“****.****”表示&ldquo... 查看详情

Java中的命令行进度条

】Java中的命令行进度条【英文标题】:CommandlineprogressbarinJava【发布时间】:2010-10-2513:23:19【问题描述】:我有一个在命令行模式下运行的Java程序。我想显示一个进度条,显示已完成工作的百分比。在unix下使用wget会看到相同的... 查看详情

java示例代码_从命令行运行Ruby脚本,并使用Java代码获得响应

java示例代码_从命令行运行Ruby脚本,并使用Java代码获得响应 查看详情

使用 JAVA 从命令行运行 Symantec End Point DoScan.exe

】使用JAVA从命令行运行SymantecEndPointDoScan.exe【英文标题】:RunSymantecEndPointDoScan.exefromcommandlineusingJAVA【发布时间】:2011-03-1105:42:44【问题描述】:我有一个要上传文件的Web应用程序。我安装了SymantecEndPointProtection。我需要使用JAVA... 查看详情

使用 swift 2.3 从 xcode 8 中的命令行运行 xcode ui 测试

】使用swift2.3从xcode8中的命令行运行xcodeui测试【英文标题】:runxcodeuitestfromcommandlineinxcode8usingswift2.3【发布时间】:2016-10-0413:06:30【问题描述】:我使用这个命令从终端运行我的xcodebuildui测试:xcodebuild-workspacetest.xcworkspace\\-scheme"... 查看详情

如何从 Bash 中的文件调用多个命令行参数?

】如何从Bash中的文件调用多个命令行参数?【英文标题】:HowtocallseveralcommandlineargumentsfromafileinBash?【发布时间】:2020-03-2905:54:13【问题描述】:我有一个编译的C++程序需要2个命令行参数才能运行-例如,如果我的参数是“10”和... 查看详情

从命令行关闭正在运行的程序

】从命令行关闭正在运行的程序【英文标题】:Closingarunningprogramfromcommandline【发布时间】:2012-03-0119:21:00【问题描述】:VisualStudio2010C#是否可以从命令行运行和关闭程序?我需要做这样的事情:myProgram.exe-start--dosomething--myProgram.... 查看详情

从命令行从 iOS 中的测试套件运行单个/可选测试用例(XCTestCase)

】从命令行从iOS中的测试套件运行单个/可选测试用例(XCTestCase)【英文标题】:Runindividual/selectabletestcase(XCTestCase)fromatestsuiteiniOSfromcommandline【发布时间】:2017-12-1416:36:39【问题描述】:我使用XCUITest为我的iOSUI自动化进行了所有... 查看详情

我可以使用 BQ 命令行工具从 Windows 命令提示符中的文件运行查询吗?

】我可以使用BQ命令行工具从Windows命令提示符中的文件运行查询吗?【英文标题】:CanIrunaquery,usingBQcommandlinetool,fromafileinWindowscommandprompt?【发布时间】:2017-03-3019:07:32【问题描述】:我看到this的问题,但给出的答案仅适用于Linux... 查看详情

从命令行运行我的 java 项目时出现问题 (java.lang.NoClassDefFoundError)

】从命令行运行我的java项目时出现问题(java.lang.NoClassDefFoundError)【英文标题】:Problemwithrunningmyjavaprojectfromthecommandline(java.lang.NoClassDefFoundError)【发布时间】:2022-01-2200:12:15【问题描述】:我目前正在从事一个涉及警察巡逻管理的... 查看详情

如何从命令行运行 Saxon

】如何从命令行运行Saxon【英文标题】:HowtorunSaxonfromcommandline【发布时间】:2021-12-0303:55:27【问题描述】:谁能发布详细的分步说明如何安装Saxon(10HE)以及如何在MacOS(10.13.6)中从命令行运行转换?我已经在我的电脑上安装了Java。... 查看详情

如何从命令行调用嵌入式 jre 以运行 java 应用程序

】如何从命令行调用嵌入式jre以运行java应用程序【英文标题】:Howtocallanembeddedjrefromcommandlineinordertorunjavaapplications【发布时间】:2016-11-1812:50:51【问题描述】:是否可以在导出的独立Java应用程序中捆绑JRE?我们有一个非常具体... 查看详情

Java Jar 文件主类从命令行运行时运行,而不是从 Windows 批处理文件运行

】JavaJar文件主类从命令行运行时运行,而不是从Windows批处理文件运行【英文标题】:JavaJarfilemainclassrunwhenrunsfromcommandline,butnotfromWindowsbatchfile【发布时间】:2021-10-0105:13:49【问题描述】:我正在重新使用一个独立的基于Swing的Java... 查看详情