Java 我的代码已编译,但赢得了';不要在终点站跑步
我试图在终端中运行这个,它编译、创建.class文件,但不会运行。代码按计划在Netbeans(Windows)中运行和执行,但不会在我的VirtualBox终端中运行。我得到的错误是它找不到主类Java 我的代码已编译,但赢得了';不要在终点站跑步,java,Java,我试图在终端中运行这个,它编译、创建.class文件,但不会运行。代码按计划在Netbeans(Windows)中运行和执行,但不会在我的VirtualBox终端中运行。我得到的错误是它找不到主类 package stackdemo; public class ArrayStackDemo { //Demo public static void main(String args[]) { StackInt demoStack = new StackInt();
package stackdemo;
public class ArrayStackDemo {
//Demo
public static void main(String args[]) {
StackInt demoStack = new StackInt();
for (int i = 0; i < demoStack.size(); i++) {
demoStack.push(i);
System.out.println(demoStack.pop());
}
}
}
package stackdemo;
import java.util.Arrays;
import java.util.EmptyStackException;
public class StackInt {
//Instance variables
private int[] numberStack;
int topOfStack = -1; //Empty stack
private int capacity;
private final int INITIAL_CAPACITY = 10;
//Default constructer
public StackInt() {
capacity = INITIAL_CAPACITY;
numberStack = new int[capacity];
}
//Size method
public int size() {
return capacity;
}
//Empty method
public boolean empty() {
if (topOfStack == -1) {
return true;
}
return false;
}
//Push method
public int push(int obj) {
if (topOfStack == numberStack.length - 1) {
reallocate();
}
topOfStack++;
numberStack[topOfStack] = obj;
return obj;
}
//Reallocate method
public void reallocate() {
capacity = 2 * capacity;
numberStack = Arrays.copyOf(numberStack, capacity);
}
//Pop method
public int pop() {
if (empty()) {
throw new EmptyStackException();
}
return numberStack[topOfStack--];
}
//Peek method
public int peek() {
if (empty()) {
throw new EmptyStackException();
}
return numberStack[topOfStack];
}
}
package-stackdemo;
公共类ArrayStackDemo{
//演示
公共静态void main(字符串参数[]){
StackInt demoStack=new StackInt();
对于(int i=0;i
从包含名为stackdemo的文件夹的文件夹中尝试此操作:
java -cp . stackdemo.ArrayStackDemo
如果您正在编译然后创建一个jar文件,那么在运行java-jar
之前,首先确保jar文件有一个清单。清单应该在jar中调用META\u INF/manifest.MF
。它是一个纯文本文件,至少包含行主类:stackdemo.ArrayStackDemo
请从包含名为stackdemo的文件夹的文件夹中尝试此操作:
java -cp . stackdemo.ArrayStackDemo
如果您正在编译然后创建一个jar文件,那么在运行java-jar
之前,首先确保jar文件有一个清单。清单应该在jar中调用META\u INF/manifest.MF
。它是一个纯文本文件,至少包含行主类:stackdemo.ArrayStackDemo
通常创建如下目录结构:
src/
stackdemo/
ArrayStackDemo.java
StackInt.java
bin/
然后运行编译器生成类文件
javac -s src -d bin src/stackdemo/*.java
它在bin
目录中的适当位置创建.class文件
bin/
stackdemo/
ArrayStackDemo.class
StackInt.class
然后可以使用完整的限定类名(
)执行主类
这可能看起来很麻烦,但是已经创建了构建工具来处理这个问题。在java世界中,常见的工具是,它将依赖关系管理置于普通编译的基础之上(以及更多)。许多IDE都支持这类项目,为了能够独立于IDE进行构建,我强烈建议您使用它。通常您会创建如下目录结构:
src/
stackdemo/
ArrayStackDemo.java
StackInt.java
bin/
然后运行编译器生成类文件
javac -s src -d bin src/stackdemo/*.java
它在bin
目录中的适当位置创建.class文件
bin/
stackdemo/
ArrayStackDemo.class
StackInt.class
然后可以使用完整的限定类名(
)执行主类
这可能看起来很麻烦,但是已经创建了构建工具来处理这个问题。在java世界中,常见的工具是,它将依赖关系管理置于普通编译的基础之上(以及更多)。许多IDE都支持这类项目,为了能够独立于IDE进行构建,我强烈推荐它。可能很傻,但您是否正在尝试运行ArrayStackDemo
或StackInt
?您是如何启动应用程序的?给我们你正在执行的命令,告诉我们你在哪个目录,类文件在哪里;在这两种编码中。@Sathesh:这是一个非常糟糕的建议。“我得到的错误是它找不到主类”这意味着你启动错误,它与你的代码无关。让我们知道您是如何运行它的。可能很傻,但您是在尝试运行ArrayStackDemo
还是StackInt
?您是如何启动应用程序的?给我们你正在执行的命令,告诉我们你在哪个目录,类文件在哪里;在这两种编码中。@Sathesh:这是一个非常糟糕的建议。“我得到的错误是它找不到主类”这意味着你启动错误,它与你的代码无关。让我们知道您是如何尝试运行它的。工作非常完美!谢谢。你能告诉我-s和-d做什么吗?我猜-cp编译并运行?java-help
,java-help
解释这些参数-简而言之-s
指定源路径(源所在),-d
指定目标路径(应放置.class文件的位置)-cp
是类路径选项。在编译相互依赖的多个文件时,可能需要使用。。。对不起,工作做得很好!谢谢。你能告诉我-s和-d做什么吗?我猜-cp编译并运行?java-help
,java-help
解释这些参数-简而言之-s
指定源路径(源所在),-d
指定目标路径(应放置.class文件的位置)-cp
是类路径选项。在编译多个文件时,可能需要一个