当前位置: 首页 > 知识库问答 >
问题:

java.io.ioException:error=36,在java中文件名太长

姚善
2023-03-14
xargs --show-limits
Your environment variables take up 3064 bytes
POSIX upper limit on argument length (this system): 2616328
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2613264
Size of command buffer we are actually using: 131072



List<String> list = getList();
            for(Iterator<String> itr = list.iterator();itr.hasNext();)
            {

                String command = itr.next();
                System.out.println("Length of String "+command.length());
                LOGGER.info("Executing the command \n"+ command);
                ProcessBuilder processbuilder = new ProcessBuilder(command);
                processbuilder.redirectErrorStream(true);
                Process process = processbuilder.start();
                process.waitFor();
            }

我试图运行的命令

SQOOP_XXCCS_DS_SAHDR_CORE=ssh hddev-c01-edge-02 "sqoop import -D mapred.child.java.opts='\-Djava.security.egd=file:/dev/../dev/urandom' --connect 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*****.cisco.com)(PORT=&&&&))(CONNECT_DATA=(SERVICE_NAME=*****.COM)(Server=Dedicated)))' --username *** --password **** --query \"select CONTRACT_ID,CONTRACT_NUMBER,CONTRACT_STS_CODE,CONTRACT_STATUS,SERVICE_LINE_ID,SERVICE_LINE_NAME,SERVICE_LINE_STS_CODE,SERVICE_LINE_STATUS,SERVICE_LINE_NUMBER,HDR_CUST_ACCOUNT_ID,HDR_CUST_ACCOUNT_NUMBER,HDR_PARTY_ID,HDR_CUSTOMER_NAME,LINE_CUST_ACCOUNT_ID,LINE_CUST_ACCOUNT_NUMBER,LINE_PARTY_ID,LINE_CUSTOMER_NAME,BILL_TO_SITE_USE_ID,BILL_TO_SITE_USE_NAME,BILL_TO_SITE_USE_STS,BILL_TO_CUST_ACCT_ID,BILL_TO_CUST_ACCT_NUMBER,BILL_TO_CUST_ACCT_STS,BILL_TO_CUST_ACCT_SITE_ID,BILL_TO_CUST_ACCT_SITE_STS,BILL_TO_PARTY_ID,BILL_TO_PARTY_NUMBER,BILL_TO_CUSTOMER_NAME,BILL_TO_PARTY_STS,BILL_TO_PARTY_SITE_ID,BILL_TO_PARTY_SITE_STS,BILL_TO_LOCATION_ID,BILL_TO_COUNTRY,BILL_TO_STATE_PROV,BILL_TO_CITY,BILL_TO_POSTAL_CODE,COVERAGE_TEMPLATE_ID,COVERAGE_TEMPLATE_NAME,COVERAGE_TEMPLATE_DESC,COVERAGE_BEGIN_DATE,COVERAGE_END_DATE,SERVICE_SALES_REP_USR_ID,SERVICE_SALES_REP_USR_NAME,SERVICE_LINE_INVENTORY_ITEM_ID,BILLTO_CSC_ID,BILLTO_CSC_NAME,BILLTO_GU_ID,BILLTO_GU_NAME,BILL_TO_CUSTOMER_SALES_CHANNEL,CURRENCY_CODE,CONTRACT_LIST_AMT,CONTRACT_NET_AMT,USD_CONTRACT_LIST_AMT,USD_CONTRACT_NET_AMT,ACCOUNT_TEAM,RENEWAL_SSR,RENEWAL_TEAM,SALES_REGION,ADVANCE_CONTRACT_FLAG,EARLIEST_END_DATE,SERVICE_LINE_TERMINATED_DATE,SVC_LINE_TERMINATION_REASON,CONTRACT_TERMINATED_DATE,USD_CONV_RATE,PRICE_TYPE,NET_VALUE,COTERM_DATE,MARKETING_PROGRAM,MASTER_AGREEMENT_END_DATE,DISCOUNT_PERCENT,PRORATE_FLAG,RGP_ID,CREATION_DATE,CREATED_BY,LAST_UPDATE_DATE,LAST_UPDATED_BY,LAST_UPDATED_LOGIN,REQUEST_ID,PROGRAM_UPDATE_DATE,PROGRAM_APPLICATION_ID,PROGRAM_ID,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,ATTRIBUTE16,ATTRIBUTE17,ATTRIBUTE18,ATTRIBUTE19,ATTRIBUTE20,ACCOUNT_SSR,SHELL_CONTRACT_FLAG,CONTRACT_START_DATE,CONTRACT_END_DATE from XXCCS_DS_SAHDR_CORE where \\\$CONDITIONS \" --split-by CONTRACT_NUMBER -m 4 --null-string '\\\\N' --null-non-string '\\\\N' --hive-delims-replacement '<EOL>' --boundary-query 'select (select min(CONTRACT_NUMBER) from XXCCS_DS_SAHDR_CORE) as minid ,(select max(CONTRACT_NUMBER) from XXCCS_DS_SAHDR_CORE) as maxid from dual' --target-dir /app/dev/SmartAnalytics/sqoop_temp//XXCCS_DS_SAHDR_CORE --hive-import --hive-overwrite --hive-table installbase.XXCCS_DS_SAHDR_CORE --map-column-hive CONTRACT_ID=BIGINT,SERVICE_LINE_ID=BIGINT,HDR_CUST_ACCOUNT_ID=BIGINT,HDR_PARTY_ID=BIGINT,LINE_CUST_ACCOUNT_ID=BIGINT,LINE_PARTY_ID=BIGINT,BILL_TO_SITE_USE_ID=BIGINT,BILL_TO_CUST_ACCT_ID=BIGINT,BILL_TO_CUST_ACCT_SITE_ID=BIGINT,BILL_TO_PARTY_ID=BIGINT,BILL_TO_PARTY_SITE_ID=BIGINT,BILL_TO_LOCATION_ID=BIGINT,COVERAGE_TEMPLATE_ID=BIGINT,COVERAGE_BEGIN_DATE=TIMESTAMP,COVERAGE_END_DATE=TIMESTAMP,SERVICE_LINE_INVENTORY_ITEM_ID=BIGINT,BILLTO_CSC_ID=BIGINT,BILLTO_GU_ID=BIGINT,CONTRACT_LIST_AMT=BIGINT,CONTRACT_NET_AMT=BIGINT,USD_CONTRACT_LIST_AMT=BIGINT,USD_CONTRACT_NET_AMT=BIGINT,EARLIEST_END_DATE=TIMESTAMP,SERVICE_LINE_TERMINATED_DATE=TIMESTAMP,CONTRACT_TERMINATED_DATE=TIMESTAMP,USD_CONV_RATE=BIGINT,NET_VALUE=BIGINT,MASTER_AGREEMENT_END_DATE=TIMESTAMP,DISCOUNT_PERCENT=BIGINT,PRORATE_FLAG=STRING,RGP_ID=BIGINT,CREATION_DATE=TIMESTAMP,CREATED_BY=BIGINT,LAST_UPDATE_DATE=TIMESTAMP,LAST_UPDATED_BY=BIGINT,LAST_UPDATED_LOGIN=BIGINT,REQUEST_ID=BIGINT,PROGRAM_UPDATE_DATE=TIMESTAMP,PROGRAM_APPLICATION_ID=BIGINT,PROGRAM_ID=BIGINT,ATTRIBUTE_CATEGORY=STRING,ATTRIBUTE1=STRING,ATTRIBUTE2=STRING,ATTRIBUTE3=STRING,ATTRIBUTE4=STRING,ATTRIBUTE5=STRING,ATTRIBUTE6=STRING,ATTRIBUTE7=STRING,ATTRIBUTE8=STRING,ATTRIBUTE9=STRING,ATTRIBUTE10=STRING,ATTRIBUTE11=STRING,ATTRIBUTE12=STRING,ATTRIBUTE13=STRING,ATTRIBUTE14=STRING,ATTRIBUTE15=STRING,ATTRIBUTE16=STRING,ATTRIBUTE17=STRING,ATTRIBUTE18=STRING,ATTRIBUTE19=STRING,ATTRIBUTE20=STRING,ACCOUNT_SSR=STRING,SHELL_CONTRACT_FLAG=STRING,CONTRACT_START_DATE=TIMESTAMP,CONTRACT_END_DATE=TIMESTAMP" >> /apps/pentaho_nfs/installbase/input/poc/logs/IB_logs.log 2>&1

字符串的长度为4260

共有1个答案

司马高明
2023-03-14

ProcessBuilder有两个构造函数。您使用的是以下代码:
ProcessBuilder(string...command)

第一个参数是要运行的命令,任何后续参数都是该命令的参数。

因为传递的是单个字符串,所以整个字符串就是命令,也就是程序。没有给出命令行参数。错误消息的含义与它所说的完全相同:文件名太长

 类似资料:
  • 我正在使用for Windows。据我所知,这个版本应该会解决文件名太长的问题。但对我来说不是。 当然,我做错了什么:我做了和,然后做了。一切顺利。但是,当我现在执行时,我会得到一个文件列表,其中文件名为。例如: 对我来说,复制非常简单:只需使用Angular generator(“yo Angular”)创建一个Yeoman web应用程序,并从文件中删除。然后重复前面提到的Git命令。 我错过

  • 在将添加到构建中并从junit4迁移所有内容后,Gradle开始出现以下错误。 在老式运行器中所有运行都很好,但junit5测试不是。 我很好奇我是否可以在项目评估后删除这个配置,因为无论如何都添加了所有JUnit依赖项来编译代码,然后插件只是在顶部添加负载。我创建了一个项目,将所有Junit5库封装在一个人工制品中。 编辑3 我确实设法将所有木星人工制品打包到1中,以稍微缩小cp,但我的类路径仍

  • 我正在运行一个gradle任务 进口。gradle,有一个mlcp任务,我们正在传递一个任务名。json(所有查询都以json格式写入,以从输入主机获取数据)位于字段中。 在运行任务时,我得到: 原因:java。伊奥。IOException:无法运行程序“C:\program Files\Java\jdk1.8.0_211\bin\Java.exe”(在目录“D:\Data1”中):CreateP

  • Jenkins中的Git签出抛出错误“文件名太长”并失败,如下所示: hudson.plugins.git.gitException:命令“git.exe checkout-F 2CEA7D8EB9185899C01D2FFC86872F584DA2E60C”返回状态代码1: stdout: stderr:错误:无法创建文件some_long_named_project/src/test/reso

  • 问题内容: 我知道这个问题以前曾被问过,但是我无法使用其他帖子中的解决方案来解决。我正在尝试使用Maven编译gwt项目的复杂层次结构。一切正常,直到我不得不再添加一个库,更具体地说:org.eclipse.birt.runtime 现在我得到这个错误: 我正在使用的依赖项是: 问题答案: 我终于设法解决了: 事实证明birt及其依赖项只是添加了太多的库,而classpath变得对于Windows

  • 我的项目路径: Java版本:JDK7 update 21(由于项目限制,我无法使用任何其他版本) 构建工具:蚂蚁,Gradle IDE: IntelliJ 17.3, 操作系统:Windows 10。 尝试过但对我无效链接: 1) CreateProcess error=206,运行main()方法时文件名或扩展名太长 2) Createprocess错误=206;文件名或扩展名太长 3) ht