java - How to excute java.class in any folder?
问题描述
This is my folder:
$ tree
.
├── src
│ ├── Main.class
│ ├── Main.java
│ └── xyz
│ └── bitfish
│ ├── Fish.class
│ └── Fish.java
if I try to excute Main.class in current folder, it will fail:
$java src/Main
Error: Could not find or load main class src.Main
Caused by: java.lang.NoClassDefFoundError: Main (wrong name: src/Main)
$ java src.Main
Error: Could not find or load main class src.Main
Caused by: java.lang.NoClassDefFoundError: Main (wrong name: src/Main)
But if I try to do this in src folder, it will be fine
$ cd src
src$ java Main
// it works
What is the problem? How to excute Main.class in any foler?
解决方案
尝试使用命令:
java -classpath src 主目录
当你发出命令时
java src/Main --> 那么java不仅尝试使用src文件夹中的类;但它也假设包是 src.Main ;所以试图以这种方式执行它会给你一个错误;除非 Main.java 定义的类 --> Main.class 除了在目录 src 中之外,还在包“src”中。
推荐阅读
- javascript - 从包含 c# 变量的文件中执行 JS 脚本
- android - 从系统级别禁用所有无线电;AOSP
- c - 使用 EC_KEY 时 EVP_PKEY_verify 不起作用
- reactjs - 自动填充的输入字段会触发哪个事件?
- javascript - 为什么需要使用 promise 作为异步回调的包装器
- docker - 在 Windows10 hyper-V 上运行的 Docker Desktop for Windows 无法在 Oracle Virtualbox 6 中运行
- php - 如何在图像中添加产品永久链接标签 woocommerce 购物车项目?
- java - 投无损长飘
- c# - C# XNA:使用自定义鼠标动画光标 .ani
- python - 为什么这个 L 系统代码不返回字符串?