在linux中运行java程序

在linux中运行java程序,java,linux,Java,Linux,我正在尝试在linux环境中运行java程序。该计划的结构如下 src(目录) 主目录(目录) --test.java 普通(套装) --a.java --b.java java是我的主程序 我使用以下命令从src目录级别运行该程序 javac-cp.../../lib/netcdf.jar:/common/*.java“main/test.java 我发现了与包common not found相关的错误,并且找不到包common下的所有类 你能帮我解决这个问题吗 谢谢Java不会扩展glo

我正在尝试在linux环境中运行java程序。该计划的结构如下

src(目录)

  • 主目录(目录)

    --test.java

  • 普通(套装)

    --a.java

    --b.java

java是我的主程序

我使用以下命令从src目录级别运行该程序

javac-cp.../../lib/netcdf.jar:/common/*.java“main/test.java

我发现了与包common not found相关的错误,并且找不到包common下的所有类

你能帮我解决这个问题吗


谢谢Java不会扩展glob(
*
),除非它是路径中唯一的最后一段(在这种情况下,它会扩展到所有jar文件)。已经有一段时间了,但我相信您应该能够完全关闭
*.java
-cp./../lib/netcdf.jar:common“
)。您似乎正在使用
/common
,这将使它在系统根目录中查找名为
common
的文件夹。

这里有一些问题

首先,javac在类文件(.class)中保存您的代码。它不运行代码,而是将源代码转换为可以运行的表单

在编译代码时,所有的.java文件都应该根据它们的包进行结构化。因此,您不能随意决定将一些java文件放在一个文件夹中,另一些放在另一个文件夹中。例如,如果java文件指定“package com.mycompany”,并且您的src目录指定为src,那么java文件必须位于“/src/com/mycompany”中

在代码中,当需要引用已经编译成.class文件的其他代码(通常是外部库)时,可以指定类路径(这就是为什么这样调用它)。注意,为了清楚起见,我将重复这一点,这不是针对.java文件,而是针对.class文件。有时许多.class文件被打包到一个单独的归档文件中,称为java归档文件或“”

还要注意,在unix系统上,“/common”是绝对值。如果需要相对路径,则应指定“/common”

此外,类路径分隔符为“;”非“:”

总之,如果没有一个java文件指定显式包,只需将所有.java文件放在同一个目录中(我建议使用./src)。然后从src目录运行
javac-sourcepath./src*.java
或简单地运行
javac*.java


还有更多关于管理源文件和类文件的内容。

我使用以下命令编译并运行了它

javac-classpath'.:../../lib/*'main/test.java

来源:

  • 开放式终端
  • 键入
    java
  • 显示一些包
  • 您可以安装这个软件包
  • 现在安装的java软件包
  • 现在键入
    java
  • 键入
    javac
  • 键入
    appletviewer
  • 创建新目录=>
    md arivu
  • cd-arivu
  • gedit ex.java
  • 现在你节省了
  • 返回航站楼
  • 编译:
    javac ex.java
  • 运行:
    javaex
  • 图形代码:
    • javac ex.java
    • appletviewerex.java

  • 您应该能够
    javac
    main类。编译器将根据文件中的导入来提取所需的资源。请尝试将cding插入目录,然后运行命令。在源文件中导入什么?您导入的类和包在什么地方?它们是否链接到您的类路径中?如何?@thermz:如何将netcdfjar和公共包链接到类路径?当我像javac main/test.java那样编译时,它会抛出与netcdf jar文件中的类相关的错误。因此,当我将它们链接到类路径时,比如javac-cp“../../lib/netcdf.jar”main/test.java,我发现与包common-not-found相关的错误。我认为Kevin answer是解决您问题的方法。我运行了以下命令并根据您的建议:javac-cp“../../lib/netcdf.jar:common”main/test.jar。但似乎不起作用。我仍在接受采访errors@ShenoyTinny哦,“common”实际上是一个jar文件,“common.jar”?在cp
    common.jar
    中将
    设置为公共
    。此答案看起来与原始问题不完全相关。