Java 可执行文件将/转换为句号

标签 java shell

我正在尝试创建一个 java 程序来查找用户的 ip 地址。 prgram 编译得很好,我的问题是当我尝试使用 java 命令运行它时,我得到一个错误,说它找不到或加载类文件。我发现它正在将任何“/”更改为“.”。我试过:

java /home/pi/Desktop/ip.class

它返回:

错误:无法找到或加载主类 .home.pi.Desktop.ip.class

将转义字符 \ 作为前缀添加到所有 / 没有任何效果。

同样的事情发生在我尝试过的任何路径上,我怎样才能让 java 程序接收/而不是 . ?

最佳答案

当您希望 java 运行特定类时,您传递的是类名,而不是包含该类的文件的位置。

如果.class 文件不在当前工作目录中,您需要指定类路径参数(-cp)。像这样的东西:

java -cp <location of the class> <fully-qualified name of the class>

在你的情况下,它可能是:

java -cp /home/pi/Desktop ip

但是您可能需要使用声明所在的包来限定 ip 类名,例如

package my.package;
class ip {}

需要

java -cp /home/pi/Desktop my.package.ip

关于Java 可执行文件将/转换为句号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618460/

相关文章:

java - 将 While 循环与 g.drawPolygon 代码结合使用

java - sparkjava和eclipse Unresolved 编译问题:

java - 在 Selenium 中处理操作系统弹出窗口

linux - 显示 Linux 启动时运行的 bash 脚本中的内容

wpf - 如何将 Shell 中的按钮绑定(bind)到已加载模块的 View 模型中定义的命令?

php - 将 PHP 脚本的响应打印到客户端

java - 脚本语言和编译语言

java - 这是合并排序的正确实现吗?

shell - 为什么 Tmux 有服务器?有什么好处?

linux - 当另一个进程在 Linux 中结束时终止后台进程