java - Java 项目在 Eclipse 上运行,但在使用批处理时出错
问题描述
我为我的大学做了一个项目。我需要传递命令行参数的地方。它在 Eclipse 上运行得非常好,但是当我使用批处理文件运行它时。
我的批处理文件看起来像
set path = "c:\Program Files\Java\jdk-14.0.2\bin";
javac FileHand.java
java FileHand DirectBuffer 1024 Sample.txt
pause
解决方案
根本不要设置 %path%。如果您想对 java 的完整路径进行“硬编码”,请执行此操作;写C:\program files\....\javac
,或SET JAVA_LOC=...
然后%JAVALOC%\javac
。但是,这显然是不需要的;你搞砸了你的 SET PATH 语句,但 javac 正在被调用,所以,你可能应该删除整个 'set path' 行。
问题是类路径。有一个名为 DirectBuffer.class 的文件。它在某个地方 - 你说'它在 eclipse 中工作',这意味着 eclipse 可以找到这个文件,因为你告诉它它在哪里。你需要告诉 javac 它在哪里。您可以按如下方式执行此操作:
javac -cp LOC1;LOC2;LOC3 FileHandjava
java -cp .;LOC1;LOC2;LOC3 FileHand DirectBuffer 1024 Sample.txt
LOC1
路径在哪里。它可以是目录,也可以是 jar 文件。您的问题并不清楚,但是让我们在源文件中说DirectBuffer' is in the
com.foo.pkg package (so, you have
import com.foo.pkg.DirectBuffer;`),然后:
任何一个:
cd (whatever you put for LOC1)
cd com\foo\pkg
dir
应该打印,除其他外,'DirectBuffer.class',或者,如果 LOC1 是一个 jar 文件:
jar tvf (the jar file listed in LOC1)
应该打印com/foo/pkg/DirectBuffer.class
,除其他外。你已经告诉过 eclipse 了,所以现在找到你做过的那些地方,然后告诉 javac。
推荐阅读
- react-native - 在配置链接方面需要帮助 React Native Navigation
- jpa - 无法让 JPA 在 Wildfly 19.1 上工作
- rust - 在 Rust 中,我创建了一个 impl 返回类型,我可以将其作为参数传递。但是我没有找到将它存储在我的结构中的方法?
- tensorflow - ValueError: 层 lstm_34 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,25]
- flutter - 在 Flutter Dart Firestore 应用中实现收藏按钮
- excel - VBA代码莫名其妙地改变公式中的列
- sql - 如何在锁定步骤中在两列上应用过滤器值列表?
- swift - 如何使用 DateComponentsFormatter 将日期显示为“今天”或“昨天”?
- php - 无法在我的计算机中配置 PHP。你能检查我做错了什么吗?
- php - 针对嵌套 JSON 字段、MYSQL、PHP 的 QUERY