public class Test { /**
 * @param args
 */
public static void main(String[] args) {
Date date = new Date();
String dates = String.format(null, "%tF", date);
System.out.println(dates);
}}这是程序。我也从网上查了好久。都说是没有main方法。
还是没解决 。请教大虾了。。
什么原因?怎么改?

解决方案 »

  1.   

    把参数 null 换成Locale.getDefault()就可以了、不知道能不能满足你的要求、、、
      

  2.   

    重新编译这个类就可以了。应该是刚才写的文件,没有重新编译,你java时是运行以前的java class文件。
      

  3.   

      LZ再查一下CLASSPATH的这个环境变量,如果开头没有 .; 这两个符就加上它,这是让java首先在当前目录搜索.class文件,然后才搜索后面的路径。
      

  4.   

    加上那个也不行。(直接报错)
    重新编译;如何重新编译?
    用eclipse工具。如何重新编译。
    是吧class文件夹里的class文件删了。然后报错吗??
    不行。该试的都试了。 百度google了一上午了。。没用的。
      

  5.   

    我特怀疑。是版本的问题吗??但是也查看了是1.6的呀。。
    用的jdk也不是eclipse自带的。是自己下载的呀。
    哎。。
      

  6.   


    //LZ 你在搞笑,你的程序根本就没编译就拿出来说没main方法。
    //按下面的程序,粘贴到你的编辑器中,保存后重新编译。
    import java.util.*;
    public class Test {
        /**
         * @param args
         */
        public static void main(String[] args) {
            Date date = new Date();
            String dates = String.format("%tF", date);
            System.out.println(dates);
        }
    }
      

  7.   

    format有两种参数的重载public static String format(Locale l, String format, Object ... args) {
            return new Formatter(l).format(format, args).toString();
        }
    public static String format(String format, Object ... args) {
            return new Formatter().format(format, args).toString();
        }因为后面跟着的是可变数组  对于null可以理解为时Locle 也可以认为是字符串 
    编译器应该不会知道调用那个方法
      

  8.   

    首先楼主的源程序是没法编译通过的,错误提示为对format的引用不明确。解决办法为将format方法的第一个参数设置明确的值,可以改为Locale.getDefault()或其他值,运行正确,输出日期
    楼主再试一下
      

  9.   

    你这个编译就通不过,先试试这个:    public static void main(String[] args) {
            Date date = new Date();
            String dates = String.format("%tF", date);
            System.out.println(dates);
        }
    如果还不行 那是你环境的问题了
      

  10.   

    我真无语了
    我真想把图片粘贴出来看看。
    如果加了Local jvm所处的环境。就报错;
    如果设为null就没事。还有朋友说这个程序没有编译。
    怎么肯能呢。用了这么长时间的java了
    没有编译我就运行。我不是很二吗?我还是感觉环境的问题。。
      

  11.   

    我就是试过了才把程序给你的,下面是控制窗口的信息(一开始是没修改的情况)符号: 类 Date
    位置: 类 Test3
            Date date = new java.util.Date();
            ^
    1 错误I:\java>javac Test3.java
    Test3.java:10: 对 format 的引用不明确,java.lang.String 中的 方法 format(java.la
    ng.String,java.lang.Object...) 和 java.lang.String 中的 方法 format(java.util.Lo
    cale,java.lang.String,java.lang.Object...) 都匹配
            String dates = String.format(null, "%tF", date);
                                 ^
    1 错误I:\java>javac Test3.javaI:\java>java Test3
    2011-08-20I:\java>javac Test3.javaI:\java>java Test3
    2011-08-20I:\java>
      

  12.   

    import java.util.Date;
    import java.util.Locale;public class thread {
    public static void main(String[] args) {
    Date date = new Date();
    String dates = String.format(Locale.getDefault(), "%tF", date);
    System.out.println(dates); }
    }为null编译不过 jdk1.6
      

  13.   

    import java.util.Date;
    import java.util.Locale;public class test{
    public static void main(String[] args) {
    Date date = new Date();
    Locale l = null;
    String dates = "";
    try {
    dates = String.format(l, "%tF", date);
    } catch (Exception e) {
    // e.printStackTrace();
    dates = String.format("%tF", date);
    }
    System.out.println(dates);
    }
    }
    l为null会为空format
     看下api
    public static String format(String format,
                                Object... args)使用指定的格式字符串和参数返回一个格式化字符串。 
    始终使用的语言环境是由 Locale.getDefault() 返回的语言环境。 
    参数:
    format - 格式字符串
    args - 在格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数是可变的并且可以为 0。参数的最大数目受《Java Virtual Machine Specification》所定义的 Java 数组的最大维度的限制。针对 null 参数的行为依赖于 转换。 
    返回:
    一个格式化字符串 
    抛出: 
    IllegalFormatException - 如果格式字符串中包含非法语法,与给定的参数不兼容的格式说明符,格式字符串给定的参数不够,或存在其他非法条件。有关所有可能的格式化错误的规范,请参阅 formatter 类规范的 Details 一节。 
    NullPointerException - 如果 format 为 null
    从以下版本开始: 
    1.5 
    另请参见:
    Formatter
    指针
    可以看到
    String dates = String.format(Locale.getDefault(), "%tF", date);
    和dates = String.format("%tF", date);是一个效果
    所以没必要写前面的null都可以
      

  14.   


    你还用的javac呀。。我在工具里面呢。好吧我再试试吧
    谢谢了 。