我这两天一直在努力奋斗。我创建了一个非常简单的HelloWorld类来测试我是否可以使用它,但我无法做到。 我收到错误 - 无法找到或加载主类... 它适用于Eclipse或从脚本运行任务。但是双击.jar或从CMD运行它会给我错误。出现此错误的原因有哪些?类路径?环境变量?目录结构?请帮忙!
package com.hellojava;
public class HelloWorld {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
我的build.xml
<project name="TestProject" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="com.hellojava.HelloWorld"/>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
run:
[java] Hello World!
main:
BUILD SUCCESSFUL
Total time: 5 seconds
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.2
Created-By: 1.7.0_11-b21 (Oracle Corporation)
Main-Class: com.hellojava.HelloWorld
**编辑: java -jar TestProject.jar有效但javaw -jar TestProject.jar没有。但是,我解决了问题 - 请参阅我发布的答案。
答案 0 :(得分:1)
运行jar文件的常用语法是 java -jar TestPractice.jar 。 如果失败,则需要进行一些分析。
如果一切正常,您的程序将会运行。
答案 1 :(得分:0)
解决了问题!
我不得不将注册表更改为我正在使用的正确Java版本。它被设置为我的comp中的旧版Java。
I can run .jar files through cmd, but I cannot double click them
另外,我注意到java -jar file.jar工作时,javaw -jar file.jar对我不起作用。 我通过“打开方式”更改了打开.jar文件的程序,并选择了java而不是javaw。这现在解决了问题 - 我确实有一个问题。我想知道为什么javaw不起作用,但现在我很高兴这是有效的:)
答案 2 :(得分:0)
我遇到了同样的问题。应用程序在我的PC上工作正常,但在某些PC上我得到了同样的错误。尝试在应用程序无法运行的计算机上更新Java运行时。例如,我在JRE7和PC上工作,其中app安装了Java 1.6。