小编Reb*_*son的帖子

如何使用.jar库编译Java程序

我不能让javac识别外部.jar文件,我试图扩展它的类.我在同一目录中有两个文件:TestConsole.java和acm.jar.我正在使用以下命令从同一目录编译:

javac -classpath .:acm.jar TestConsole.java

但似乎javac只是忽略了acm.jar.它给了我错误:

TestConsole.java:1: package acm does not exist
import acm.program;
          ^
Run Code Online (Sandbox Code Playgroud)

当然,acm.program是acm.jar中的一个包.acm.jar中的所有类都已编译; 我只想在我的课程中使用它们,而不是编译它们.

我究竟做错了什么?

我在Mac上运行它,并且acm.jar的目录结构似乎是有效的:它包含一个acm/program目录,它有ConsoleProgram.class唯一的TestConsole扩展类.

javac -classpath ".:acm.jar" TestConsole.java 也行不通.

java compiler-construction

15
推荐指数
3
解决办法
6万
查看次数

如何正确地将程序参数*char转换为int?

我使用的是Mac OS X 10.6.5,使用XCode 3.2.1 64位来构建一个构建配置为10.6的C命令行工具.调试| x86_64的.我想传递一个正整数作为参数,所以我将argv的索引1作为一个int.这似乎工作,除了似乎我的程序获取ascii值而不是读取整个char数组并转换为int值.当我进入'progname 10'时,它告诉我我已进入49,这是我进入'progname 1'时也得到的.如何让C将整个char数组作为int值读取?谷歌只展示了我(int)*charPointer,但显然这不起作用.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main(int argc, char **argv) {
    char *programName = getProgramName(argv[0]); // gets the name of itself as the executable
    if (argc < 2) {
        showUsage(programName);
        return 0;
    }
    int theNumber = (int)*argv[1];
    printf("Entered [%d]", theNumber);            // entering 10 or 1 outputs [49], entering 9 outputs [57]
    if (theNumber % 2 != 0 || theNumber < 1) {
        showUsage(programName);
        return 0;
    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

c pointers casting char

3
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×1

casting ×1

char ×1

compiler-construction ×1

java ×1

pointers ×1